From 8b1f3699eea825717fe8210d5fb47e269e2e9315 Mon Sep 17 00:00:00 2001 From: phistuck Date: Sun, 16 Nov 2014 16:06:23 +0200 Subject: [PATCH 1/3] Supported the deceptive Internet Explorer 12 Internet Explorer 12 disguises as Chrome 36, but adds a new Edge/x.x token. https://gist.github.com/jacobrossi/c9699b27df2f4e97c0bd Sneaky. --- dist/jquery.browser.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js index b22317b..ddacbe6 100644 --- a/dist/jquery.browser.js +++ b/dist/jquery.browser.js @@ -31,7 +31,8 @@ jQuery.uaMatch = function( ua ) { ua = ua.toLowerCase(); - var match = /(opr)[\/]([\w.]+)/.exec( ua ) || + var match = /(edge)\/([\w.]+)/.exec( ua ) || + /(opr)[\/]([\w.]+)/.exec( ua ) || /(chrome)[ \/]([\w.]+)/.exec( ua ) || /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) || /(webkit)[ \/]([\w.]+)/.exec( ua ) || @@ -87,7 +88,8 @@ } // IE11 has a new token so we will assign it msie to avoid breaking changes - if ( browser.rv ) + // IE12 disguises as Chrome, but adds a new Edge token. + if ( browser.rv || browser.edge ) { var ie = "msie"; From 649d140458c1a0c97b3f58a3953222a3c998f2ce Mon Sep 17 00:00:00 2001 From: phistuck Date: Mon, 17 Nov 2014 10:37:25 +0200 Subject: [PATCH 2/3] Added a test for desktop Internet Explorer 12 A simple copy and paste of the Internet Explorer 11 test and a few digit change. --- test/test.js | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/test/test.js b/test/test.js index 538d96b..06a0529 100644 --- a/test/test.js +++ b/test/test.js @@ -40,7 +40,8 @@ ua = { windows : { v_9: "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0)", v_10: "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)", - v_11: 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko' + v_11: 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko', + v_12: 'Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 Edge/12.0' }, win_phone : { v_10: "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 1020)" @@ -445,6 +446,31 @@ casper.test.begin("when using IE10 on a Windows Phone", 7, function(test) { }); }); +casper.test.begin("when using IE12", 7, function(test) { + casper.userAgent(ua.ie.windows.v_12); + + casper.start(test_url).then(function(){ + + var browser = casper.evaluate(function(){ + return $.browser; + }); + + test.assert(browser.msie, "Browser should be IE"); + test.assertEquals(browser.name, ua.ie.name,"Browser name should be " + ua.ie.name); + + test.assertEquals(browser.version, "12.0", "Version should be 12.0"); + test.assertEquals(browser.versionNumber, 12, "Version should be 12"); + + test.assert(browser.desktop, "Browser platform should be desktop"); + test.assert(browser.win, "Platform should be Windows"); + + test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based"); + + }).run(function(){ + test.done(); + }); +}); + casper.test.begin("when using Opera 15+ on Windows", 7, function(test) { casper.userAgent(ua.opera.v_15.windows); From 1b56b02c7a059e77c1f380ffb62874b6ef4baaeb Mon Sep 17 00:00:00 2001 From: phistuck Date: Mon, 17 Nov 2014 23:15:39 +0200 Subject: [PATCH 3/3] Fixed a whitespace and tab inconsistency There were only whitespace characters, while the rest of the lines use a weird combination of tabs and spaces, but general consistency within a file comes first. --- dist/jquery.browser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js index ddacbe6..73cebce 100644 --- a/dist/jquery.browser.js +++ b/dist/jquery.browser.js @@ -32,7 +32,7 @@ ua = ua.toLowerCase(); var match = /(edge)\/([\w.]+)/.exec( ua ) || - /(opr)[\/]([\w.]+)/.exec( ua ) || + /(opr)[\/]([\w.]+)/.exec( ua ) || /(chrome)[ \/]([\w.]+)/.exec( ua ) || /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) || /(webkit)[ \/]([\w.]+)/.exec( ua ) ||