diff options
author | Aleksander Machniak <alec@alec.pl> | 2014-02-03 13:27:36 +0100 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2014-02-03 13:29:25 +0100 |
commit | bd3f5745f06e3d153431776fe279d8534823403a (patch) | |
tree | 537cf46624fe54fbd020cd39d75a8b031657ad68 /program/js | |
parent | 59373ce9cddecf13c894387154b3077530e3afa9 (diff) |
Fixed Opera > 15 detection (#1489562)
Conflicts:
tests/Framework/Browser.php
Diffstat (limited to 'program/js')
-rw-r--r-- | program/js/common.js | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/program/js/common.js b/program/js/common.js index d320d86ec..722eb3f60 100644 --- a/program/js/common.js +++ b/program/js/common.js @@ -49,6 +49,7 @@ function roundcube_browser() this.dom = document.getElementById ? true : false; this.dom2 = document.addEventListener && document.removeEventListener; + this.webkit = this.agent_lc.indexOf('applewebkit') > 0; this.ie = (document.all && !window.opera) || (this.win && this.agent_lc.indexOf('trident/') > 0); if (this.ie) { @@ -57,20 +58,22 @@ function roundcube_browser() this.ie8 = this.appver.indexOf('MSIE 8') > 0; this.ie9 = this.appver.indexOf('MSIE 9') > 0; } + else if (window.opera) { + this.opera = true; + this.vendver = opera.version(); + } else { this.chrome = this.agent_lc.indexOf('chrome') > 0; - this.safari = !this.chrome && (this.agent_lc.indexOf('safari') > 0 || this.agent_lc.indexOf('applewebkit') > 0); + this.safari = !this.chrome && (this.webkit || this.agent_lc.indexOf('safari') > 0); this.konq = this.agent_lc.indexOf('konqueror') > 0; this.mz = this.dom && !this.chrome && !this.safari && !this.konq && this.agent.indexOf('Mozilla') >= 0; this.iphone = this.safari && (this.agent_lc.indexOf('iphone') > 0 || this.agent_lc.indexOf('ipod') > 0); this.ipad = this.safari && this.agent_lc.indexOf('ipad') > 0; - this.opera = window.opera ? true : false; - this.webkit = this.safari || this.chrome; } if (!this.vendver) { // common version strings - this.vendver = /(khtml|chrome|safari|applewebkit|opera|msie)(\s|\/)([0-9\.]+)/.test(this.agent_lc) ? parseFloat(RegExp.$3) : 0; + this.vendver = /(opera|opr|khtml|chrome|safari|applewebkit|msie)(\s|\/)([0-9\.]+)/.test(this.agent_lc) ? parseFloat(RegExp.$3) : 0; // any other (Mozilla, Camino, IE>=11) if (!this.vendver) @@ -117,7 +120,7 @@ function roundcube_browser() classname += ' iphone'; else if (this.ipad) classname += ' ipad'; - else if (this.safari || this.chrome) + else if (this.webkit) classname += ' webkit'; if (this.mobile) |