jenkins-bot has submitted this change and it was merged.

Change subject: startup: Blacklist incompatible mobile browsers
......................................................................


startup: Blacklist incompatible mobile browsers

These user agents have been blacklisted on the mobile site for some time.

They have been re-reviewed alongside the A grade phones supported by
jQuery mobile [1] and jQuery [2]

[1] http://jquerymobile.com/gbs/
[2] http://jquery.com/browser-support/

Change-Id: If7743c476e95002174763514428c17dfcbe7da4c
---
M resources/startup.js
M tests/qunit/suites/resources/startup.test.js
2 files changed, 60 insertions(+), 7 deletions(-)

Approvals:
  MaxSem: Verified; Looks good to me, approved
  jenkins-bot: Verified



diff --git a/resources/startup.js b/resources/startup.js
index 6397cd6..39302bc 100644
--- a/resources/startup.js
+++ b/resources/startup.js
@@ -12,6 +12,7 @@
  *
  * See also:
  * - https://www.mediawiki.org/wiki/Compatibility#Browser
+ * - http://jquerymobile.com/gbs/
  * - http://jquery.com/browser-support/
  */
 
@@ -25,8 +26,20 @@
        return !(
                // Internet Explorer < 6
                ( ua.indexOf( 'MSIE' ) !== -1 && parseFloat( ua.split( 'MSIE' 
)[1] ) < 6 ) ||
-                       // Firefox < 4
-                       ( ua.indexOf( 'Firefox/' ) !== -1 && parseFloat( 
ua.split( 'Firefox/' )[1] ) < 4 )
+               // Firefox < 4
+               ( ua.indexOf( 'Firefox/' ) !== -1 && parseFloat( ua.split( 
'Firefox/' )[1] ) < 4 ) ||
+               // BlackBerry < 6
+               ua.match( /BlackBerry[^\/]*\/[1-5]\./ ) ||
+               // Open WebOS < 1.5
+               ua.match( /webOS\/1\.[0-4]/ ) ||
+               // Anything PlayStation based.
+               ua.match( /PlayStation/i ) ||
+               // Any Symbian based browsers
+               ua.match( /SymbianOS|Series60/ ) ||
+               // Any NetFront based browser
+               ua.match( /NetFront/ ) ||
+               // Opera Mini < 7
+               ua.match( /Opera Mini\/[0-6]\./ )
        );
 }
 
diff --git a/tests/qunit/suites/resources/startup.test.js 
b/tests/qunit/suites/resources/startup.test.js
index 981452b..8b33df4 100644
--- a/tests/qunit/suites/resources/startup.test.js
+++ b/tests/qunit/suites/resources/startup.test.js
@@ -11,6 +11,8 @@
                        'Mozilla/5.0 (Macintosh; I; Intel Mac OS X 11_7_9; 
de-LI; rv:1.9b4) Gecko/2012010317 Firefox/10.0a4',
                        'Mozilla/5.0 (Windows NT 6.1; rv:12.0) 
Gecko/20120403211507 Firefox/12.0',
                        'Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) 
Gecko/20121011 Firefox/16.0.1',
+                       // Kindle Fire
+                       'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle 
Fire Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 
Safari/533.1',
                        // Safari 5.0+
                        'Mozilla/5.0 (Macintosh; I; Intel Mac OS X 10_6_7; 
ru-ru) AppleWebKit/534.31+ (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1',
                        // Opera 11+
@@ -20,7 +22,24 @@
                        'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0; 
en-US)',
                        'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.2; 
Trident/4.0; Media Center PC 4.0; SLCC1; .NET CLR 3.0.04320)',
                        'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.1; 
