device_detector 1.0.7 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|