device_detector 1.0.7 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/README.md +25 -4
- data/lib/device_detector/browser.rb +184 -5
- data/lib/device_detector/client_hint.rb +181 -0
- data/lib/device_detector/device.rb +522 -3
- data/lib/device_detector/os.rb +33 -3
- data/lib/device_detector/parser.rb +25 -3
- data/lib/device_detector/vendor_fragment.rb +25 -0
- data/lib/device_detector/version.rb +1 -1
- data/lib/device_detector.rb +82 -16
- data/regexes/bots.yml +757 -17
- data/regexes/client/browsers.yml +365 -54
- data/regexes/client/hints/apps.yml +102 -0
- data/regexes/client/hints/browsers.yml +195 -0
- data/regexes/client/libraries.yml +200 -3
- data/regexes/client/mobile_apps.yml +396 -14
- data/regexes/client/pim.yml +15 -0
- data/regexes/device/car_browsers.yml +1 -1
- data/regexes/device/consoles.yml +8 -3
- data/regexes/device/mobiles.yml +12126 -2425
- data/regexes/device/portable_media_player.yml +24 -2
- data/regexes/device/shell_tv.yml +16 -0
- data/regexes/device/televisions.yml +26 -4
- data/regexes/oss.yml +381 -50
- metadata +11 -7
data/regexes/client/browsers.yml
CHANGED
|
@@ -5,6 +5,158 @@
|
|
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
|
6
6
|
###############
|
|
7
7
|
|
|
8
|
+
# APN Browser
|
|
9
|
+
- regex: 'Safari/537.36 (?:Browser|Navegador)'
|
|
10
|
+
name: 'APN Browser'
|
|
11
|
+
version: ''
|
|
12
|
+
engine:
|
|
13
|
+
default: 'Blink'
|
|
14
|
+
|
|
15
|
+
# YAGI (https://play.google.com/store/apps/details?id=in.nismah.yagi)
|
|
16
|
+
- regex: 'YAGI/(\d+\.[\.\d]+)'
|
|
17
|
+
name: 'YAGI'
|
|
18
|
+
version: '$1'
|
|
19
|
+
engine:
|
|
20
|
+
default: 'Blink'
|
|
21
|
+
|
|
22
|
+
# Inspect Browser (https://apps.apple.com/us/app/inspect-browser/id1203594958)
|
|
23
|
+
- regex: 'InspectBrowser'
|
|
24
|
+
name: 'Inspect Browser'
|
|
25
|
+
version: ''
|
|
26
|
+
|
|
27
|
+
# Keepsafe Browser (https://www.getkeepsafe.com/products/browser/)
|
|
28
|
+
- regex: 'Keepsafe Browser'
|
|
29
|
+
name: 'Keepsafe Browser'
|
|
30
|
+
version: ''
|
|
31
|
+
|
|
32
|
+
# Vast Browser (https://play.google.com/store/apps/details?id=com.vast.vpn.proxy.unblock)
|
|
33
|
+
- regex: '(.*)Vast Browser/(\d+\.[\.\d]+)'
|
|
34
|
+
name: 'Vast Browser'
|
|
35
|
+
version: '$2'
|
|
36
|
+
engine:
|
|
37
|
+
default: 'Blink'
|
|
38
|
+
|
|
39
|
+
# Bloket (https://play.google.com/store/apps/details?id=ai.blokee.browser.android)
|
|
40
|
+
- regex: 'bloket'
|
|
41
|
+
name: 'Bloket'
|
|
42
|
+
version: ''
|
|
43
|
+
engine:
|
|
44
|
+
default: 'Blink'
|
|
45
|
+
|
|
46
|
+
# U Browser (https://play.google.com/store/apps/details?id=com.u_browser)
|
|
47
|
+
- regex: '(.*)U Browser(\d+\.[\.\d]+)'
|
|
48
|
+
name: 'U Browser'
|
|
49
|
+
version: '$2'
|
|
50
|
+
engine:
|
|
51
|
+
default: 'Blink'
|
|
52
|
+
|
|
53
|
+
# Tesla Browser (https://www.teslabrowser.com/)
|
|
54
|
+
- regex: 'Chrome/(\d+\.[\.\d]+).+TeslaBrowser/'
|
|
55
|
+
name: 'Tesla Browser'
|
|
56
|
+
version: '$1'
|
|
57
|
+
engine:
|
|
58
|
+
default: 'Blink'
|
|
59
|
+
|
|
60
|
+
# Viasat Browser (https://browser.viasat.com/)
|
|
61
|
+
- regex: 'Chrome/(\d+\.[\.\d]+).+Sparrow'
|
|
62
|
+
name: 'Viasat Browser'
|
|
63
|
+
version: '$1'
|
|
64
|
+
engine:
|
|
65
|
+
default: 'WebKit'
|
|
66
|
+
versions:
|
|
67
|
+
28: 'Blink'
|
|
68
|
+
- regex: 'Sparrow/.+CFNetwork'
|
|
69
|
+
name: 'Viasat Browser'
|
|
70
|
+
version: ''
|
|
71
|
+
engine:
|
|
72
|
+
default: 'WebKit'
|
|
73
|
+
|
|
74
|
+
# Lilo (https://play.google.com/store/apps/details?id=org.lilo.mobile.android2020)
|
|
75
|
+
- regex: 'Lilo/(\d+\.[\.\d]+)'
|
|
76
|
+
name: 'Lilo'
|
|
77
|
+
version: '$1'
|
|
78
|
+
engine:
|
|
79
|
+
default: 'Blink'
|
|
80
|
+
|
|
81
|
+
# Lexi Browser (https://play.google.com/store/apps/details?id=com.lexi.browser)
|
|
82
|
+
- regex: 'lexi/(\d+[\.\d]+)'
|
|
83
|
+
name: 'Lexi Browser'
|
|
84
|
+
version: '$1'
|
|
85
|
+
engine:
|
|
86
|
+
default: 'Blink'
|
|
87
|
+
|
|
88
|
+
# Floorp (https://floorp.ablaze.one/)
|
|
89
|
+
- regex: 'Floorp/(\d+[\.\d]+)'
|
|
90
|
+
name: 'Floorp'
|
|
91
|
+
version: '$1'
|
|
92
|
+
engine:
|
|
93
|
+
default: 'Gecko'
|
|
94
|
+
|
|
95
|
+
# Surf Browser (https://play.google.com/store/apps/details?id=com.gl9.cloudBrowser)
|
|
96
|
+
- regex: 'SurfBrowser/(\d+[\.\d]+)'
|
|
97
|
+
name: 'Surf Browser'
|
|
98
|
+
version: '$1'
|
|
99
|
+
engine:
|
|
100
|
+
default: 'Blink'
|
|
101
|
+
|
|
102
|
+
# Decentr (https://decentr.net/)
|
|
103
|
+
- regex: 'Decentr'
|
|
104
|
+
name: 'Decentr'
|
|
105
|
+
version: ''
|
|
106
|
+
engine:
|
|
107
|
+
default: 'Blink'
|
|
108
|
+
|
|
109
|
+
# YouCare (https://play.google.com/store/apps/details?id=com.youcare.browser)
|
|
110
|
+
- regex: 'youcare-android-app'
|
|
111
|
+
name: 'YouCare'
|
|
112
|
+
version: ''
|
|
113
|
+
engine:
|
|
114
|
+
default: 'Blink'
|
|
115
|
+
- regex: 'youcare-ios-app'
|
|
116
|
+
name: 'YouCare'
|
|
117
|
+
version: ''
|
|
118
|
+
engine:
|
|
119
|
+
default: 'WebKit'
|
|
120
|
+
|
|
121
|
+
# AdBlock Browser (https://play.google.com/store/apps/details?id=org.adblockplus.browser)
|
|
122
|
+
- regex: 'ABB/(\d+[\.\d]+)'
|
|
123
|
+
name: 'AdBlock Browser'
|
|
124
|
+
version: '$1'
|
|
125
|
+
engine:
|
|
126
|
+
default: 'Blink'
|
|
127
|
+
|
|
128
|
+
# BrowseHere
|
|
129
|
+
- regex: '\d+/tclwebkit(?:\d+[\.\d]*)'
|
|
130
|
+
name: 'BrowseHere'
|
|
131
|
+
version: ""
|
|
132
|
+
|
|
133
|
+
# Hi Browser (https://play.google.com/store/apps/details?id=com.talpa.hibrowser)
|
|
134
|
+
- regex: 'HiBrowser/(\d+[\.\d]+)'
|
|
135
|
+
name: 'Hi Browser'
|
|
136
|
+
version: '$1'
|
|
137
|
+
engine:
|
|
138
|
+
default: 'Blink'
|
|
139
|
+
|
|
140
|
+
# CYBrowser (https://www.cgl.ucsf.edu/cytoscape/utilities3/cybrowser.shtml)
|
|
141
|
+
- regex: 'CYBrowser/(\d+[\.\d]+)'
|
|
142
|
+
name: 'CyBrowser'
|
|
143
|
+
version: '$1'
|
|
144
|
+
|
|
145
|
+
# SiteKiosk (https://www.sitekiosk.com/)
|
|
146
|
+
- regex: 'Chrome/.+ SiteKiosk (\d+[\.\d]+)'
|
|
147
|
+
name: 'SiteKiosk'
|
|
148
|
+
version: '$1'
|
|
149
|
+
engine:
|
|
150
|
+
default: 'Blink'
|
|
151
|
+
- regex: 'SiteKiosk (\d+[\.\d]+)'
|
|
152
|
+
name: 'SiteKiosk'
|
|
153
|
+
version: '$1'
|
|
154
|
+
|
|
155
|
+
# Reqwireless WebViewer
|
|
156
|
+
- regex: 'ReqwirelessWeb/(\d+[\.\d]+)'
|
|
157
|
+
name: 'Reqwireless WebViewer'
|
|
158
|
+
version: '$1'
|
|
159
|
+
|
|
8
160
|
# T+Browser (https://t.chanjet.com/tplus/view/login/downloadBrowser.html | https://dad.chanapp.chanjet.com/tplusapp/TPlusBrowser.exe)
|
|
9
161
|
- regex: 'T\+Browser/(\d+[\.\d]+)'
|
|
10
162
|
name: 'T+Browser'
|
|
@@ -12,6 +164,13 @@
|
|
|
12
164
|
engine:
|
|
13
165
|
default: 'Blink'
|
|
14
166
|
|
|
167
|
+
# SP Browser (https://play.google.com/store/apps/details?id=privatebrowser.securebrowser.com.klar)
|
|
168
|
+
- regex: 'Private Browser/(\d+[\.\d]+) Chrome/'
|
|
169
|
+
name: 'Secure Private Browser'
|
|
170
|
+
version: '$1'
|
|
171
|
+
engine:
|
|
172
|
+
default: 'Blink'
|
|
173
|
+
|
|
15
174
|
# ChanjetCloud (https://dad.chanapp.chanjet.com/tplusapp/HsySetup.exe)
|
|
16
175
|
- regex: 'ChanjetCloud/(\d+[\.\d]+)'
|
|
17
176
|
name: 'ChanjetCloud'
|
|
@@ -160,11 +319,13 @@
|
|
|
160
319
|
default: 'Blink'
|
|
161
320
|
|
|
162
321
|
# Chromium GOST (https://github.com/deemru/chromium-gost)
|
|
163
|
-
- regex: 'Chrome/(\d
|
|
322
|
+
- regex: 'Chrome/(\d+\.[\.\d]+) .*\(Chromium GOST\)'
|
|
164
323
|
name: 'Chromium GOST'
|
|
165
324
|
version: '$1'
|
|
166
325
|
engine:
|
|
167
|
-
default: '
|
|
326
|
+
default: 'WebKit'
|
|
327
|
+
versions:
|
|
328
|
+
28: 'Blink'
|
|
168
329
|
|
|
169
330
|
# Deledao (https://www.deledao.com/)
|
|
170
331
|
- regex: '(?:DeledaoPersonal|DeledaoFamily)/(\d+[\.\d]+)'
|
|
@@ -188,7 +349,7 @@
|
|
|
188
349
|
default: 'Gecko'
|
|
189
350
|
|
|
190
351
|
# CoolBrowser (https://play.google.com/store/apps/details?id=com.easybrowser.browser.coolbrowser)
|
|
191
|
-
- regex: 'Chrome/(\d
|
|
352
|
+
- regex: 'Chrome/(\d+\.[\.\d]+) .*AgentWeb.+UCBrowser'
|
|
192
353
|
name: 'CoolBrowser'
|
|
193
354
|
version: '$1'
|
|
194
355
|
engine:
|
|
@@ -218,8 +379,15 @@
|
|
|
218
379
|
name: 'Lolifox'
|
|
219
380
|
version: '$1'
|
|
220
381
|
|
|
382
|
+
# PiBrowser (https://play.google.com/store/apps/details?id=pi.browser)
|
|
383
|
+
- regex: 'PiBrowser/(\d+[\.\d]+)'
|
|
384
|
+
name: 'Pi Browser'
|
|
385
|
+
version: '$1'
|
|
386
|
+
engine:
|
|
387
|
+
default: 'Blink'
|
|
388
|
+
|
|
221
389
|
# Qutebrowser (https://qutebrowser.org/)
|
|
222
|
-
- regex: 'qutebrowser/(\d
|
|
390
|
+
- regex: 'qutebrowser/(\d+\.[\.\d]+) .*Chrome'
|
|
223
391
|
name: 'Qutebrowser'
|
|
224
392
|
version: '$1'
|
|
225
393
|
engine:
|
|
@@ -293,6 +461,13 @@
|
|
|
293
461
|
name: 'Smooz'
|
|
294
462
|
version: '$1'
|
|
295
463
|
|
|
464
|
+
# Bangla Browser (https://play.google.com/store/apps/details?id=com.w3engineers.banglabrowser)
|
|
465
|
+
- regex: 'BanglaBrowser/(\d+\.[.\d]+)'
|
|
466
|
+
name: 'Bangla Browser'
|
|
467
|
+
version: '$1'
|
|
468
|
+
engine:
|
|
469
|
+
default: 'Blink'
|
|
470
|
+
|
|
296
471
|
# Cornowser (https://github.com/xdevs23/Cornowser)
|
|
297
472
|
- regex: 'Cornowser/(\d+[\.\d]+)'
|
|
298
473
|
name: 'Cornowser'
|
|
@@ -305,6 +480,12 @@
|
|
|
305
480
|
name: 'Orca'
|
|
306
481
|
version: '$1'
|
|
307
482
|
|
|
483
|
+
# Flow Browser (https://play.google.com/store/apps/details?id=org.flow.browser)
|
|
484
|
+
- regex: 'Android (?:[\d\.]+;) ?(?:[^;]+;)? Flow\) AppleWebKit/537.+Chrome/\d{3}'
|
|
485
|
+
name: 'Flow Browser'
|
|
486
|
+
version: ''
|
|
487
|
+
engine:
|
|
488
|
+
default: 'Blink'
|
|
308
489
|
# Flow (https://www.ekioh.com/)
|
|
309
490
|
- regex: 'Flow/(?:(\d+[\.\d]+))'
|
|
310
491
|
name: 'Flow'
|
|
@@ -472,6 +653,8 @@
|
|
|
472
653
|
- regex: 'PHX/(?:(\d+[\.\d]+))?'
|
|
473
654
|
name: 'Phoenix Browser'
|
|
474
655
|
version: '$1'
|
|
656
|
+
engine:
|
|
657
|
+
default: 'Blink'
|
|
475
658
|
|
|
476
659
|
# PrivacyWall (https://play.google.com/store/apps/details?id=org.privacywall.browser)
|
|
477
660
|
- regex: 'PrivacyWall/(?:(\d+[\.\d]+))?'
|
|
@@ -566,6 +749,10 @@
|
|
|
566
749
|
- regex: 'ToGate/(?:(\d+[\.\d]+))?'
|
|
567
750
|
name: 'ToGate'
|
|
568
751
|
version: '$1'
|
|
752
|
+
engine:
|
|
753
|
+
default: 'WebKit'
|
|
754
|
+
versions:
|
|
755
|
+
28: 'Blink'
|
|
569
756
|
|
|
570
757
|
# VMware AirWatch (https://www.air-watch.com/)
|
|
571
758
|
- regex: 'AirWatch Browser v(?:(\d+[\.\d]+))?'
|
|
@@ -601,6 +788,15 @@
|
|
|
601
788
|
- regex: 'Atom/(?:(\d+[\.\d]+))?'
|
|
602
789
|
name: 'Atom'
|
|
603
790
|
version: '$1'
|
|
791
|
+
engine:
|
|
792
|
+
default: 'Blink'
|
|
793
|
+
|
|
794
|
+
# Wolvic VR Browser
|
|
795
|
+
- regex: 'Wolvic/(\d+\.[.\d]+)'
|
|
796
|
+
name: 'Wolvic'
|
|
797
|
+
version: '$1'
|
|
798
|
+
engine:
|
|
799
|
+
default: 'Gecko'
|
|
604
800
|
|
|
605
801
|
# Firefox Reality (https://mixedreality.mozilla.org/firefox-reality/)
|
|
606
802
|
- regex: 'Mobile VR.+Firefox'
|
|
@@ -611,6 +807,10 @@
|
|
|
611
807
|
- regex: 'AVG(?:/(\d+[\.\d]+))?'
|
|
612
808
|
name: 'AVG Secure Browser'
|
|
613
809
|
version: '$1'
|
|
810
|
+
engine:
|
|
811
|
+
default: 'WebKit'
|
|
812
|
+
versions:
|
|
813
|
+
28: 'Blink'
|
|
614
814
|
|
|
615
815
|
# START Internet Browser (https://play.google.com/store/apps/details?id=fyi.start.web.browser)
|
|
616
816
|
- regex: 'Start/(?:(\d+[\.\d]+))?'
|
|
@@ -623,9 +823,11 @@
|
|
|
623
823
|
version: '$1'
|
|
624
824
|
|
|
625
825
|
# Delta Browser (https://play.google.com/store/apps/details?id=com.airfind.deltabrowser)
|
|
626
|
-
- regex: 'com.airfind.deltabrowser(?:/(\d+[\.\d]+))?'
|
|
826
|
+
- regex: '(?:com.airfind.deltabrowser|AirSearch)(?:/(\d+[\.\d]+))?'
|
|
627
827
|
name: 'Delta Browser'
|
|
628
828
|
version: '$1'
|
|
829
|
+
engine:
|
|
830
|
+
default: 'Blink'
|
|
629
831
|
|
|
630
832
|
# Ordissimo (https://www.ordissimo.fr/)
|
|
631
833
|
- regex: '(?:Ordissimo|webissimo3)(?:/(\d+[\.\d]+))?'
|
|
@@ -636,6 +838,10 @@
|
|
|
636
838
|
- regex: 'CCleaner(?:/(\d+[\.\d]+))?'
|
|
637
839
|
name: 'CCleaner'
|
|
638
840
|
version: '$1'
|
|
841
|
+
engine:
|
|
842
|
+
default: 'WebKit'
|
|
843
|
+
versions:
|
|
844
|
+
28: 'Blink'
|
|
639
845
|
|
|
640
846
|
# Aloha Browser Lite (https://play.google.com/store/apps/details?id=com.alohamobile.browser.lite)
|
|
641
847
|
- regex: 'AlohaLite(?:/(\d+[\.\d]+))?'
|
|
@@ -703,7 +909,7 @@
|
|
|
703
909
|
name: 'Faux Browser'
|
|
704
910
|
version: '$1'
|
|
705
911
|
|
|
706
|
-
# Splash (https://
|
|
912
|
+
# Splash (https://www.zyte.com/splash/)
|
|
707
913
|
- regex: 'splash Version(?:/(\d+[\.\d]+))?'
|
|
708
914
|
name: 'Splash'
|
|
709
915
|
version: '$1'
|
|
@@ -776,6 +982,8 @@
|
|
|
776
982
|
- regex: 'OculusBrowser(?:/(\d+[\.\d]+))?'
|
|
777
983
|
name: 'Oculus Browser'
|
|
778
984
|
version: '$1'
|
|
985
|
+
engine:
|
|
986
|
+
default: 'Blink'
|
|
779
987
|
|
|
780
988
|
# Jio Browser (https://play.google.com/store/apps/details?id=com.jio.web)
|
|
781
989
|
- regex: 'Jio(?:Browser|Pages)(?:/(\d+[\.\d]+))?'
|
|
@@ -874,6 +1082,13 @@
|
|
|
874
1082
|
engine:
|
|
875
1083
|
default: 'Gecko'
|
|
876
1084
|
|
|
1085
|
+
# AOL Shield Pro
|
|
1086
|
+
- regex: 'Chrome/.+ AOLShield(?:/(\d+[\.\d]+))?'
|
|
1087
|
+
name: 'AOL Shield Pro'
|
|
1088
|
+
version: '$1'
|
|
1089
|
+
engine:
|
|
1090
|
+
default: 'Blink'
|
|
1091
|
+
|
|
877
1092
|
# AOL Shield
|
|
878
1093
|
- regex: 'AOLShield(?:/(\d+[\.\d]+))?'
|
|
879
1094
|
name: 'AOL Shield'
|
|
@@ -910,16 +1125,14 @@
|
|
|
910
1125
|
default: 'Blink'
|
|
911
1126
|
|
|
912
1127
|
# 360 Browser
|
|
913
|
-
- regex: 'QIHU 360[ES]E'
|
|
1128
|
+
- regex: 'QIHU 360[ES]E|QihooBrowserHD/(\d+[.\d]+)'
|
|
914
1129
|
name: '360 Browser'
|
|
915
|
-
version: ''
|
|
1130
|
+
version: '$1'
|
|
916
1131
|
|
|
917
|
-
# 360
|
|
918
|
-
- regex: '360 Aphone Browser(?:
|
|
1132
|
+
# 360 Browser
|
|
1133
|
+
- regex: '360 Aphone Browser(?:[ /]?\(?(\d+[.\d]+)(?:beta)?\)?)?'
|
|
919
1134
|
name: '360 Phone Browser'
|
|
920
1135
|
version: '$1'
|
|
921
|
-
engine:
|
|
922
|
-
default: 'WebKit'
|
|
923
1136
|
|
|
924
1137
|
#SailfishBrowser
|
|
925
1138
|
- regex: 'SailfishBrowser(?:/(\d+[\.\d]+))?'
|
|
@@ -962,14 +1175,24 @@
|
|
|
962
1175
|
version: '$1'
|
|
963
1176
|
engine:
|
|
964
1177
|
default: 'Blink'
|
|
965
|
-
- regex: 'AlohaBrowser(?:/(\d+[\.\d]+))?'
|
|
1178
|
+
- regex: 'AlohaBrowser(?:App)?(?:/(\d+[\.\d]+))?'
|
|
966
1179
|
name: 'Aloha Browser'
|
|
967
1180
|
version: '$1'
|
|
1181
|
+
- regex: 'Aloha/'
|
|
1182
|
+
name: 'Aloha Browser'
|
|
1183
|
+
version: ''
|
|
968
1184
|
|
|
969
1185
|
# Avast Secure Browser | Avast SafeZone Browser (https://www.avast.com/)
|
|
1186
|
+
- regex: 'Chrome.+(?:Avast(?:SecureBrowser)?|ASW|Safer)(?:/(\d+[\.\d]+))?'
|
|
1187
|
+
name: 'Avast Secure Browser'
|
|
1188
|
+
version: '$1'
|
|
1189
|
+
engine:
|
|
1190
|
+
default: 'Blink'
|
|
970
1191
|
- regex: '(?:Avast(?:SecureBrowser)?|ASW|Safer)(?:/(\d+[\.\d]+))?'
|
|
971
1192
|
name: 'Avast Secure Browser'
|
|
972
1193
|
version: '$1'
|
|
1194
|
+
engine:
|
|
1195
|
+
default: 'WebKit'
|
|
973
1196
|
|
|
974
1197
|
#Epic
|
|
975
1198
|
- regex: 'Epic(?:/(\d+[\.\d]+))'
|
|
@@ -1016,7 +1239,7 @@
|
|
|
1016
1239
|
version: '$1'
|
|
1017
1240
|
|
|
1018
1241
|
#Amigo
|
|
1019
|
-
- regex: 'Chrome/(\d
|
|
1242
|
+
- regex: 'Chrome/(\d+\.[\.\d]+) .*MRCHROME'
|
|
1020
1243
|
name: 'Amigo'
|
|
1021
1244
|
version: '$1'
|
|
1022
1245
|
engine:
|
|
@@ -1041,10 +1264,14 @@
|
|
|
1041
1264
|
engine:
|
|
1042
1265
|
default: 'Blink'
|
|
1043
1266
|
|
|
1044
|
-
#Iridium
|
|
1267
|
+
#Iridium (https://iridiumbrowser.de/)
|
|
1045
1268
|
- regex: 'Iridium(?:/(\d+[\.\d]+))?'
|
|
1046
1269
|
name: 'Iridium'
|
|
1047
1270
|
version: '$1'
|
|
1271
|
+
engine:
|
|
1272
|
+
default: 'WebKit'
|
|
1273
|
+
versions:
|
|
1274
|
+
'28': 'Blink'
|
|
1048
1275
|
|
|
1049
1276
|
#Iceweasel
|
|
1050
1277
|
- regex: 'Iceweasel(?:/(\d+[\.\d]+))?'
|
|
@@ -1060,7 +1287,6 @@
|
|
|
1060
1287
|
engine:
|
|
1061
1288
|
default: 'WebKit'
|
|
1062
1289
|
|
|
1063
|
-
|
|
1064
1290
|
#Pale Moon
|
|
1065
1291
|
- regex: '.*Goanna.*PaleMoon(?:/(\d+[\.\d]+))?'
|
|
1066
1292
|
name: 'Pale Moon'
|
|
@@ -1176,7 +1402,7 @@
|
|
|
1176
1402
|
default: 'Gecko'
|
|
1177
1403
|
|
|
1178
1404
|
#Swiftfox
|
|
1179
|
-
- regex: 'Firefox/(\d
|
|
1405
|
+
- regex: 'Firefox/(\d+\.[\.\d]+) .*\(Swiftfox\)'
|
|
1180
1406
|
name: 'Swiftfox'
|
|
1181
1407
|
version: '$1'
|
|
1182
1408
|
engine:
|
|
@@ -1205,12 +1431,12 @@
|
|
|
1205
1431
|
version: '$1'
|
|
1206
1432
|
engine:
|
|
1207
1433
|
default: 'Servo'
|
|
1208
|
-
- regex: '(?!.*Opera[ /])Firefox(
|
|
1434
|
+
- regex: '(?!.*Opera[ /])Firefox(?:[ /](\d+[\.\d]+))?'
|
|
1209
1435
|
name: 'Firefox'
|
|
1210
1436
|
version: '$1'
|
|
1211
1437
|
engine:
|
|
1212
1438
|
default: 'Gecko'
|
|
1213
|
-
- regex: '(?:BonEcho|GranParadiso|Lorentz|Minefield|Namoroka|Shiretoko)/(\d+[\.\d]+)'
|
|
1439
|
+
- regex: '(?:BonEcho|GranParadiso|Lorentz|Minefield|Namoroka|Shiretoko)[ /](\d+[\.\d]+)'
|
|
1214
1440
|
name: 'Firefox'
|
|
1215
1441
|
version: '$1'
|
|
1216
1442
|
engine:
|
|
@@ -1297,6 +1523,11 @@
|
|
|
1297
1523
|
- regex: 'UC[ ]?Browser.* \(UCMini\)'
|
|
1298
1524
|
name: 'UC Browser Mini'
|
|
1299
1525
|
version: ''
|
|
1526
|
+
- regex: 'Chrome.+uc mini browser(\d+[\.\d]+)?'
|
|
1527
|
+
name: 'UC Browser Mini'
|
|
1528
|
+
version: '$1'
|
|
1529
|
+
engine:
|
|
1530
|
+
default: 'Blink'
|
|
1300
1531
|
|
|
1301
1532
|
# UC Browser Turbo
|
|
1302
1533
|
- regex: 'UCTurbo(?:[ /]?(\d+[\.\d]+))?'
|
|
@@ -1318,6 +1549,11 @@
|
|
|
1318
1549
|
version: '$1'
|
|
1319
1550
|
engine:
|
|
1320
1551
|
default: 'WebKit'
|
|
1552
|
+
- regex: 'Opera%20GX/.+CFNetwork/.+Darwin/'
|
|
1553
|
+
name: 'Opera GX'
|
|
1554
|
+
version: ''
|
|
1555
|
+
engine:
|
|
1556
|
+
default: 'WebKit'
|
|
1321
1557
|
|
|
1322
1558
|
#Opera
|
|
1323
1559
|
- regex: '(?:Opera Tablet.*Version|Opera/.+Opera Mobi.+Version|Mobile.+OPR)/(\d+[\.\d]+)'
|
|
@@ -1352,7 +1588,7 @@
|
|
|
1352
1588
|
version: '$1'
|
|
1353
1589
|
engine:
|
|
1354
1590
|
default: 'Blink'
|
|
1355
|
-
- regex: 'Opera/(\d
|
|
1591
|
+
- regex: 'Opera/(\d+\.[\.\d]+) .*Opera Mobi'
|
|
1356
1592
|
name: 'Opera Mobile'
|
|
1357
1593
|
version: '$1'
|
|
1358
1594
|
engine:
|
|
@@ -1387,7 +1623,7 @@
|
|
|
1387
1623
|
default: 'Presto'
|
|
1388
1624
|
versions:
|
|
1389
1625
|
15: 'Blink'
|
|
1390
|
-
- regex: '(?:Opera|OPR)[/ ](?:9.80.*Version/)?(\d
|
|
1626
|
+
- regex: '(?:Opera|OPR)[/ ](?:9.80.*Version/)?(\d+\.[\.\d]+) .*Edition Next'
|
|
1391
1627
|
name: 'Opera Next'
|
|
1392
1628
|
version: '$1'
|
|
1393
1629
|
engine:
|
|
@@ -1403,6 +1639,16 @@
|
|
|
1403
1639
|
'3.5': 'Elektra'
|
|
1404
1640
|
'7': 'Presto'
|
|
1405
1641
|
'15': 'Blink'
|
|
1642
|
+
- regex: 'Opera/.+CFNetwork'
|
|
1643
|
+
name: 'Opera'
|
|
1644
|
+
version: ''
|
|
1645
|
+
engine:
|
|
1646
|
+
default: 'WebKit'
|
|
1647
|
+
- regex: 'Chrome.+Opera/'
|
|
1648
|
+
name: 'Opera'
|
|
1649
|
+
version: ''
|
|
1650
|
+
engine:
|
|
1651
|
+
default: 'Blink'
|
|
1406
1652
|
|
|
1407
1653
|
#Rekonq
|
|
1408
1654
|
- regex: 'rekonq(?:/(\d+[\.\d]+))?'
|
|
@@ -1460,7 +1706,17 @@
|
|
|
1460
1706
|
name: 'Baidu Spark'
|
|
1461
1707
|
version: '$1'
|
|
1462
1708
|
|
|
1463
|
-
# Yandex Browser
|
|
1709
|
+
# Yandex Browser
|
|
1710
|
+
- regex: 'YaBrowser(?:/(\d+[\.\d]*)) YaApp_iOS'
|
|
1711
|
+
name: 'Yandex Browser'
|
|
1712
|
+
version: '$1'
|
|
1713
|
+
engine:
|
|
1714
|
+
default: 'WebKit'
|
|
1715
|
+
- regex: 'iP(?:hone|ad);.+YaBrowser(?:/(\d+[\.\d]*)) Mobile'
|
|
1716
|
+
name: 'Yandex Browser'
|
|
1717
|
+
version: '$1'
|
|
1718
|
+
engine:
|
|
1719
|
+
default: 'WebKit'
|
|
1464
1720
|
- regex: 'YaBrowser(?:/(\d+[\.\d]*)) \(lite\)?'
|
|
1465
1721
|
name: 'Yandex Browser Lite'
|
|
1466
1722
|
version: '$1'
|
|
@@ -1493,13 +1749,13 @@
|
|
|
1493
1749
|
engine:
|
|
1494
1750
|
default: 'Blink'
|
|
1495
1751
|
|
|
1496
|
-
#Midori
|
|
1752
|
+
# Midori
|
|
1497
1753
|
- regex: 'Chrome.+Midori Browser/(\d+[\.\d]+)'
|
|
1498
1754
|
name: 'Midori'
|
|
1499
1755
|
version: '$1'
|
|
1500
1756
|
engine:
|
|
1501
1757
|
default: 'Blink'
|
|
1502
|
-
- regex: 'Midori(
|
|
1758
|
+
- regex: 'Midori(?:[ /](\d+[\.\d]+))?'
|
|
1503
1759
|
name: 'Midori'
|
|
1504
1760
|
version: '$1'
|
|
1505
1761
|
engine:
|
|
@@ -1511,14 +1767,19 @@
|
|
|
1511
1767
|
version: '$1'
|
|
1512
1768
|
|
|
1513
1769
|
#Maxthon
|
|
1514
|
-
- regex: 'Chrome.+Maxthon
|
|
1770
|
+
- regex: 'Chrome.+Maxthon/\d{4}'
|
|
1771
|
+
name: 'Maxthon'
|
|
1772
|
+
version: ''
|
|
1773
|
+
engine:
|
|
1774
|
+
default: 'Blink'
|
|
1775
|
+
- regex: 'Chrome.+(?:MxBrowser|Maxthon)(?:.+\(portable\))?/(\d+\.[\.\d]+)'
|
|
1515
1776
|
name: 'Maxthon'
|
|
1516
1777
|
version: '$1'
|
|
1517
1778
|
engine:
|
|
1518
1779
|
default: 'WebKit'
|
|
1519
1780
|
versions:
|
|
1520
|
-
'5
|
|
1521
|
-
- regex: '(?:Maxthon(?:%20Browser)?|MxBrowser(?:-inhouse|-iPhone)?|MXiOS)[ /](\d+[\.\d]+)'
|
|
1781
|
+
'4.5': 'Blink'
|
|
1782
|
+
- regex: '(?:Maxthon(?:%20Browser)?|MxBrowser(?:-inhouse|-iPhone)?|MXiOS)[ /](\d+[\.\d]+)?'
|
|
1522
1783
|
name: 'Maxthon'
|
|
1523
1784
|
version: '$1'
|
|
1524
1785
|
engine:
|
|
@@ -1545,7 +1806,7 @@
|
|
|
1545
1806
|
default: 'Blink'
|
|
1546
1807
|
|
|
1547
1808
|
# Iron
|
|
1548
|
-
- regex: 'Chrome(?:/(\d
|
|
1809
|
+
- regex: 'Chrome(?:/(\d+\.[\.\d]+) )?.*Iron'
|
|
1549
1810
|
name: 'Iron'
|
|
1550
1811
|
version: '$1'
|
|
1551
1812
|
engine:
|
|
@@ -1625,7 +1886,7 @@
|
|
|
1625
1886
|
versions:
|
|
1626
1887
|
28: 'Blink'
|
|
1627
1888
|
|
|
1628
|
-
- regex: 'DuckDuckGo/(\d+[\.\d]*)'
|
|
1889
|
+
- regex: '(?:DDG-Android-|DuckDuckGo/|ddg_android/)(\d+[\.\d]*)'
|
|
1629
1890
|
name: 'DuckDuckGo Privacy Browser'
|
|
1630
1891
|
version: '$1'
|
|
1631
1892
|
engine:
|
|
@@ -1685,6 +1946,11 @@
|
|
|
1685
1946
|
version: '$1'
|
|
1686
1947
|
engine:
|
|
1687
1948
|
default: 'WebKit'
|
|
1949
|
+
- regex: 'Chrome.+UC Browser(\d+[\.\d]+)'
|
|
1950
|
+
name: 'UC Browser'
|
|
1951
|
+
version: '$1'
|
|
1952
|
+
engine:
|
|
1953
|
+
default: 'Blink'
|
|
1688
1954
|
|
|
1689
1955
|
#It should be checked before Chrome since the UA contains the Chrome
|
|
1690
1956
|
|
|
@@ -1705,10 +1971,10 @@
|
|
|
1705
1971
|
name: 'Firefox Rocket'
|
|
1706
1972
|
version: '$1'
|
|
1707
1973
|
engine:
|
|
1708
|
-
default: '
|
|
1974
|
+
default: 'Blink'
|
|
1709
1975
|
|
|
1710
1976
|
# Web Explorer
|
|
1711
|
-
- regex: 'Web Explorer/(\d
|
|
1977
|
+
- regex: 'Web Explorer/(\d+\.[\.\d]+) .*Chrome'
|
|
1712
1978
|
name: 'Web Explorer'
|
|
1713
1979
|
version: '$1'
|
|
1714
1980
|
engine:
|
|
@@ -1720,11 +1986,16 @@
|
|
|
1720
1986
|
default: 'WebKit'
|
|
1721
1987
|
|
|
1722
1988
|
# Seznam Browser
|
|
1723
|
-
- regex: 'SznProhlizec/(\d+[\.\d]+)'
|
|
1989
|
+
- regex: 'Chrome.+SznProhlizec/(\d+[\.\d]+)'
|
|
1724
1990
|
name: 'Seznam Browser'
|
|
1725
1991
|
version: '$1'
|
|
1726
1992
|
engine:
|
|
1727
1993
|
default: 'Blink'
|
|
1994
|
+
- regex: 'SznProhlizec/(\d+[\.\d]+)'
|
|
1995
|
+
name: 'Seznam Browser'
|
|
1996
|
+
version: '$1'
|
|
1997
|
+
engine:
|
|
1998
|
+
default: 'WebKit'
|
|
1728
1999
|
|
|
1729
2000
|
# SogouMobileBrowser
|
|
1730
2001
|
- regex: 'SogouMobileBrowser/(\d+[\.\d]+)'
|
|
@@ -1746,6 +2017,8 @@
|
|
|
1746
2017
|
version: '$1'
|
|
1747
2018
|
engine:
|
|
1748
2019
|
default: '' # multi engine -- WebKit or Blink
|
|
2020
|
+
versions:
|
|
2021
|
+
28: 'Blink'
|
|
1749
2022
|
|
|
1750
2023
|
# CM Browser
|
|
1751
2024
|
- regex: 'ACHEETAHI'
|
|
@@ -1754,6 +2027,18 @@
|
|
|
1754
2027
|
engine:
|
|
1755
2028
|
default: '' # multi engine -- WebKit or Blink
|
|
1756
2029
|
|
|
2030
|
+
# Lenovo Browser
|
|
2031
|
+
- regex: 'Chrome/.+ (?:LeBrowser|MobileLenovoBrowser)(?:/(\d+[\.\d]+))?'
|
|
2032
|
+
name: 'Lenovo Browser'
|
|
2033
|
+
version: '$1'
|
|
2034
|
+
engine:
|
|
2035
|
+
default: 'Blink'
|
|
2036
|
+
- regex: 'LeBrowser(?:/(\d+[\.\d]+))?'
|
|
2037
|
+
name: 'Lenovo Browser'
|
|
2038
|
+
version: '$1'
|
|
2039
|
+
engine:
|
|
2040
|
+
default: 'WebKit'
|
|
2041
|
+
|
|
1757
2042
|
# Kiwi Browser
|
|
1758
2043
|
- regex: 'Kiwi Chrome'
|
|
1759
2044
|
name: 'Kiwi'
|
|
@@ -1768,13 +2053,6 @@
|
|
|
1768
2053
|
engine:
|
|
1769
2054
|
default: '' # multi engine -- WebKit or Blink
|
|
1770
2055
|
|
|
1771
|
-
# QtWebEngine
|
|
1772
|
-
- regex: 'QtWebEngine/(\d+[\.\d]+)'
|
|
1773
|
-
name: 'QtWebEngine'
|
|
1774
|
-
version: '$1'
|
|
1775
|
-
engine:
|
|
1776
|
-
default: '' # multi engine -- WebKit or Blink
|
|
1777
|
-
|
|
1778
2056
|
#Mobile Silk
|
|
1779
2057
|
- regex: 'Silk/(\d+[\.\d]+) like Chrome'
|
|
1780
2058
|
name: 'Mobile Silk'
|
|
@@ -1899,6 +2177,25 @@
|
|
|
1899
2177
|
versions:
|
|
1900
2178
|
28: 'Blink'
|
|
1901
2179
|
|
|
2180
|
+
# Soul Browser (https://play.google.com/store/apps/details?id=com.mycompany.app.soulbrowser)
|
|
2181
|
+
- regex: 'Soul(?:Browser)?$|Soul/'
|
|
2182
|
+
name: 'Soul Browser'
|
|
2183
|
+
version: ''
|
|
2184
|
+
engine:
|
|
2185
|
+
default: 'Blink'
|
|
2186
|
+
|
|
2187
|
+
# LG Browser
|
|
2188
|
+
- regex: 'LG Browser(?:/(\d+[\.\d]+))'
|
|
2189
|
+
name: 'LG Browser'
|
|
2190
|
+
version: '$1'
|
|
2191
|
+
|
|
2192
|
+
# QtWebEngine should be placed after LG Browser
|
|
2193
|
+
- regex: 'QtWebEngine/(\d+[\.\d]+)'
|
|
2194
|
+
name: 'QtWebEngine'
|
|
2195
|
+
version: '$1'
|
|
2196
|
+
engine:
|
|
2197
|
+
default: '' # multi engine -- WebKit or Blink
|
|
2198
|
+
|
|
1902
2199
|
# Chrome Webview
|
|
1903
2200
|
- regex: 'Version/.* Chrome(?:/(\d+[\.\d]+))?'
|
|
1904
2201
|
name: 'Chrome Webview'
|
|
@@ -1953,11 +2250,18 @@
|
|
|
1953
2250
|
versions:
|
|
1954
2251
|
28: 'Blink'
|
|
1955
2252
|
|
|
2253
|
+
# PocketBook Browser
|
|
2254
|
+
- regex: 'PocketBook/'
|
|
2255
|
+
name: 'PocketBook Browser'
|
|
2256
|
+
version: ''
|
|
2257
|
+
engine:
|
|
2258
|
+
default: 'WebKit'
|
|
2259
|
+
|
|
1956
2260
|
#Tizen Browser
|
|
1957
|
-
- regex: '(?:Tizen|SLP) Browser(?:/(\d+[\.\d]+))?'
|
|
2261
|
+
- regex: '(?:Tizen|SLP) ?Browser(?:/(\d+[\.\d]+))?'
|
|
1958
2262
|
name: 'Tizen Browser'
|
|
1959
2263
|
version: '$1'
|
|
1960
|
-
- regex: 'Tizen (?:\d
|
|
2264
|
+
- regex: 'Tizen (?:\d+\.[\.\d]+)[^\.\d].* Version/(\d+[\.\d]+) (?:TV|Mobile|like)'
|
|
1961
2265
|
name: 'Tizen Browser'
|
|
1962
2266
|
version: '$1'
|
|
1963
2267
|
engine:
|
|
@@ -2083,7 +2387,7 @@
|
|
|
2083
2387
|
default: 'WebKit'
|
|
2084
2388
|
|
|
2085
2389
|
#Elinks
|
|
2086
|
-
- regex: 'Elinks(
|
|
2390
|
+
- regex: 'Elinks(?:[ /](\d+[\.\d]+))?'
|
|
2087
2391
|
name: 'Elinks'
|
|
2088
2392
|
version: '$1'
|
|
2089
2393
|
engine:
|
|
@@ -2121,12 +2425,12 @@
|
|
|
2121
2425
|
default: 'Gecko'
|
|
2122
2426
|
|
|
2123
2427
|
# Google Earth Pro (https://www.google.se/intl/en/earth/versions/)
|
|
2124
|
-
- regex: 'Google Earth Pro(?:/(\d+[\.\d]+))?'
|
|
2428
|
+
- regex: '(?:Google Earth Pro|Google%20Earth%20Pro)(?:/(\d+[\.\d]+))?'
|
|
2125
2429
|
name: 'Google Earth Pro'
|
|
2126
2430
|
version: '$1'
|
|
2127
2431
|
engine:
|
|
2128
2432
|
default: 'WebKit'
|
|
2129
|
-
- regex: 'GoogleEarth/(\d
|
|
2433
|
+
- regex: 'GoogleEarth/(\d+\.[\.\d]+)[^\.\d].*client:(?:Plus|Pro)'
|
|
2130
2434
|
name: 'Google Earth Pro'
|
|
2131
2435
|
version: '$1'
|
|
2132
2436
|
engine:
|
|
@@ -2173,7 +2477,7 @@
|
|
|
2173
2477
|
version: '$1'
|
|
2174
2478
|
engine:
|
|
2175
2479
|
default: 'Trident'
|
|
2176
|
-
- regex: 'MSIE (\d
|
|
2480
|
+
- regex: 'MSIE (\d+\.[\.\d]+)[^\.\d].*XBLWP7'
|
|
2177
2481
|
name: 'IE Mobile'
|
|
2178
2482
|
version: '$1'
|
|
2179
2483
|
engine:
|
|
@@ -2228,11 +2532,6 @@
|
|
|
2228
2532
|
engine:
|
|
2229
2533
|
default: 'Text-based'
|
|
2230
2534
|
|
|
2231
|
-
# LG Browser
|
|
2232
|
-
- regex: 'LG Browser(?:/(\d+[\.\d]+))'
|
|
2233
|
-
name: 'LG Browser'
|
|
2234
|
-
version: '$1'
|
|
2235
|
-
|
|
2236
2535
|
# LuaKit
|
|
2237
2536
|
- regex: 'LuaKit(?:/(\d+[\.\d]+))?'
|
|
2238
2537
|
name: 'LuaKit'
|
|
@@ -2339,8 +2638,13 @@
|
|
|
2339
2638
|
name: 'BlackBerry Browser'
|
|
2340
2639
|
version: ''
|
|
2341
2640
|
|
|
2641
|
+
# Browlser (https://play.google.com/store/apps/details?id=com.browlser | https://browlser.io/)
|
|
2642
|
+
- regex: 'Browlser/(\d+[\.\d]+)'
|
|
2643
|
+
name: 'Browlser'
|
|
2644
|
+
version: '$1'
|
|
2645
|
+
|
|
2342
2646
|
#Android Browser
|
|
2343
|
-
- regex: 'Android'
|
|
2647
|
+
- regex: '(?<! like )Android'
|
|
2344
2648
|
name: 'Android Browser'
|
|
2345
2649
|
version: ''
|
|
2346
2650
|
engine:
|
|
@@ -2363,13 +2667,20 @@
|
|
|
2363
2667
|
engine:
|
|
2364
2668
|
default: 'WebKit'
|
|
2365
2669
|
|
|
2670
|
+
# Safari Technology Preview (https://developer.apple.com/safari/technology-preview/)
|
|
2671
|
+
- regex: 'Safari%20Technology%20Preview/(\d+[\.\d]+)'
|
|
2672
|
+
name: 'Safari Technology Preview'
|
|
2673
|
+
version: '$1'
|
|
2674
|
+
engine:
|
|
2675
|
+
default: 'WebKit'
|
|
2676
|
+
|
|
2366
2677
|
#Safari
|
|
2367
2678
|
- regex: '(?:(?:iPod|iPad|iPhone).+Version|MobileSafari)/(\d+[\.\d]+)'
|
|
2368
2679
|
name: 'Mobile Safari'
|
|
2369
2680
|
version: '$1'
|
|
2370
2681
|
engine:
|
|
2371
2682
|
default: 'WebKit'
|
|
2372
|
-
- regex: '(?:Version/(\d
|
|
2683
|
+
- regex: '(?:Version/(\d+\.[\.\d]+) .*)?Mobile.*Safari/'
|
|
2373
2684
|
name: 'Mobile Safari'
|
|
2374
2685
|
version: '$1'
|
|
2375
2686
|
engine:
|
|
@@ -2379,14 +2690,14 @@
|
|
|
2379
2690
|
version: ''
|
|
2380
2691
|
engine:
|
|
2381
2692
|
default: 'WebKit'
|
|
2382
|
-
- regex: 'Version/(\d
|
|
2693
|
+
- regex: 'Version/(\d+\.[\.\d]+) .*Safari/|(?:Safari|Safari(?:%20)?%E6%B5%8F%E8%A7%88%E5%99%A8)/?\d+'
|
|
2383
2694
|
name: 'Safari'
|
|
2384
2695
|
version: '$1'
|
|
2385
2696
|
engine:
|
|
2386
2697
|
default: 'WebKit'
|
|
2387
2698
|
|
|
2388
2699
|
# Dorado
|
|
2389
|
-
- regex: 'Dorado WAP-Browser(?:[/ ](\d+[\.\d]+))?'
|
|
2700
|
+
- regex: '(?:\w{1,5}[_ ])?Dorado WAP-Browser(?:[/ ](\d+[\.\d]+))?'
|
|
2390
2701
|
name: 'Dorado'
|
|
2391
2702
|
version: '$1'
|
|
2392
2703
|
|