Merge "jquery.client: Detect Internet Explorer 11"
authorBrion VIBBER <brion@wikimedia.org>
Wed, 10 Jul 2013 21:18:49 +0000 (21:18 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 10 Jul 2013 21:18:49 +0000 (21:18 +0000)
resources/jquery/jquery.client.js
tests/qunit/suites/resources/jquery/jquery.client.test.js

index 42e76eb..5a95dc5 100644 (file)
                                        // Tanslations for conforming browser names
                                        nameTranslations = [],
                                        // Names of known layout engines
-                                       layouts = ['gecko', 'konqueror', 'msie', 'opera', 'webkit'],
+                                       layouts = ['gecko', 'konqueror', 'msie', 'trident', 'opera', 'webkit'],
                                        // Translations for conforming layout names
                                        layoutTranslations = [ ['konqueror', 'khtml'], ['msie', 'trident'], ['opera', 'presto'] ],
                                        // Names of supported layout engines for version number
-                                       layoutVersions = ['applewebkit', 'gecko'],
+                                       layoutVersions = ['applewebkit', 'gecko', 'trident'],
                                        // Names of known operating systems
-                                       platforms = ['win', 'mac', 'linux', 'sunos', 'solaris', 'iphone'],
+                                       platforms = ['win', 'wow64', 'mac', 'linux', 'sunos', 'solaris', 'iphone'],
                                        // Translations for conforming operating system names
-                                       platformTranslations = [ ['sunos', 'solaris'] ],
+                                       platformTranslations = [ ['sunos', 'solaris'], ['wow64', 'win'] ],
 
                                        /* Methods */
 
                                                version = match[1];
                                        }
                                }
+                               // And IE 11's lies about being not being IE
+                               if ( layout === 'trident' && layoutversion >= 7 && ( match = ua.match( /\brv[ :\/]([0-9\.]*)/ ) ) ) {
+                                       if ( match[1] ) {
+                                               name = 'msie';
+                                               version = match[1];
+                                       }
+                               }
 
                                versionNumber = parseFloat( version, 10 ) || 0.0;
 
index 4163e9e..4c7c302 100644 (file)
@@ -34,7 +34,7 @@
                                profile: {
                                        name: 'msie',
                                        layout: 'trident',
-                                       layoutVersion: 'unknown', // should be able to report 6?
+                                       layoutVersion: 6,
                                        platform: 'win',
                                        version: '10.0',
                                        versionBase: '10',
                                        rtl: true
                                }
                        },
+                       // Internet Explorer 11
+                       'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko': {
+                               title: 'Internet Explorer 11',
+                               platform: 'Win32',
+                               profile: {
+                                       name: 'msie',
+                                       layout: 'trident',
+                                       layoutVersion: 7,
+                                       platform: 'win',
+                                       version: '11.0',
+                                       versionBase: '11',
+                                       versionNumber: 11
+                               },
+                               wikiEditor: {
+                                       ltr: true,
+                                       rtl: true
+                               }
+                       },
+                       // Internet Explorer 11 - Windows 8.1 x64 Modern UI
+                       'Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; rv:11.0) like Gecko': {
+                               title: 'Internet Explorer 11',
+                               platform: 'Win64',
+                               profile: {
+                                       name: 'msie',
+                                       layout: 'trident',
+                                       layoutVersion: 7,
+                                       platform: 'win',
+                                       version: '11.0',
+                                       versionBase: '11',
+                                       versionNumber: 11
+                               },
+                               wikiEditor: {
+                                       ltr: true,
+                                       rtl: true
+                               }
+                       },
+                       // Internet Explorer 11 - Windows 8.1 x64 desktop UI
+                       'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko': {
+                               title: 'Internet Explorer 11',
+                               platform: 'WOW64',
+                               profile: {
+                                       name: 'msie',
+                                       layout: 'trident',
+                                       layoutVersion: 7,
+                                       platform: 'win',
+                                       version: '11.0',
+                                       versionBase: '11',
+                                       versionNumber: 11
+                               },
+                               wikiEditor: {
+                                       ltr: true,
+                                       rtl: true
+                               }
+                       },
                        // Firefox 2
                        // Firefox 3.5
                        'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.19) Gecko/20110420 Firefox/3.5.19': {