Trident/5.0)',
-                       'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; 
WOW64; Trident/6.0)'
+                       'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; 
WOW64; Trident/6.0)',
+                       // IE Mobile
+                       'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 
7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800)',
+                       // BlackBerry 6+
+                       'Mozilla/5.0 (BlackBerry; U; BlackBerry 9300; en) 
AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.570 Mobile Safari/534.8+',
+                       'Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en) 
AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.346 Mobile 
Safari/534.11+',
+                       'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.3+ (KHTML, 
like Gecko) Version/10.0.9.386 Mobile Safari/537.3+',
+                       // Open WebOS 1.4+ (HP Veer 4G)
+                       'Mozilla/5.0 (webOS/2.1.2; U; en-US) AppleWebKit/532.2 
(KHTML, like Gecko) Version/1.0 Safari/532.2 P160UNA/1.0',
+                       // Firefox Mobile
+                       'Mozilla/5.0 (Mobile; rv:14.0) Gecko/14.0 Firefox/14.0',
+                       // iOS
+                       'Mozilla/5.0 (ipod: U;CPU iPhone OS 2_2 like Mac OS X: 
es_es) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.0 Mobile/3B48b 
Safari/419.3',
+                       'Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) 
AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3B48b Safari/419.3',
+                       // Android
+                       'Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One 
Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile 
Safari/530.17',
+                       // Recent Opera Mini - JS mostly doesn't work, but 
serving jQuery doesn't hurt users
+                       'Opera/9.80 (Android; Opera Mini/7.29530/27.1407; U; 
en) Presto/2.8.119 Version/11.10'
                ],
                // Supported: Uncompatible, serve basic content
                gradeB: [
@@ -32,10 +51,29 @@
                        // Firefox < 4
                        'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2',
                        'Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.8.1.1) 
Gecko/20070311 Firefox/2.0.0.1',
-                       'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; 
rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3'
-
+                       'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; 
rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3',
+                       // BlackBerry < 6
+                       'BlackBerry9300/5.0.0.716 Profile/MIDP-2.1 
Configuration/CLDC-1.1 VendorID/133',
+                       'BlackBerry7250/4.0.0 Profile/MIDP-2.0 
Configuration/CLDC-1.1',
+                       // Open WebOS < 1.5 (Palm Pre, Palm Pixi)
+                       'Mozilla/5.0 (webOS/1.0; U; en-US) AppleWebKit/525.27.1 
(KHTML, like Gecko) Version/1.0 Safari/525.27.1 Pre/1.0',
+                       'Mozilla/5.0 (webOS/1.4.0; U; en-US) AppleWebKit/532.2 
(KHTML, like Gecko) Version/1.0 Safari/532.2 Pixi/1.1 ',
+                       // SymbianOS
+                       'NokiaN95_8GB-3;Mozilla/5.0 
SymbianOS/9.2;U;Series60/3.1 NokiaN95_8GB-3/11.2.011 Profile/MIDP-2.0 
Configuration/CLDC-1.1 AppleWebKit/413 (KHTML, like Gecko)',
+                       'Nokia7610/2.0 (5.0509.0) SymbianOS/7.0s Series60/2.1 
Profile/MIDP-2.0 Configuration/CLDC-1.0 ',
+                       'Mozilla/5.0 (SymbianOS/9.1; U; [en]; SymbianOS/91 
Series60/3.0) AppleWebKit/413 (KHTML, like Gecko) Safari/413',
+                       'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 
NokiaE52-2/091.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 
(KHTML, like Gecko) NokiaBrowser/7.3.1.34 Mobile Safari/533.4',
+                       // NetFront
+                       'Mozilla/4.0 (compatible; Linux 2.6.10) NetFront/3.3 
Kindle/1.0 (screen 600x800)',
+                       'Mozilla/4.0 (compatible; Linux 2.6.22) NetFront/3.4 
Kindle/2.0 (screen 824x1200; rotate)',
+                       'Mozilla/4.08 (Windows; Mobile Content Viewer/1.0) 
NetFront/3.2',
+                       // Opera Mini < 7
+                       'Opera/9.80 (J2ME/MIDP; Opera Mini/3.1.10423/22.387; U; 
en) Presto/2.5.25 Version/10.54',
+                       'Opera/9.50 (J2ME/MIDP; Opera Mini/4.0.10031/298; U; 
en)',
+                       'Opera/9.80 (J2ME/MIDP; Opera Mini/6.24093/26.1305; U; 
en) Presto/2.8.119 Version/10.54'
                ],
-               // No special treatment blacklisting, benefit of doubt at own 
risk
+               // No explicit support for or against these browsers, they're
+               // given a shot at Grade A at their own risk.
                gradeX: [
                        // Gecko
                        'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) 
Gecko/20060928 (Debian|Debian-1.8.0.7-1) Epiphany/2.14',
@@ -70,17 +108,19 @@
                        }
                );
        } );
+
        QUnit.test( 'isCompatible( Grade B )', testcases.gradeB.length, 
function ( assert ) {
                $.each( testcases.gradeB, function ( i, ua ) {
                                assert.strictEqual( isCompatible( ua ), false, 
ua );
                        }
                );
        } );
+
        QUnit.test( 'isCompatible( Grade X )', testcases.gradeX.length, 
function ( assert ) {
                $.each( testcases.gradeX, function ( i, ua ) {
                                assert.strictEqual( isCompatible( ua ), true, 
ua );
                        }
                );
        } );
-}( jQuery ) );
 
+}( jQuery ) );

-- 
To view, visit https://gerrit.wikimedia.org/r/55446
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: If7743c476e95002174763514428c17dfcbe7da4c
Gerrit-PatchSet: 22
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: MaxSem <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
Gerrit-Reviewer: Jdlrobson <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: Matmarex <[email protected]>
Gerrit-Reviewer: MaxSem <[email protected]>
Gerrit-Reviewer: Ori.livneh <[email protected]>
Gerrit-Reviewer: awjrichards <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to