Changeset 5984
- Timestamp:
- 10/02/2017 03:53:11 PM (8 years ago)
- Location:
- sites/trunk/api.wordpress.org/public_html/core/browse-happy/1.0
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/api.wordpress.org/public_html/core/browse-happy/1.0/parse.php
r5980 r5984 49 49 // Properly set platform if Android is actually being reported. 50 50 if ( 'Linux' === $data['platform'] && false !== strpos( $user_agent, 'Android' ) ) { 51 $data['platform'] = 'Android'; 51 if ( strpos( $user_agent, 'Kindle' ) ) { 52 $data['platform'] = 'Fire OS'; 53 } else { 54 $data['platform'] = 'Android'; 55 } 52 56 } elseif ( 'Windows Phone' === $data['platform'] ) { 53 57 $data['platform'] = 'Windows Phone OS'; 54 58 } 55 59 56 if ( in_array( $data['platform'], array( 'Android', ' iPad', 'iPhone', 'PlayBook', 'RIM Tablet OS', 'Windows Phone OS' ) ) ) {60 if ( in_array( $data['platform'], array( 'Android', 'Fire OS', 'iPad', 'iPhone', 'PlayBook', 'RIM Tablet OS', 'Windows Phone OS' ) ) ) { 57 61 $data['mobile'] = true; 58 62 } 59 63 60 64 preg_match_all( 61 '%(?P<name>Opera Mini|Opera|OPR|Edge|Trident| Camino|Kindle|Firefox|(?:Mobile )?Safari|NokiaBrowser|MSIE|RockMelt|AppleWebKit|Chrome|IEMobile|Version)(?:[/ ])(?P<version>[0-9.]+)%im',65 '%(?P<name>Opera Mini|Opera|OPR|Edge|Trident|Silk|Camino|Kindle|Firefox|(?:Mobile )?Safari|NokiaBrowser|MSIE|RockMelt|AppleWebKit|Chrome|IEMobile|Version)(?:[/ ])(?P<version>[0-9.]+)%im', 62 66 $user_agent, 63 67 $result, … … 93 97 } 94 98 // Nokia Browser 95 elseif ( $key = array_search( 'NokiaBrowser', $result['name']) ) {99 elseif ( false !== ( $key = array_search( 'NokiaBrowser', $result['name'] ) ) ) { 96 100 $data['name'] = 'Nokia Browser'; 97 101 $data['version'] = $result['version'][ $key ]; 98 102 $data['mobile'] = true; 99 } elseif ( 'AppleWebKit' == $result['name'][0] ) { 103 } 104 // Amazon Silk 105 elseif ( false !== ( $key = array_search( 'Silk', $result['name'] ) ) ) { 106 $data['name'] = 'Amazon Silk'; 107 $data['version'] = $result['version'][ $key ]; 108 $version = ''; 109 } 110 // Kindle Browser 111 elseif ( false !== ( $key = array_search( 'Kindle', $result['name'] ) ) ) { 112 $data['name'] = 'Kindle Browser'; 113 $data['version'] = $result['version'][ $key ]; 114 } 115 // AppleWebKit-emulating browsers 116 elseif ( 'AppleWebKit' == $result['name'][0] ) { 100 117 if ( $key = array_search( 'Edge', $result['name'] ) ) { 101 118 $data['name'] = 'Microsoft Edge'; … … 106 123 } elseif ( 'Android' === $data['platform'] ) { 107 124 $data['name'] = 'Android Browser'; 125 } elseif ( 'Fire OS' === $data['platform'] ) { 126 $data['name'] = 'Kindle Browser'; 108 127 } else { 109 128 $data['name'] = 'Mobile Safari'; … … 117 136 } elseif ( ! empty( $data['platform'] ) && 'PlayBook' == $data['platform'] ) { 118 137 $data['name'] = 'PlayBook'; 119 } elseif ( $key = array_search( 'Kindle', $result['name'] ) ) {120 $data['name'] = 'Kindle';121 138 } elseif ( $key = array_search( 'Safari', $result['name'] ) ) { 122 139 if ( 'Android' === $data['platform'] ) { … … 155 172 } 156 173 157 if ( in_array( $data['name'], array( 'Kindle' ) ) ) { 158 $data['platform'] = $data['name']; 174 // Set the platform for Amazon-related browsers. 175 if ( in_array( $data['name'], array( 'Amazon Silk', 'Kindle Browser' ) ) ) { 176 $data['platform'] = 'Fire OS'; 177 $data['mobile'] = true; 159 178 } 160 179 -
sites/trunk/api.wordpress.org/public_html/core/browse-happy/1.0/tests/phpunit/tests/browse-happy.php
r5981 r5984 22 22 return [ 23 23 24 // Amazon Silk 25 26 [ 27 'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Silk/1.0.146.3-Gen4_12000410) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 Silk-Accelerated=true', 28 'Fire OS Amazon Silk 1.0.146.3', 29 ], 30 [ 31 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.0.146.3-Gen4_12000410) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=true', 32 'Fire OS Amazon Silk 1.0.146.3', 33 ], 34 [ 35 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Silk/3.68 like Chrome/39.0.2171.93 Safari/537.36', 36 'Fire OS Amazon Silk 3.68', 37 ], 38 [ 39 'Mozilla/5.0 (Linux; Android 4.0.3; KFTT Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Silk/51.2.1 like Chrome/51.0.2704.81 Safari/537.36', 40 'Fire OS Amazon Silk 51.2.1', 41 ], 42 [ 43 'Mozilla/5.0 (Linux; Android 5.1.1; KFDOWI Build/LVY48F) AppleWebKit/537.36 (KHTML, like Gecko) Silk/58.2.6 like Chrome/58.0.3029.83 Safari/537.36', 44 'Fire OS Amazon Silk 58.2.6', 45 ], 46 24 47 // Android Browser 25 48 … … 269 292 ], 270 293 294 // Kindle Browser 295 296 [ 297 'Mozilla/4.0 (compatible; Linux 2.6.10) NetFront/3.3 Kindle/1.0 (screen 600x800)', 298 'Fire OS Kindle Browser 1.0', 299 ], 300 [ 301 'Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) Version/4.0 Kindle/3.0 (screen 600x800; rotate)', 302 'Fire OS Kindle Browser 4.0', 303 ], 304 [ 305 'Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/538.5+) Version/4.0 Kindle/3.0 (screen 600x800; rotate)', 306 'Fire OS Kindle Browser 4.0', 307 ], 308 [ 309 'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle Fire Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 310 'Fire OS Kindle Browser 4.0', 311 ], 312 [ 313 'Mozilla/5.0 (X11; U; Linux armv7l like Android; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Version/5.0 Safari/533.2+ Kindle/3.0+', 314 'Fire OS Kindle Browser 5.0', 315 ], 316 271 317 // Microsoft Edge 272 318 … … 442 488 // Miscellaneous 443 489 444 [445 'Mozilla/4.0 (compatible; Linux 2.6.10) NetFront/3.3 Kindle/1.0 (screen 600x800)',446 'Kindle Kindle 1.0',447 ],448 [449 'Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) Version/4.0 Kindle/3.0 (screen 600x800; rotate)',450 'Kindle Kindle 4.0',451 ],452 [453 'Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/538.5+) Version/4.0 Kindle/3.0 (screen 600x800; rotate)',454 'Kindle Kindle 4.0',455 ],456 490 [ 457 491 'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 1.0.0; en-US) AppleWebKit/534.8 (KHTML, like Gecko) Version/0.0.1 Safari/534.8', … … 556 590 $parsed = browsehappy_parse_user_agent( $header ); 557 591 558 if ( in_array( $parsed['platform'], array( 'Android', ' iPad', 'iPhone', 'Mobile', 'PlayBook', 'RIM Tablet OS', 'Windows Phone OS' ) ) ) {592 if ( in_array( $parsed['platform'], array( 'Android', 'Fire OS', 'iPad', 'iPhone', 'Mobile', 'PlayBook', 'RIM Tablet OS', 'Windows Phone OS' ) ) ) { 559 593 $this->assertTrue( $parsed['mobile'] ); 560 594 } else {
Note: See TracChangeset
for help on using the changeset viewer.