Skip to content

Commit aa2186e

Browse files
committed
Merge remote-tracking branch 'origin/master' into stable
# Conflicts: # DeviceDetector.php # regexes/device/mobiles.yml
2 parents 7eeef19 + 00bfe1a commit aa2186e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+69608
-59720
lines changed

DeviceDetector.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class DeviceDetector
5050
/**
5151
* Current version number of DeviceDetector
5252
*/
53-
const VERSION = '3.15.1';
53+
const VERSION = '3.15.2';
5454

5555
/**
5656
* Holds all registered client types

Parser/Client/Browser.php

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class Browser extends ClientParserAbstract
4848
'BB' => 'BlackBerry Browser',
4949
'BD' => 'Baidu Browser',
5050
'BS' => 'Baidu Spark',
51+
'BI' => 'Basilisk',
5152
'BE' => 'Beonex',
5253
'BJ' => 'Bunjalloo',
5354
'BL' => 'B-Line',
@@ -80,6 +81,7 @@ class Browser extends ClientParserAbstract
8081
'DO' => 'Dorado',
8182
'DL' => 'Dooble',
8283
'DI' => 'Dillo',
84+
'DD' => 'DuckDuckGo Privacy Browser',
8385
'EC' => 'Ecosia',
8486
'EI' => 'Epic',
8587
'EL' => 'Elinks',
@@ -97,9 +99,13 @@ class Browser extends ClientParserAbstract
9799
'FM' => 'Firefox Mobile',
98100
'FW' => 'Fireweb',
99101
'FN' => 'Fireweb Navigator',
102+
'FU' => 'FreeU',
100103
'GA' => 'Galeon',
101104
'GE' => 'Google Earth',
105+
'HA' => 'Hawk Turbo Browser',
106+
'HO' => 'hola! Browser',
102107
'HJ' => 'HotJava',
108+
'HU' => 'Huawei Browser',
103109
'IB' => 'IBrowse',
104110
'IC' => 'iCab',
105111
'I2' => 'iCab Mobile',
@@ -114,14 +120,16 @@ class Browser extends ClientParserAbstract
114120
'IR' => 'Iron',
115121
'JS' => 'Jasmine',
116122
'JI' => 'Jig Browser',
123+
'JO' => 'Jio Browser',
124+
'KB' => 'K.Browser',
117125
'KI' => 'Kindle Browser',
118126
'KM' => 'K-meleon',
119127
'KO' => 'Konqueror',
120128
'KP' => 'Kapiko',
121129
'KW' => 'Kiwi',
122130
'KY' => 'Kylo',
123131
'KZ' => 'Kazehakase',
124-
'LB' => 'Liebao',
132+
'LB' => 'Cheetah Browser',
125133
'LF' => 'LieBaoFast',
126134
'LG' => 'LG Browser',
127135
'LI' => 'Links',
@@ -141,12 +149,14 @@ class Browser extends ClientParserAbstract
141149
'NB' => 'Nokia Browser',
142150
'NO' => 'Nokia OSS Browser',
143151
'NV' => 'Nokia Ovi Browser',
152+
'NX' => 'Nox Browser',
144153
'NE' => 'NetSurf',
145154
'NF' => 'NetFront',
146155
'NL' => 'NetFront Life',
147156
'NP' => 'NetPositive',
148157
'NS' => 'Netscape',
149158
'NT' => 'NTENT Browser',
159+
'OC' => 'Oculus Browser',
150160
'O1' => 'Opera Mini iOS',
151161
'OB' => 'Obigo',
152162
'OD' => 'Odyssey Web Browser',
@@ -180,6 +190,7 @@ class Browser extends ClientParserAbstract
180190
'QZ' => 'QupZilla',
181191
'QM' => 'Qwant Mobile',
182192
'QW' => 'QtWebEngine',
193+
'RE' => 'Realme Browser',
183194
'RK' => 'Rekonq',
184195
'RM' => 'RockMelt',
185196
'SB' => 'Samsung Browser',
@@ -193,6 +204,7 @@ class Browser extends ClientParserAbstract
193204
'SL' => 'Sleipnir',
194205
'SN' => 'Snowshoe',
195206
'SO' => 'Sogou Mobile Browser',
207+
'SI' => 'Sputnik Browser',
196208
'SR' => 'Sunrise',
197209
'SP' => 'SuperBird',
198210
'ST' => 'Streamy',
@@ -205,6 +217,7 @@ class Browser extends ClientParserAbstract
205217
'UC' => 'UC Browser',
206218
'UM' => 'UC Browser Mini',
207219
'VI' => 'Vivaldi',
220+
'VV' => 'vivo Browser',
208221
'VB' => 'Vision Mobile Browser',
209222
'WP' => 'Web Explorer',
210223
'WE' => 'WebPositive',
@@ -213,6 +226,7 @@ class Browser extends ClientParserAbstract
213226
'WO' => 'wOSBrowser',
214227
'WT' => 'WeTab Browser',
215228
'YA' => 'Yandex Browser',
229+
'YL' => 'Yandex Browser Lite',
216230
'XI' => 'Xiino'
217231

218232
// detected browsers in older versions
@@ -230,8 +244,8 @@ class Browser extends ClientParserAbstract
230244
'BlackBerry Browser' => array('BB'),
231245
'Baidu' => array('BD', 'BS'),
232246
'Amiga' => array('AV', 'AW'),
233-
'Chrome' => array('CH', 'BA', 'BR', 'CC', 'CD', 'CM', 'CI', 'CF', 'CN', 'CR', 'CP', 'IR', 'RM', 'AO', 'TS', 'VI', 'PT', 'AS', 'TB', 'AD', 'SB', 'WP', 'I3', 'CV', 'WH', 'SZ', 'QW', 'LF', 'KW', '2B', 'CE', 'EC', 'MT', 'MS'),
234-
'Firefox' => array('FF', 'FE', 'FM', 'SX', 'FB', 'PX', 'MB', 'EI', 'WF', 'CU', 'TF', 'QM', 'FR', 'I4', 'GZ', 'MO', 'F1'),
247+
'Chrome' => array('CH', 'BA', 'BR', 'CC', 'CD', 'CM', 'CI', 'CF', 'CN', 'CR', 'CP', 'DD', 'IR', 'RM', 'AO', 'TS', 'VI', 'PT', 'AS', 'TB', 'AD', 'SB', 'WP', 'I3', 'CV', 'WH', 'SZ', 'QW', 'LF', 'KW', '2B', 'CE', 'EC', 'MT', 'MS', 'HA', 'OC'),
248+
'Firefox' => array('FF', 'FE', 'FM', 'SX', 'FB', 'PX', 'MB', 'EI', 'WF', 'CU', 'TF', 'QM', 'FR', 'I4', 'GZ', 'MO', 'F1', 'BI'),
235249
'Internet Explorer' => array('IE', 'IM', 'PS'),
236250
'Konqueror' => array('KO'),
237251
'NetFront' => array('NF'),
@@ -248,7 +262,7 @@ class Browser extends ClientParserAbstract
248262
* @var array
249263
*/
250264
protected static $mobileOnlyBrowsers = array(
251-
'36', 'PU', 'SK', 'MF', 'OI', 'OM', 'DB', 'ST', 'BL', 'IV', 'FM', 'C1', 'AL', 'SA', 'SB', 'FR', 'WP'
265+
'36', 'OC', 'PU', 'SK', 'MF', 'OI', 'OM', 'DD', 'DB', 'ST', 'BL', 'IV', 'FM', 'C1', 'AL', 'SA', 'SB', 'FR', 'WP', 'HA', 'NX', 'HU', 'VV', 'RE'
252266
);
253267

