Skip to content

Commit be8de2c

Browse files
Adds detection for various browsers (#7614)
* Adds detection for TTWebview * Adds detection for tararia * Adds detection for Colom Browser * Adds detection for VibeMate * Improves detection for VibeMate * Improves detection for Chrome Webview * Adds detection for Rakuten Browser * Adds detection for Rakuten Web Search * Fix VibeMate * Remove null from family * Fix Chrome Webview tests * Fix Rakuten Web Search test * Adds detection for Moya Browser * Adds detection for Impervious Browser * Improves version detection for Nokia Browser * Improves version detection for VibeMate * Adds detection for Catalyst * Adds detection for Wexond * Adds detection for Ninetails * Adds detection for JUZI Browser * Adds detection for Lotus * Adds detection for Catsxp https://www.catsxp.com/ * Adds detection for QJY TV Browser * Improves detection for VMware AirWatch * Adds detection for Intune Managed Browser * Adds detection for Bang * Fix QJY TV Browser name * Improves detection for Ask.com * Adds tests for Ghostery Privacy Browser * Adds detection for GoKu * Delete .phpunit.result.cache * Adds detection for Cliqz Replaced by Ghostery Privacy Browser * Improves detection for 18+ Privacy Browser * Adds detection for Surfy Browser * Improves detection for Surfy Browser * Improves detection for Vision Mobile Browser * Improves detection for GinxDroid Browser * Change short code for Moya Browser * Move F-Secure SAFE from apps to browsers * Move KPN Veilig from apps to browsers * Adds detection for Bluefy * Improve regexes * Sort keys * Add Microsoft Edge to $clientHintMapping * Improves detection for Edge WebView * Adds test for Chrome Webview * Remove information not required for browser tests * Improves detection for 360 Secure Browser * Improves detection for Vivaldi * Improves version detection for Brave * Adds detection for OnBrowser Lite * Adds detection for Diigo Browser * Adds detection for TrueLocation Browser * Adds detection for Mogok Browser --------- Co-authored-by: Tutik Alexsandr <[email protected]>
1 parent a57ab14 commit be8de2c

File tree

16 files changed

+662
-117
lines changed

16 files changed

+662
-117
lines changed

DeviceDetector.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1065,7 +1065,7 @@ protected function parseDevice(): void
10651065
*/
10661066
if (\in_array($clientName, [
10671067
'Kylo', 'Espial TV Browser', 'LUJO TV Browser', 'LogicUI TV Browser', 'Open TV Browser', 'Seraphic Sraf',
1068-
'Opera Devices', 'Crow Browser', 'Vewd Browser', 'TiviMate', 'Quick Search TV',
1068+
'Opera Devices', 'Crow Browser', 'Vewd Browser', 'TiviMate', 'Quick Search TV', 'QJY TV Browser',
10691069
])
10701070
) {
10711071
$this->device = AbstractDeviceParser::DEVICE_TYPE_TV;

Parser/Client/Browser.php

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,12 @@ class Browser extends AbstractClientParser
117117
'BM' => 'Beamrise',
118118
'F7' => 'BF Browser',
119119
'BB' => 'BlackBerry Browser',
120+
'6B' => 'Bluefy',
120121
'H1' => 'BrowseHere',
121122
'B8' => 'Browser Hup Pro',
122123
'BD' => 'Baidu Browser',
123124
'BS' => 'Baidu Spark',
125+
'BG' => 'Bang',
124126
'B9' => 'Bangla Browser',
125127
'BI' => 'Basilisk',
126128
'BV' => 'Belva Browser',
@@ -148,13 +150,16 @@ class Browser extends AbstractClientParser
148150
'BF' => 'Byffox',
149151
'B4' => 'BXE Browser',
150152
'CA' => 'Camino',
153+
'5C' => 'Catalyst',
154+
'XP' => 'Catsxp',
151155
'0C' => 'Cave Browser',
152156
'CL' => 'CCleaner',
153157
'C8' => 'CG Browser',
154158
'CJ' => 'ChanjetCloud',
155159
'C6' => 'Chedot',
156160
'C9' => 'Cherry Browser',
157161
'C0' => 'Centaury',
162+
'CQ' => 'Cliqz',
158163
'CC' => 'Coc Coc',
159164
'C4' => 'CoolBrowser',
160165
'C2' => 'Colibri',
@@ -171,6 +176,7 @@ class Browser extends AbstractClientParser
171176
'CM' => 'Chrome Mobile',
172177
'3C' => 'Chowbo',
173178
'CN' => 'CoolNovo',
179+
'4C' => 'Colom Browser',
174180
'CO' => 'CometBird',
175181
'2C' => 'Comfort Browser',
176182
'CB' => 'COS Browser',
@@ -198,6 +204,7 @@ class Browser extends AbstractClientParser
198204
'DT' => 'Delta Browser',
199205
'D0' => 'Desi Browser',
200206
'DS' => 'DeskBrowse',
207+
'II' => 'Diigo Browser',
201208
'D2' => 'DoCoMo',
202209
'DF' => 'Dolphin',
203210
'DZ' => 'Dolphin Zero',
@@ -260,6 +267,7 @@ class Browser extends AbstractClientParser
260267
'GP' => 'Google Earth Pro',
261268
'GO' => 'GOG Galaxy',
262269
'GR' => 'GoBrowser',
270+
'GK' => 'GoKu',
263271
'G2' => 'GO Browser',
264272
'HB' => 'Harman Browser',
265273
'HS' => 'HasBrowser',
@@ -289,11 +297,13 @@ class Browser extends AbstractClientParser
289297
'IV' => 'Isivioo',
290298
'I8' => 'IVVI Browser',
291299
'IW' => 'Iceweasel',
300+
'2I' => 'Impervious Browser',
292301
'N3' => 'Incognito Browser',
293302
'IN' => 'Inspect Browser',
294303
'I9' => 'Insta Browser',
295304
'IE' => 'Internet Explorer',
296305
'I7' => 'Internet Browser Secure',
306+
'3I' => 'Intune Managed Browser',
297307
'I5' => 'Indian UC Mini Browser',
298308
'Z0' => 'InBrowser',
299309
'IM' => 'IE Mobile',
@@ -305,6 +315,7 @@ class Browser extends AbstractClientParser
305315
'JI' => 'Jig Browser',
306316
'JP' => 'Jig Browser Plus',
307317
'JO' => 'JioSphere',
318+
'JZ' => 'JUZI Browser',
308319
'KB' => 'K.Browser',
309320
'KF' => 'Keepsafe Browser',
310321
'KS' => 'Kids Safe Browser',
@@ -329,6 +340,7 @@ class Browser extends AbstractClientParser
329340
'LI' => 'Links',
330341
'LC' => 'LogicUI TV Browser',
331342
'IF' => 'Lolifox',
343+
'L3' => 'Lotus',
332344
'LO' => 'Lovense Browser',
333345
'LT' => 'LT Browser',
334346
'LU' => 'LuaKit',
@@ -352,6 +364,7 @@ class Browser extends AbstractClientParser
352364
'MO' => 'Mobicip',
353365
'MU' => 'MIUI Browser',
354366
'MS' => 'Mobile Silk',
367+
'MK' => 'Mogok Browser',
355368
'MN' => 'Minimo',
356369
'MT' => 'Mint Browser',
357370
'MX' => 'Maxthon',
@@ -366,6 +379,7 @@ class Browser extends AbstractClientParser
366379
'NK' => 'Naked Browser',
367380
'NA' => 'Naked Browser Pro',
368381
'NR' => 'NFS Browser',
382+
'N5' => 'Ninetails',
369383
'NB' => 'Nokia Browser',
370384
'NO' => 'Nokia OSS Browser',
371385
'NV' => 'Nokia Ovi Browser',
@@ -393,6 +407,7 @@ class Browser extends AbstractClientParser
393407
'OF' => 'Off By One',
394408
'O5' => 'Office Browser',
395409
'HH' => 'OhHai Browser',
410+
'OL' => 'OnBrowser Lite',
396411
'OE' => 'ONE Browser',
397412
'N4' => 'Onion Browser',
398413
'Y1' => 'Opera Crypto',
@@ -450,6 +465,7 @@ class Browser extends AbstractClientParser
450465
'RW' => 'Reqwireless WebViewer',
451466
'PS' => 'Microsoft Edge',
452467
'QA' => 'Qazweb',
468+
'QJ' => 'QJY TV Browser',
453469
'Q3' => 'Qmamu',
454470
'Q4' => 'Quick Search TV',
455471
'Q2' => 'QQ Browser Lite',
@@ -461,6 +477,8 @@ class Browser extends AbstractClientParser
461477
'QZ' => 'QupZilla',
462478
'QM' => 'Qwant Mobile',
463479
'QW' => 'QtWebEngine',
480+
'R3' => 'Rakuten Browser',
481+
'R4' => 'Rakuten Web Search',
464482
'R2' => 'Raspbian Chromium',
465483
'RE' => 'Realme Browser',
466484
'RK' => 'Rekonq',
@@ -518,6 +536,7 @@ class Browser extends AbstractClientParser
518536
'HR' => 'Sushi Browser',
519537
'S3' => 'surf',
520538
'4S' => 'Surf Browser',
539+
'RY' => 'Surfy Browser',
521540
'SG' => 'Stargon',
522541
'S0' => 'START Internet Browser',
523542
'S4' => 'Steam In-Game Overlay',
@@ -530,13 +549,15 @@ class Browser extends AbstractClientParser
530549
'TR' => 'T-Browser',
531550
'TO' => 't-online.de Browser',
532551
'TA' => 'Tao Browser',
552+
'T2' => 'tararia',
533553
'TH' => 'Thor',
534554
'1T' => 'Tor Browser',
535555
'TF' => 'TenFourFox',
536556
'TB' => 'Tenta Browser',
537557
'TE' => 'Tesla Browser',
538558
'TZ' => 'Tizen Browser',
539559
'TI' => 'Tint Browser',
560+
'TL' => 'TrueLocation Browser',
540561
'TC' => 'TUC Mini Browser',
541562
'TU' => 'Tungsten',
542563
'TG' => 'ToGate',
@@ -557,6 +578,7 @@ class Browser extends AbstractClientParser
557578
'V3' => 'VD Browser',
558579
'VE' => 'Venus Browser',
559580
'WD' => 'Vewd Browser',
581+
'V5' => 'VibeMate',
560582
'N0' => 'Nova Video Downloader Pro',
561583
'VS' => 'Viasat Browser',
562584
'VI' => 'Vivaldi',
@@ -569,6 +591,7 @@ class Browser extends AbstractClientParser
569591
'WP' => 'Web Explorer',
570592
'W3' => 'Web Browser & Explorer',
571593
'WE' => 'WebPositive',
594+
'WX' => 'Wexond',
572595
'WF' => 'Waterfox',
573596
'WB' => 'Wave Browser',
574597
'WA' => 'Wavebox',
@@ -643,14 +666,15 @@ class Browser extends AbstractClientParser
643666
'1W', 'EV', 'I9', 'V4', 'H4', '1T', 'M5', '0S', '0C',
644667
'ZR', 'D6', 'F6', 'RC', 'WD', 'P3', 'FT', 'A9', 'X2',
645668
'N3', 'GD', 'O9', 'Q3', 'F7', 'K2', 'P5', 'H5', 'V3',
646-
'K3', 'Q4', 'G2', 'R0', 'JO', 'R2',
669+
'K3', 'Q4', 'G2', 'R2', 'WX', 'XP', '3I', 'BG', 'R0',
670+
'JO', 'OL',
647671
],
648672
'Firefox' => [
649673
'AX', 'BI', 'BF', 'BH', 'BN', 'C0', 'CU', 'EI', 'F1',
650674
'FB', 'FE', 'FF', 'FM', 'FR', 'FY', 'GZ', 'I4', 'IF',
651675
'IW', 'LH', 'LY', 'MB', 'MN', 'MO', 'MY', 'OA', 'OS',
652676
'PI', 'PX', 'QA', 'S5', 'SX', 'TF', 'TO', 'WF', 'ZV',
653-
'FP', 'AD', 'WL',
677+
'FP', 'AD', 'WL', '2I',
654678
],
655679
'Internet Explorer' => ['BZ', 'CZ', 'IE', 'IM', 'PS'],
656680
'Konqueror' => ['KO'],
@@ -685,7 +709,7 @@ class Browser extends AbstractClientParser
685709
'1W', 'EV', 'Z0', 'I9', 'V4', 'H4', 'M5', '0S', '0C',
686710
'ZR', 'D6', 'F6', 'P3', 'FT', 'A9', 'X2', 'NI', 'FG',
687711
'TH', 'N3', 'GD', 'O9', 'Q3', 'F7', 'K2', 'N4', 'P5',
688-
'H5', 'V3', 'G2',
712+
'H5', 'V3', 'G2', 'BG', 'OL', 'II', 'TL',
689713
];
690714

691715
/**
@@ -696,9 +720,11 @@ class Browser extends AbstractClientParser
696720
protected static $clientHintMapping = [
697721
'Chrome' => ['Google Chrome'],
698722
'Chrome Webview' => ['Android WebView'],
699-
'Vewd Browser' => ['Vewd Core'],
700723
'DuckDuckGo Privacy Browser' => ['DuckDuckGo'],
724+
'Edge WebView' => ['Microsoft Edge WebView2'],
725+
'Microsoft Edge' => ['Edge'],
701726
'Norton Private Browser' => ['Norton Secure Browser'],
727+
'Vewd Browser' => ['Vewd Core'],
702728
];
703729

704730
/**
@@ -993,7 +1019,7 @@ protected function parseBrowserFromClientHints(): array
9931019
}
9941020

9951021
// If we detected a brand, that is not Chromium, we will use it, otherwise we will look further
996-
if ('' !== $name && 'Chromium' !== $name) {
1022+
if ('' !== $name && 'Chromium' !== $name && 'Microsoft Edge' !== $name) {
9971023
break;
9981024
}
9991025
}

0 commit comments

Comments
 (0)