254268
/**

Parser/Client/Browser/Engine.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ class Engine extends ClientParserAbstract
3939
'KHTML',
4040
'NetFront',
4141
'Edge',
42-
'NetSurf'
42+
'NetSurf',
43+
'Servo'
4344
);
4445

4546
/**

Parser/Device/DeviceParserAbstract.php

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ abstract class DeviceParserAbstract extends ParserAbstract
3333
const DEVICE_TYPE_CAMERA = 8;
3434
const DEVICE_TYPE_PORTABLE_MEDIA_PAYER = 9;
3535
const DEVICE_TYPE_PHABLET = 10;
36+
const DEVICE_TYPE_SMART_SPEAKER = 11;
3637

3738
/**
3839
* Detectable device types
@@ -50,7 +51,8 @@ abstract class DeviceParserAbstract extends ParserAbstract
5051
'smart display' => self::DEVICE_TYPE_SMART_DISPLAY,
5152
'camera' => self::DEVICE_TYPE_CAMERA,
5253
'portable media player' => self::DEVICE_TYPE_PORTABLE_MEDIA_PAYER,
53-
'phablet' => self::DEVICE_TYPE_PHABLET
54+
'phablet' => self::DEVICE_TYPE_PHABLET,
55+
'smart speaker' => self::DEVICE_TYPE_SMART_SPEAKER,
5456
);
5557

5658
/**
@@ -70,10 +72,12 @@ abstract class DeviceParserAbstract extends ParserAbstract
7072
'A3' => 'AGM',
7173
'AZ' => 'Ainol',
7274
'AI' => 'Airness',
75+
'0A' => 'AIS',
7376
'AW' => 'Aiwa',
7477
'AK' => 'Akai',
7578
'AL' => 'Alcatel',
7679
'A2' => 'Allview',
80+
'A7' => 'Allwinner',
7781
'A1' => 'Altech UEC',
7882
'A5' => 'altron',
7983
'AN' => 'Arnova',
@@ -123,12 +127,14 @@ abstract class DeviceParserAbstract extends ParserAbstract
123127
'CF' => 'Carrefour',
124128
'CP' => 'Captiva',
125129
'CS' => 'Casio',
130+
'R4' => 'Casper',
126131
'CA' => 'Cat',
127132
'C9' => 'CAGI',
128133
'CE' => 'Celkon',
129134
'CC' => 'ConCorde',
130135
'C2' => 'Changhong',
131136
'CH' => 'Cherry Mobile',
137+
'L8' => 'Clarmin',
132138
'CK' => 'Cricket',
133139
'C1' => 'Crosscall',
134140
'CL' => 'Compal',
@@ -200,13 +206,17 @@ abstract class DeviceParserAbstract extends ParserAbstract
200206
'EZ' => 'Ezze',
201207
'E8' => 'E-tel',
202208
'E9' => 'Evercoss',
209+
'EU' => 'Eurostar',
203210
'FA' => 'Fairphone',
211+
'FM' => 'Famoco',
212+
'FE' => 'Fengxiang',
204213
'FI' => 'FiGO',
205214
'FL' => 'Fly',
206215
'F1' => 'FinePower',
207216
'FT' => 'Freetel',
208217
'FR' => 'Forstar',
209218
'FO' => 'Foxconn',
219+
'F2' => 'FORME',
210220
'FN' => 'FNB',
211221
'FU' => 'Fujitsu',
212222
'FD' => 'Fondi',
@@ -261,6 +271,7 @@ abstract class DeviceParserAbstract extends ParserAbstract
261271
'I0' => 'InFocus',
262272
'I5' => 'InnJoo',
263273
'IN' => 'Innostream',
274+
'IS' => 'Insignia',
264275
'I4' => 'Inoi',
265276
'IR' => 'iRola',
266277
'I6' => 'Irbis',
@@ -327,6 +338,7 @@ abstract class DeviceParserAbstract extends ParserAbstract
327338
'MN' => 'M4tel',
328339
'MJ' => 'Majestic',
329340
'MA' => 'Manta Multimedia',
341+
'2M' => 'Masstel',
330342
'MW' => 'Maxwest',
331343
'M0' => 'Maze',
332344
'MB' => 'Mobistel',
@@ -335,11 +347,13 @@ abstract class DeviceParserAbstract extends ParserAbstract
335347
'MD' => 'Medion',
336348
'M2' => 'MEEG',
337349
'M1' => 'Meizu',
350+
'3M' => 'Meitu',
338351
'ME' => 'Metz',
339352
'MX' => 'MEU',
340353
'MI' => 'MicroMax',
341354
'M5' => 'MIXC',
342355
'MH' => 'Mobiola',
356+
'4M' => 'Mobicel',
343357
'M6' => 'Mobiistar',
344358
'MC' => 'Mediacom',
345359
'MK' => 'MediaTek',
@@ -360,6 +374,7 @@ abstract class DeviceParserAbstract extends ParserAbstract
360374
'MQ' => 'M.T.T.',
361375
'N4' => 'MTN',
362376
'MY' => 'MyPhone',
377+
'1M' => 'MYFON',
363378
'MG' => 'MyWigo',
364379
'M8' => 'Myria',
365380
'N3' => 'Navon',
@@ -369,6 +384,7 @@ abstract class DeviceParserAbstract extends ParserAbstract
369384
'NA' => 'Netgear',
370385
'NU' => 'NeuImage',
371386
'NG' => 'NGM',
387+
'N6' => 'Nobby',
372388
'NO' => 'Nous',
373389
'NI' => 'Nintendo',
374390
'N1' => 'Noain',
@@ -433,13 +449,16 @@ abstract class DeviceParserAbstract extends ParserAbstract
433449
'RC' => 'RCA Tablets',
434450
'RB' => 'Readboy',
435451
'RI' => 'Rikomagic',
452+
'RN' => 'Rinno',
436453
'RV' => 'Riviera',
437454
'RM' => 'RIM',
438455
'RK' => 'Roku',
439456
'RO' => 'Rover',
440457
'R1' => 'Rokit',
441458
'R3' => 'Rombica',
442459
'RT' => 'RT Project',
460+
'RX' => 'Ritmix',
461+
'R5' => 'Ross&Moor',
443462
'R2' => 'R-TV',
444463
'SQ' => 'Santin BiTBiZ',
445464
'SA' => 'Samsung',
@@ -502,6 +521,7 @@ abstract class DeviceParserAbstract extends ParserAbstract
502521
'TM' => 'T-Mobile',
503522
'TN' => 'Thomson',
504523
'TQ' => 'Timovi',
524+
'TY' => 'Tooky',
505525
'T1' => 'Tolino',
506526
'T9' => 'Top House',
507527
'TO' => 'Toplux',
@@ -525,17 +545,21 @@ abstract class DeviceParserAbstract extends ParserAbstract
525545
'UX' => 'Unimax',
526546
'UM' => 'UMIDIGI',
527547
'UU' => 'Unonu',
548+
'UK' => 'UTOK',
528549
'UT' => 'UTStarcom',
529550
'VA' => 'Vastking',
530551
'VD' => 'Videocon',
531552
'VE' => 'Vertu',
553+
'VN' => 'Venso',
554+
'V5' => 'Vivax',
532555
'VI' => 'Vitelcom',
533556
'VK' => 'VK Mobile',
534557
'VS' => 'ViewSonic',
535558
'VT' => 'Vestel',
536559
'VR' => 'Vernee',
537560
'V4' => 'Verizon',
538561
'VL' => 'Verykool',
562+
'V6' => 'VGO TEL',
539563
'VV' => 'Vivo',
540564
'VX' => 'Vertex',
541565
'V3' => 'Vinsoc',

Parser/ParserAbstract.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ protected function getRegexesDirectory()
171171
/**
172172
* Matches the useragent against the given regex
173173
*
174-
* @param $regex
174+
* @param string $regex
175175
* @return array|bool
176176
*/
177177
protected function matchUserAgent($regex)

0 commit comments

Comments
 (0)