device_detector 0.9.1 → 1.0.4
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 +5 -5
- data/.rubocop.yml +49 -0
- data/.ruby-version +1 -0
- data/.travis.yml +5 -9
- data/CHANGELOG.md +16 -3
- data/README.md +7 -9
- data/Rakefile +19 -13
- data/device_detector.gemspec +1 -0
- data/lib/device_detector.rb +32 -28
- data/lib/device_detector/bot.rb +2 -2
- data/lib/device_detector/client.rb +3 -2
- data/lib/device_detector/device.rb +44 -21
- data/lib/device_detector/memory_cache.rb +26 -19
- data/lib/device_detector/metadata_extractor.rb +7 -8
- data/lib/device_detector/model_extractor.rb +3 -3
- data/lib/device_detector/name_extractor.rb +2 -2
- data/lib/device_detector/os.rb +121 -111
- data/lib/device_detector/parser.rb +22 -9
- data/lib/device_detector/version.rb +3 -1
- data/lib/device_detector/version_extractor.rb +2 -3
- data/regexes/bots.yml +840 -20
- data/regexes/client/browser_engine.yml +11 -2
- data/regexes/client/browsers.yml +909 -108
- data/regexes/client/feed_readers.yml +38 -2
- data/regexes/client/libraries.yml +76 -2
- data/regexes/client/mediaplayers.yml +25 -5
- data/regexes/client/mobile_apps.yml +167 -2
- data/regexes/client/pim.yml +10 -1
- data/regexes/device/cameras.yml +1 -1
- data/regexes/device/car_browsers.yml +7 -3
- data/regexes/device/consoles.yml +3 -3
- data/regexes/device/mobiles.yml +10123 -465
- data/regexes/device/portable_media_player.yml +4 -6
- data/regexes/device/televisions.yml +18 -4
- data/regexes/oss.yml +115 -21
- data/regexes/vendorfragments.yml +6 -2
- data/spec/device_detector/concrete_user_agent_spec.rb +16 -17
- data/spec/device_detector/detector_fixtures_spec.rb +51 -11
- data/spec/device_detector/device_spec.rb +28 -48
- data/spec/device_detector/memory_cache_spec.rb +60 -28
- data/spec/device_detector/model_extractor_spec.rb +3 -3
- data/spec/device_detector/version_extractor_spec.rb +5 -6
- data/spec/device_detector_spec.rb +60 -69
- data/spec/fixtures/client/browser.yml +1785 -262
- data/spec/fixtures/client/feed_reader.yml +47 -35
- data/spec/fixtures/client/library.yml +112 -3
- data/spec/fixtures/client/mediaplayer.yml +32 -37
- data/spec/fixtures/client/mobile_app.yml +193 -6
- data/spec/fixtures/client/pim.yml +37 -18
- data/spec/fixtures/detector/bots.yml +1426 -118
- data/spec/fixtures/detector/camera.yml +36 -10
- data/spec/fixtures/detector/car_browser.yml +64 -3
- data/spec/fixtures/detector/console.yml +80 -26
- data/spec/fixtures/detector/desktop.yml +2222 -1589
- data/spec/fixtures/detector/feature_phone.yml +151 -42
- data/spec/fixtures/detector/feed_reader.yml +186 -121
- data/spec/fixtures/detector/mediaplayer.yml +113 -39
- data/spec/fixtures/detector/mobile_apps.yml +366 -21
- data/spec/fixtures/detector/phablet.yml +2597 -570
- data/spec/fixtures/detector/portable_media_player.yml +41 -16
- data/spec/fixtures/detector/smart_display.yml +8 -5
- data/spec/fixtures/detector/smart_speaker.yml +55 -0
- data/spec/fixtures/detector/smartphone-1.yml +5468 -5010
- data/spec/fixtures/detector/smartphone-10.yml +9977 -0
- data/spec/fixtures/detector/smartphone-11.yml +9891 -0
- data/spec/fixtures/detector/smartphone-12.yml +9906 -0
- data/spec/fixtures/detector/smartphone-13.yml +9920 -0
- data/spec/fixtures/detector/smartphone-14.yml +2662 -0
- data/spec/fixtures/detector/smartphone-2.yml +5213 -4635
- data/spec/fixtures/detector/smartphone-3.yml +5082 -4533
- data/spec/fixtures/detector/smartphone-4.yml +6806 -2625
- data/spec/fixtures/detector/smartphone-5.yml +9914 -0
- data/spec/fixtures/detector/smartphone-6.yml +9962 -0
- data/spec/fixtures/detector/smartphone-7.yml +9899 -0
- data/spec/fixtures/detector/smartphone-8.yml +9931 -0
- data/spec/fixtures/detector/smartphone-9.yml +9899 -0
- data/spec/fixtures/detector/smartphone.yml +5225 -4652
- data/spec/fixtures/detector/tablet-1.yml +4691 -4191
- data/spec/fixtures/detector/tablet-2.yml +9800 -71
- data/spec/fixtures/detector/tablet-3.yml +9959 -0
- data/spec/fixtures/detector/tablet-4.yml +4528 -0
- data/spec/fixtures/detector/tablet.yml +4664 -4177
- data/spec/fixtures/detector/tv.yml +3399 -1048
- data/spec/fixtures/detector/unknown.yml +1017 -977
- data/spec/fixtures/detector/wearable.yml +61 -0
- data/spec/fixtures/device/camera.yml +4 -3
- data/spec/fixtures/device/car_browser.yml +9 -2
- data/spec/fixtures/device/console.yml +15 -14
- data/spec/fixtures/parser/oss.yml +284 -2
- data/spec/fixtures/parser/vendorfragments.yml +8 -2
- metadata +50 -7
@@ -1,7 +1,7 @@
|
|
1
1
|
###############
|
2
2
|
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
3
|
#
|
4
|
-
# @link
|
4
|
+
# @link https://matomo.org
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
###############
|
7
7
|
|
@@ -27,4 +27,13 @@
|
|
27
27
|
name: 'Gecko'
|
28
28
|
|
29
29
|
- regex: 'KHTML'
|
30
|
-
name: 'KHTML'
|
30
|
+
name: 'KHTML'
|
31
|
+
|
32
|
+
- regex: 'NetSurf'
|
33
|
+
name: 'NetSurf'
|
34
|
+
|
35
|
+
- regex: 'Servo'
|
36
|
+
name: 'Servo'
|
37
|
+
|
38
|
+
- regex: 'Goanna'
|
39
|
+
name: 'Goanna'
|
data/regexes/client/browsers.yml
CHANGED
@@ -1,17 +1,357 @@
|
|
1
1
|
###############
|
2
2
|
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
3
|
#
|
4
|
-
# @link
|
4
|
+
# @link https://matomo.org
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
###############
|
7
7
|
|
8
|
-
#
|
8
|
+
# Safe Exam Browser (https://safeexambrowser.org/)
|
9
|
+
- regex: 'SEB/(?:(\d+[\.\d]+))?'
|
10
|
+
name: 'Safe Exam Browser'
|
11
|
+
version: '$1'
|
12
|
+
|
13
|
+
# Colibri (https://colibri.opqr.co/)
|
14
|
+
- regex: 'Colibri/(?:(\d+[\.\d]+))?'
|
15
|
+
name: 'Colibri'
|
16
|
+
version: '$1'
|
17
|
+
|
18
|
+
# Xvast (https://www.xvast.com/)
|
19
|
+
- regex: 'Xvast/(?:(\d+[\.\d]+))?'
|
20
|
+
name: 'Xvast'
|
21
|
+
version: '$1'
|
22
|
+
|
23
|
+
# Tungsten (https://en.tungsten-start.net/)
|
24
|
+
- regex: 'TungstenBrowser/(?:(\d+[\.\d]+))?'
|
25
|
+
name: 'Tungsten'
|
26
|
+
version: '$1'
|
27
|
+
|
28
|
+
# Lulumi (https://github.com/LulumiProject/lulumi-browser)
|
29
|
+
- regex: 'Lulumi-browser/(?:(\d+[\.\d]+))?'
|
30
|
+
name: 'Lulumi'
|
31
|
+
version: '$1'
|
32
|
+
|
33
|
+
# Yahoo! Japan Browser (https://promo-ybrowser.yahoo.co.jp/)
|
34
|
+
- regex: 'ybrowser/(?:(\d+[\.\d]+))?'
|
35
|
+
name: 'Yahoo! Japan Browser'
|
36
|
+
version: '$1'
|
37
|
+
|
38
|
+
# Lunascape Lite (https://www.lunascape.tv/)
|
39
|
+
- regex: 'iLunascapeLite/(?:(\d+[\.\d]+))?'
|
40
|
+
name: 'Lunascape Lite'
|
41
|
+
version: '$1'
|
42
|
+
|
43
|
+
# Polypane (https://polypane.app/)
|
44
|
+
- regex: 'Polypane/(?:(\d+[\.\d]+))?'
|
45
|
+
name: 'Polypane'
|
46
|
+
version: '$1'
|
47
|
+
|
48
|
+
# OhHai Browser (https://ohhaibrowser.com/)
|
49
|
+
- regex: 'OhHaiBrowser/(?:(\d+[\.\d]+))?'
|
50
|
+
name: 'OhHai Browser'
|
51
|
+
version: '$1'
|
52
|
+
|
53
|
+
# Sizzy (https://sizzy.co/)
|
54
|
+
- regex: 'Sizzy/(?:(\d+[\.\d]+))?'
|
55
|
+
name: 'Sizzy'
|
56
|
+
version: '$1'
|
57
|
+
|
58
|
+
# Glass Browser (https://github.com/mitchas/glass-browser)
|
59
|
+
- regex: 'GlassBrowser/(?:(\d+[\.\d]+))?'
|
60
|
+
name: 'Glass Browser'
|
61
|
+
version: '$1'
|
62
|
+
|
63
|
+
# ToGate (https://tmaxanc.com/#!/product-introduce/ToGate)
|
64
|
+
- regex: 'ToGate/(?:(\d+[\.\d]+))?'
|
65
|
+
name: 'ToGate'
|
66
|
+
version: '$1'
|
67
|
+
|
68
|
+
# VMware AirWatch (https://www.air-watch.com/)
|
69
|
+
- regex: 'AirWatch Browser v(?:(\d+[\.\d]+))?'
|
70
|
+
name: 'VMware AirWatch'
|
71
|
+
version: '$1'
|
72
|
+
|
73
|
+
# AOL Desktop (https://beta.aol.com/projects/desktop/windows)
|
74
|
+
- regex: 'ADG/(?:(\d+[\.\d]+))?'
|
75
|
+
name: 'AOL Desktop'
|
76
|
+
version: '$1'
|
77
|
+
|
78
|
+
# Elements Browser (https://elementsbrowser.com/)
|
79
|
+
- regex: 'Elements Browser/(?:(\d+[\.\d]+))?'
|
80
|
+
name: 'Elements Browser'
|
81
|
+
version: '$1'
|
82
|
+
|
83
|
+
# Light (https://sourceforge.net/projects/lightfirefox/)
|
84
|
+
- regex: 'Light/(\d+[\.\d]+)'
|
85
|
+
name: 'Light'
|
86
|
+
version: '$1'
|
87
|
+
|
88
|
+
# Steam (https://www.valvesoftware.com/)
|
89
|
+
- regex: 'Valve Steam GameOverlay/(?:(\d+[\.\d]+))?'
|
90
|
+
name: 'Steam In-Game Overlay'
|
91
|
+
version: '$1'
|
92
|
+
|
93
|
+
# 115 Browser (https://pc.115.com/)
|
94
|
+
- regex: '115Browser/(?:(\d+[\.\d]+))?'
|
95
|
+
name: '115 Browser'
|
96
|
+
version: '$1'
|
97
|
+
|
98
|
+
# Atom (https://browser.ru/)
|
99
|
+
- regex: 'Atom/(?:(\d+[\.\d]+))?'
|
100
|
+
name: 'Atom'
|
101
|
+
version: '$1'
|
102
|
+
|
103
|
+
# Firefox Reality (https://mixedreality.mozilla.org/firefox-reality/)
|
104
|
+
- regex: 'Mobile VR.+Firefox'
|
105
|
+
name: 'Firefox Reality'
|
106
|
+
version: ''
|
107
|
+
|
108
|
+
# AVG Secure Browser (https://www.avg.com/en-us/secure-browser)
|
109
|
+
- regex: 'AVG(?:/(\d+[\.\d]+))?'
|
110
|
+
name: 'AVG Secure Browser'
|
111
|
+
version: '$1'
|
112
|
+
|
113
|
+
# START Internet Browser (https://play.google.com/store/apps/details?id=fyi.start.web.browser)
|
114
|
+
- regex: 'Start/(?:(\d+[\.\d]+))?'
|
115
|
+
name: 'START Internet Browser'
|
116
|
+
version: '$1'
|
117
|
+
|
118
|
+
# Lovense Browser (https://www.lovense.com/cam-model/download)
|
119
|
+
- regex: 'Lovense(?:/(\d+[\.\d]+))?'
|
120
|
+
name: 'Lovense Browser'
|
121
|
+
version: '$1'
|
122
|
+
|
123
|
+
# Delta Browser (https://play.google.com/store/apps/details?id=com.airfind.deltabrowser)
|
124
|
+
- regex: 'com.airfind.deltabrowser(?:/(\d+[\.\d]+))?'
|
125
|
+
name: 'Delta Browser'
|
126
|
+
version: '$1'
|
127
|
+
|
128
|
+
# Ordissimo (https://www.ordissimo.fr/)
|
129
|
+
- regex: '(?:Ordissimo|webissimo3)(?:/(\d+[\.\d]+))?'
|
130
|
+
name: 'Ordissimo'
|
131
|
+
version: '$1'
|
132
|
+
|
133
|
+
# CCleaner (https://www.ccleaner.com/ccleaner/browser)
|
134
|
+
- regex: 'CCleaner(?:/(\d+[\.\d]+))?'
|
135
|
+
name: 'CCleaner'
|
136
|
+
version: '$1'
|
137
|
+
|
138
|
+
# Aloha Browser Lite (https://play.google.com/store/apps/details?id=com.alohamobile.browser.lite)
|
139
|
+
- regex: 'AlohaLite(?:/(\d+[\.\d]+))?'
|
140
|
+
name: 'Aloha Browser Lite'
|
141
|
+
version: '$1'
|
142
|
+
|
143
|
+
# Tao Browser (https://browser.taobao.com/)
|
144
|
+
- regex: 'TaoBrowser(?:/(\d+[\.\d]+))?'
|
145
|
+
name: 'Tao Browser'
|
146
|
+
version: '$1'
|
147
|
+
|
148
|
+
# Falkon (https://www.falkon.org/)
|
149
|
+
- regex: 'Falkon(?:/(\d+[\.\d]+))?'
|
150
|
+
name: 'Falkon'
|
151
|
+
version: '$1'
|
152
|
+
|
153
|
+
# mCent (http://mcentbrowser.com/)
|
154
|
+
- regex: 'mCent(?:/(\d+[\.\d]+))?'
|
155
|
+
name: 'mCent'
|
156
|
+
version: '$1'
|
157
|
+
|
158
|
+
# SalamWeb (https://salamweb.com/)
|
159
|
+
- regex: 'SalamWeb(?:/(\d+[\.\d]+))?'
|
160
|
+
name: 'SalamWeb'
|
161
|
+
version: '$1'
|
162
|
+
|
163
|
+
# BlackHawk (http://www.netgate.sk/blackhawk/)
|
164
|
+
- regex: 'BlackHawk(?:/(\d+[\.\d]+))?'
|
165
|
+
name: 'BlackHawk'
|
166
|
+
version: '$1'
|
167
|
+
|
168
|
+
# Minimo (https://www-archive.mozilla.org/projects/minimo/)
|
169
|
+
- regex: 'Minimo(?:/(\d+[\.\d]+))?'
|
170
|
+
name: 'Minimo'
|
171
|
+
version: '$1'
|
172
|
+
|
173
|
+
# Wear Internet Browser (https://play.google.com/store/apps/details?id=com.appfour.wearbrowser)
|
174
|
+
- regex: 'WIB(?:/(\d+[\.\d]+))?'
|
175
|
+
name: 'Wear Internet Browser'
|
176
|
+
version: '$1'
|
177
|
+
|
178
|
+
# Origyn Web Browser (https://en.wikipedia.org/wiki/Origyn_Web_Browser)
|
179
|
+
- regex: 'Origyn Web Browser'
|
180
|
+
name: 'Origyn Web Browser'
|
181
|
+
version: ''
|
182
|
+
|
183
|
+
# Kinza (https://www.kinza.jp/en/)
|
184
|
+
- regex: 'Kinza(?:/(\d+[\.\d]+))?'
|
185
|
+
name: 'Kinza'
|
186
|
+
version: '$1'
|
187
|
+
|
188
|
+
# Beamrise (https://web.archive.org/web/20170520043839/http://beamrise.com/)
|
189
|
+
- regex: 'Beamrise(?:/(\d+[\.\d]+))?'
|
190
|
+
name: 'Beamrise'
|
191
|
+
version: '$1'
|
192
|
+
|
193
|
+
# Faux Browser (https://apps.apple.com/us/app/faux-browser/id472250940)
|
194
|
+
- regex: 'Faux(?:/(\d+[\.\d]+))?'
|
195
|
+
name: 'Faux Browser'
|
196
|
+
version: '$1'
|
197
|
+
|
198
|
+
# Splash (https://scrapinghub.com/splash)
|
199
|
+
- regex: 'splash Version(?:/(\d+[\.\d]+))?'
|
200
|
+
name: 'Splash'
|
201
|
+
version: '$1'
|
202
|
+
|
203
|
+
# Meizu Browser (https://www.meizu.com/)
|
204
|
+
- regex: 'MZBrowser(?:/(\d+[\.\d]+))?'
|
205
|
+
name: 'Meizu Browser'
|
206
|
+
version: '$1'
|
207
|
+
|
208
|
+
# COS Browser (https://sj.qq.com/myapp/detail.htm?apkName=com.qcloud.cos.client)
|
209
|
+
- regex: 'COSBrowser(?:/(\d+[\.\d]+))?'
|
210
|
+
name: 'COS Browser'
|
211
|
+
version: '$1'
|
212
|
+
|
213
|
+
# Crusta (https://github.com/Crusta/CrustaBrowser)
|
214
|
+
- regex: 'Crusta(?:/(\d+[\.\d]+))?'
|
215
|
+
name: 'Crusta'
|
216
|
+
version: '$1'
|
217
|
+
|
218
|
+
# Hawk Turbo Browser
|
219
|
+
- regex: 'Hawk/TurboBrowser(?:/v?(\d+[\.\d]+))?'
|
220
|
+
name: 'Hawk Turbo Browser'
|
221
|
+
version: '$1'
|
222
|
+
engine:
|
223
|
+
default: 'Blink'
|
224
|
+
|
225
|
+
# FreeU (https://freeu.online/)
|
226
|
+
- regex: 'FreeU(?:/(\d+[\.\d]+))?'
|
227
|
+
name: 'FreeU'
|
228
|
+
version: '$1'
|
229
|
+
engine:
|
230
|
+
default: 'Blink'
|
231
|
+
|
232
|
+
# Nox Browser (https://play.google.com/store/apps/details?id=com.noxgroup.app.browser)
|
233
|
+
- regex: 'NoxBrowser(?:/(\d+[\.\d]+))?'
|
234
|
+
name: 'Nox Browser'
|
235
|
+
version: '$1'
|
236
|
+
engine:
|
237
|
+
default: 'Blink'
|
238
|
+
|
239
|
+
# Basilisk (https://www.basilisk-browser.org/)
|
240
|
+
- regex: 'Basilisk(?:/(\d+[\.\d]+))?'
|
241
|
+
name: 'Basilisk'
|
242
|
+
version: '$1'
|
243
|
+
engine:
|
244
|
+
default: 'Goanna'
|
245
|
+
|
246
|
+
# Sputnik Browser (https://play.google.com/store/apps/details?id=ru.sputnik.browser)
|
247
|
+
- regex: 'SputnikBrowser(?:/(\d+[\.\d]+))?'
|
248
|
+
name: 'Sputnik Browser'
|
249
|
+
version: '$1'
|
250
|
+
engine:
|
251
|
+
default: 'Blink'
|
252
|
+
|
253
|
+
# K.Browser (https://play.google.com/store/apps/details?id=com.tnsua.browser)
|
254
|
+
- regex: 'TNSBrowser(?:/(\d+[\.\d]+))?'
|
255
|
+
name: 'K.Browser'
|
256
|
+
version: '$1'
|
257
|
+
engine:
|
258
|
+
default: 'Blink'
|
259
|
+
|
260
|
+
# Oculus Browser (https://developer.oculus.com/documentation/oculus-browser/latest/concepts/)
|
261
|
+
- regex: 'OculusBrowser(?:/(\d+[\.\d]+))?'
|
262
|
+
name: 'Oculus Browser'
|
263
|
+
version: '$1'
|
264
|
+
|
265
|
+
# Jio Browser (https://play.google.com/store/apps/details?id=com.jio.web)
|
266
|
+
- regex: 'JioBrowser(?:/(\d+[\.\d]+))?'
|
267
|
+
name: 'Jio Browser'
|
268
|
+
version: '$1'
|
269
|
+
engine:
|
270
|
+
default: 'Blink'
|
271
|
+
|
272
|
+
# hola! Browser (https://hola.org/browser)
|
273
|
+
- regex: 'Hola(?:/(\d+[\.\d]+))?'
|
274
|
+
name: 'hola! Browser'
|
275
|
+
version: '$1'
|
276
|
+
engine:
|
277
|
+
default: 'Blink'
|
278
|
+
|
279
|
+
# Huawei Browser
|
280
|
+
- regex: 'HuaweiBrowser(?:/(\d+[\.\d]+))?'
|
281
|
+
name: 'Huawei Browser'
|
282
|
+
version: '$1'
|
283
|
+
|
284
|
+
# vivo Browser
|
285
|
+
- regex: 'VivoBrowser(?:/(\d+[\.\d]+))?'
|
286
|
+
name: 'vivo Browser'
|
287
|
+
version: '$1'
|
288
|
+
|
289
|
+
# Realme Browser
|
290
|
+
- regex: 'RealmeBrowser(?:/(\d+[\.\d]+))?'
|
291
|
+
name: 'Realme Browser'
|
292
|
+
version: '$1'
|
293
|
+
|
294
|
+
# Beaker distributed web browser (https://beakerbrowser.com/)
|
295
|
+
- regex: 'Beaker ?Browser(?:[/ ](\d+[\.\d]+))?'
|
296
|
+
name: 'Beaker Browser'
|
297
|
+
version: '$1'
|
298
|
+
engine:
|
299
|
+
default: 'Blink'
|
300
|
+
|
301
|
+
# Qwant Mobile
|
302
|
+
- regex: 'QwantMobile(?:/(\d+[\.\d]+))?'
|
303
|
+
name: 'Qwant Mobile'
|
304
|
+
version: '$1'
|
305
|
+
engine:
|
306
|
+
default: 'Gecko'
|
307
|
+
- regex: 'Qwant/(\d+[\.\d]+)'
|
308
|
+
name: 'Qwant Mobile'
|
309
|
+
version: '$1'
|
310
|
+
engine:
|
311
|
+
default: 'Gecko'
|
312
|
+
|
313
|
+
# TenFourFox
|
314
|
+
- regex: 'TenFourFox(?:/(\d+[\.\d]+))?'
|
315
|
+
name: 'TenFourFox'
|
316
|
+
version: '$1'
|
317
|
+
engine:
|
318
|
+
default: 'Gecko'
|
319
|
+
|
320
|
+
# AOL Shield
|
321
|
+
- regex: 'AOLShield(?:/(\d+[\.\d]+))?'
|
322
|
+
name: 'AOL Shield'
|
323
|
+
version: '$1'
|
324
|
+
engine:
|
325
|
+
default: 'Gecko'
|
326
|
+
|
327
|
+
# Microsoft Edge (Spartan Edge)
|
9
328
|
- regex: 'Edge[ /](\d+[\.\d]+)'
|
10
329
|
name: 'Microsoft Edge'
|
11
330
|
version: '$1'
|
12
331
|
engine:
|
13
332
|
default: 'Edge'
|
14
333
|
|
334
|
+
# Microsoft Edge for iOS
|
335
|
+
- regex: 'EdgiOS[ /](\d+[\.\d]+)'
|
336
|
+
name: 'Microsoft Edge'
|
337
|
+
version: '$1'
|
338
|
+
engine:
|
339
|
+
default: 'WebKit'
|
340
|
+
|
341
|
+
# Microsoft Edge for Android
|
342
|
+
- regex: 'EdgA[ /](\d+[\.\d]+)'
|
343
|
+
name: 'Microsoft Edge'
|
344
|
+
version: '$1'
|
345
|
+
engine:
|
346
|
+
default: 'Blink'
|
347
|
+
|
348
|
+
# Microsoft Edge (Anaheim Edge)
|
349
|
+
- regex: 'Edg[ /](\d+[\.\d]+)'
|
350
|
+
name: 'Microsoft Edge'
|
351
|
+
version: '$1'
|
352
|
+
engine:
|
353
|
+
default: 'Blink'
|
354
|
+
|
15
355
|
# 360 Browser
|
16
356
|
- regex: 'QIHU 360[ES]E'
|
17
357
|
name: '360 Browser'
|
@@ -31,10 +371,17 @@
|
|
31
371
|
engine:
|
32
372
|
default: 'Gecko'
|
33
373
|
|
34
|
-
#
|
35
|
-
- regex: '(
|
36
|
-
name: '
|
37
|
-
version: '$
|
374
|
+
# IceCat
|
375
|
+
- regex: 'IceCat(?:/(\d+[\.\d]+))?'
|
376
|
+
name: 'IceCat'
|
377
|
+
version: '$1'
|
378
|
+
engine:
|
379
|
+
default: 'Gecko'
|
380
|
+
|
381
|
+
# Mobicip
|
382
|
+
- regex: 'Mobicip'
|
383
|
+
name: 'Mobicip'
|
384
|
+
version: ''
|
38
385
|
engine:
|
39
386
|
default: 'Gecko'
|
40
387
|
|
@@ -45,6 +392,30 @@
|
|
45
392
|
engine:
|
46
393
|
default: 'Gecko'
|
47
394
|
|
395
|
+
# Waterfox
|
396
|
+
- regex: 'Waterfox(?:/(\d+[\.\d]+))?'
|
397
|
+
name: 'Waterfox'
|
398
|
+
version: '$1'
|
399
|
+
engine:
|
400
|
+
default: 'Gecko'
|
401
|
+
|
402
|
+
#AlohaBrowser
|
403
|
+
- regex: 'AlohaBrowser(?:/(\d+[\.\d]+))?'
|
404
|
+
name: 'Aloha Browser'
|
405
|
+
version: '$1'
|
406
|
+
|
407
|
+
# Avast Secure Browser | Avast SafeZone Browser (https://www.avast.com/)
|
408
|
+
- regex: '(?:Avast|ASW|Safer)(?:/(\d+[\.\d]+))?'
|
409
|
+
name: 'Avast Secure Browser'
|
410
|
+
version: '$1'
|
411
|
+
|
412
|
+
#Epic
|
413
|
+
- regex: 'Epic(?:/(\d+[\.\d]+))'
|
414
|
+
name: 'Epic'
|
415
|
+
version: '$1'
|
416
|
+
engine:
|
417
|
+
default: 'Gecko'
|
418
|
+
|
48
419
|
#Fennec (Firefox for mobile)
|
49
420
|
- regex: 'Fennec(?:/(\d+[\.\d]+))?'
|
50
421
|
name: 'Fennec'
|
@@ -77,6 +448,11 @@
|
|
77
448
|
engine:
|
78
449
|
default: '' # multiple
|
79
450
|
|
451
|
+
#Oppo Browser
|
452
|
+
- regex: 'OppoBrowser(?:/(\d+[\.\d]+))?'
|
453
|
+
name: 'Oppo Browser'
|
454
|
+
version: '$1'
|
455
|
+
|
80
456
|
#Amigo
|
81
457
|
- regex: 'Chrome/(\d+[\.\d]+).*MRCHROME'
|
82
458
|
name: 'Amigo'
|
@@ -103,6 +479,11 @@
|
|
103
479
|
engine:
|
104
480
|
default: 'Blink'
|
105
481
|
|
482
|
+
#Iridium
|
483
|
+
- regex: 'Iridium(?:/(\d+[\.\d]+))?'
|
484
|
+
name: 'Iridium'
|
485
|
+
version: '$1'
|
486
|
+
|
106
487
|
#Iceweasel
|
107
488
|
- regex: 'Iceweasel(?:/(\d+[\.\d]+))?'
|
108
489
|
name: 'Iceweasel'
|
@@ -119,6 +500,11 @@
|
|
119
500
|
|
120
501
|
|
121
502
|
#Pale Moon
|
503
|
+
- regex: '.*Goanna.*PaleMoon(?:/(\d+[\.\d]+))?'
|
504
|
+
name: 'Pale Moon'
|
505
|
+
version: '$1'
|
506
|
+
engine:
|
507
|
+
default: 'Goanna'
|
122
508
|
- regex: 'PaleMoon(?:/(\d+[\.\d]+))?'
|
123
509
|
name: 'Pale Moon'
|
124
510
|
version: '$1'
|
@@ -148,6 +534,11 @@
|
|
148
534
|
versions:
|
149
535
|
3: 'WebKit'
|
150
536
|
|
537
|
+
# Jig Browser Plus (https://jig.jp/)
|
538
|
+
- regex: 'JigBrowserPlus/(?:(\d+[\.\d]+))?'
|
539
|
+
name: 'Jig Browser Plus'
|
540
|
+
version: '$1'
|
541
|
+
|
151
542
|
#Jig Browser
|
152
543
|
- regex: 'jig browser(?: web;|9i?)?(?:[/ ](\d+[\.\d]+))?'
|
153
544
|
name: 'Jig Browser'
|
@@ -167,6 +558,61 @@
|
|
167
558
|
engine:
|
168
559
|
default: 'Gecko'
|
169
560
|
|
561
|
+
# Origin (https://www.origin.com/)
|
562
|
+
- regex: 'Origin/(?:(\d+[\.\d]+))?'
|
563
|
+
name: 'Origin In-Game Overlay'
|
564
|
+
version: '$1'
|
565
|
+
|
566
|
+
#Cunaguaro
|
567
|
+
- regex: 'Cunaguaro(?:/(\d+[\.\d]+))?'
|
568
|
+
name: 'Cunaguaro'
|
569
|
+
version: '$1'
|
570
|
+
|
571
|
+
# t-online.de Browser (https://www.t-online.de/computer/browser/)
|
572
|
+
- regex: 'TO-Browser(?:/TOB(\d+[\.\d]+))?'
|
573
|
+
name: 't-online.de Browser'
|
574
|
+
version: '$1'
|
575
|
+
|
576
|
+
#Kazehakase
|
577
|
+
- regex: 'Kazehakase(?:/(\d+[\.\d]+))?'
|
578
|
+
name: 'Kazehakase'
|
579
|
+
version: '$1'
|
580
|
+
engine:
|
581
|
+
default: '' # multi engine
|
582
|
+
|
583
|
+
# ArcticFox (https://github.com/wicknix/Arctic-Fox)
|
584
|
+
- regex: 'ArcticFox(?:/(\d+[\.\d]+))?'
|
585
|
+
name: 'Arctic Fox'
|
586
|
+
version: '$1'
|
587
|
+
engine:
|
588
|
+
default: 'Goanna'
|
589
|
+
|
590
|
+
# Mypal (https://github.com/Feodor2/Mypal)
|
591
|
+
- regex: 'Mypal(?:/(\d+[\.\d]+))?'
|
592
|
+
name: 'Mypal'
|
593
|
+
version: '$1'
|
594
|
+
engine:
|
595
|
+
default: 'Goanna'
|
596
|
+
|
597
|
+
# Centaury (https://github.com/Feodor2/Centaury)
|
598
|
+
- regex: 'Centaury(?:/(\d+[\.\d]+))?'
|
599
|
+
name: 'Centaury'
|
600
|
+
version: '$1'
|
601
|
+
engine:
|
602
|
+
default: 'Goanna'
|
603
|
+
|
604
|
+
#Firefox Focus / Firefox Klar
|
605
|
+
- regex: '(?:Focus|Klar)(?:/(\d+[\.\d]+))?'
|
606
|
+
name: 'Firefox Focus'
|
607
|
+
version: '$1'
|
608
|
+
|
609
|
+
#Cyberfox
|
610
|
+
- regex: 'Cyberfox(?:/(\d+[\.\d]+))?'
|
611
|
+
name: 'Cyberfox'
|
612
|
+
version: '$1'
|
613
|
+
engine:
|
614
|
+
default: 'Gecko'
|
615
|
+
|
170
616
|
#Swiftfox
|
171
617
|
- regex: 'Firefox/(\d+[\.\d]+).*\(Swiftfox\)'
|
172
618
|
name: 'Swiftfox'
|
@@ -174,22 +620,39 @@
|
|
174
620
|
engine:
|
175
621
|
default: 'Gecko'
|
176
622
|
|
623
|
+
#Firefox Mobile
|
624
|
+
- regex: '(?:Mobile|Tablet).*Servo.*Firefox(?:/(\d+[\.\d]+))?'
|
625
|
+
name: 'Firefox Mobile'
|
626
|
+
version: '$1'
|
627
|
+
engine:
|
628
|
+
default: 'Servo'
|
629
|
+
- regex: '(?:Mobile|Tablet).*Firefox(?:/(\d+[\.\d]+))?'
|
630
|
+
name: 'Firefox Mobile'
|
631
|
+
version: '$1'
|
632
|
+
engine:
|
633
|
+
default: 'Gecko'
|
634
|
+
- regex: 'FxiOS/(\d+[\.\d]+)'
|
635
|
+
name: 'Firefox Mobile iOS'
|
636
|
+
version: '$1'
|
637
|
+
engine:
|
638
|
+
default: 'WebKit'
|
639
|
+
|
177
640
|
#Firefox
|
178
|
-
- regex: 'Firefox(?:/(\d+[\.\d]+))?'
|
641
|
+
- regex: '.*Servo.*Firefox(?:/(\d+[\.\d]+))?'
|
179
642
|
name: 'Firefox'
|
180
643
|
version: '$1'
|
181
644
|
engine:
|
182
|
-
default: '
|
183
|
-
- regex: '(
|
645
|
+
default: 'Servo'
|
646
|
+
- regex: 'Firefox(?:/(\d+[\.\d]+))?'
|
184
647
|
name: 'Firefox'
|
185
|
-
version: '$1
|
648
|
+
version: '$1'
|
186
649
|
engine:
|
187
650
|
default: 'Gecko'
|
188
|
-
- regex: '
|
651
|
+
- regex: '(?:BonEcho|GranParadiso|Lorentz|Minefield|Namoroka|Shiretoko)/(\d+[\.\d]+)'
|
189
652
|
name: 'Firefox'
|
190
|
-
version: '
|
653
|
+
version: '$1'
|
191
654
|
engine:
|
192
|
-
default: '
|
655
|
+
default: 'Gecko'
|
193
656
|
|
194
657
|
#ANT Fresco
|
195
658
|
- regex: 'ANTFresco(?:[/ ](\d+[\.\d]+))?'
|
@@ -230,6 +693,59 @@
|
|
230
693
|
engine:
|
231
694
|
default: '' # Mosaic in the first versions, then Gecko
|
232
695
|
|
696
|
+
#Polarity
|
697
|
+
- regex: '(?:Polarity)(?:[/ ](\d+[\.\d]+))?'
|
698
|
+
name: 'Polarity'
|
699
|
+
version: '$1'
|
700
|
+
|
701
|
+
#QupZilla
|
702
|
+
- regex: '(?:QupZilla)(?:[/ ](\d+[\.\d]+))?'
|
703
|
+
name: 'QupZilla'
|
704
|
+
version: '$1'
|
705
|
+
|
706
|
+
#Dooble
|
707
|
+
- regex: '(?:Dooble)(?:[/ ](\d+[\.\d]+))?'
|
708
|
+
name: 'Dooble'
|
709
|
+
version: '$1'
|
710
|
+
|
711
|
+
# Whale
|
712
|
+
- regex: 'Whale/(\d+[\.\d]+)'
|
713
|
+
name: 'Whale Browser'
|
714
|
+
version: '$1'
|
715
|
+
engine:
|
716
|
+
default: 'Blink'
|
717
|
+
|
718
|
+
#Obigo
|
719
|
+
- regex: 'Obigo[ ]?(?:InternetBrowser|Browser)?(?:[ /]([a-z0-9]*))?'
|
720
|
+
name: 'Obigo'
|
721
|
+
version: '$1'
|
722
|
+
- regex: 'Obigo|Teleca'
|
723
|
+
name: 'Obigo'
|
724
|
+
version: ''
|
725
|
+
|
726
|
+
#UC Browser Mini
|
727
|
+
- regex: 'UCMini(?:[ /]?(\d+[\.\d]+))?'
|
728
|
+
name: 'UC Browser Mini'
|
729
|
+
version: '$1'
|
730
|
+
- regex: 'UC[ ]?Browser.* \(UCMini\)'
|
731
|
+
name: 'UC Browser Mini'
|
732
|
+
version: ''
|
733
|
+
|
734
|
+
# UC Browser Turbo
|
735
|
+
- regex: 'UCTurbo(?:[ /]?(\d+[\.\d]+))?'
|
736
|
+
name: 'UC Browser Turbo'
|
737
|
+
version: '$1'
|
738
|
+
- regex: 'UC[ ]?Browser.* \(UCTurbo\)'
|
739
|
+
name: 'UC Browser Turbo'
|
740
|
+
version: ''
|
741
|
+
|
742
|
+
# Opera GX (https://www.opera.com/gx#start | http://ftp.opera.com/pub/opera_gx/)
|
743
|
+
- regex: 'OPRGX(?:/(\d+[\.\d]+))?'
|
744
|
+
name: 'Opera GX'
|
745
|
+
version: '$1'
|
746
|
+
engine:
|
747
|
+
default: 'Blink'
|
748
|
+
|
233
749
|
#Opera
|
234
750
|
- regex: '(?:Opera Tablet.*Version|Opera/.+Opera Mobi.+Version|Mobile.+OPR)/(\d+[\.\d]+)'
|
235
751
|
name: 'Opera Mobile'
|
@@ -238,11 +754,43 @@
|
|
238
754
|
default: 'Presto'
|
239
755
|
versions:
|
240
756
|
15: 'Blink'
|
241
|
-
- regex: '
|
757
|
+
- regex: 'MMS/(\d+[\.\d]+)'
|
758
|
+
name: 'Opera Neon'
|
759
|
+
version: '$1'
|
760
|
+
engine:
|
761
|
+
default: 'Blink'
|
762
|
+
- regex: 'OMI/(\d+[\.\d]+)'
|
763
|
+
name: 'Opera Devices'
|
764
|
+
version: '$1'
|
765
|
+
engine:
|
766
|
+
default: 'Blink'
|
767
|
+
- regex: 'OPT/(\d+[\.\d]+)'
|
768
|
+
name: 'Opera Touch'
|
769
|
+
version: '$1'
|
770
|
+
engine:
|
771
|
+
default: 'Blink'
|
772
|
+
- regex: 'Opera/(\d+[\.\d]+).+Opera Mobi'
|
773
|
+
name: 'Opera Mobile'
|
774
|
+
version: '$1'
|
775
|
+
engine:
|
776
|
+
default: 'Presto'
|
777
|
+
versions:
|
778
|
+
15: 'Blink'
|
779
|
+
- regex: 'Opera ?Mini/(?:att/)?(\d+[\.\d]+)'
|
780
|
+
name: 'Opera Mini'
|
781
|
+
version: '$1'
|
782
|
+
engine:
|
783
|
+
default: 'Presto'
|
784
|
+
- regex: 'Opera ?Mini.+Version/(\d+[\.\d]+)'
|
242
785
|
name: 'Opera Mini'
|
243
786
|
version: '$1'
|
244
787
|
engine:
|
245
788
|
default: 'Presto'
|
789
|
+
- regex: 'OPiOS/(\d+[\.\d]+)'
|
790
|
+
name: 'Opera Mini iOS'
|
791
|
+
version: '$1'
|
792
|
+
engine:
|
793
|
+
default: 'WebKit'
|
246
794
|
- regex: 'Opera.+Edition Next.+Version/(\d+[\.\d]+)'
|
247
795
|
name: 'Opera Next'
|
248
796
|
version: '$1'
|
@@ -257,13 +805,13 @@
|
|
257
805
|
default: 'Presto'
|
258
806
|
versions:
|
259
807
|
15: 'Blink'
|
260
|
-
- regex: '(?:Opera
|
808
|
+
- regex: '(?:Opera[/ ]?|OPR[/ ])(?:9.80.*Version/)?(\d+[\.\d]+)'
|
261
809
|
name: 'Opera'
|
262
810
|
version: '$1'
|
263
811
|
engine:
|
264
812
|
default: ''
|
265
813
|
versions:
|
266
|
-
3.5: 'Elektra'
|
814
|
+
'3.5': 'Elektra'
|
267
815
|
7: 'Presto'
|
268
816
|
15: 'Blink'
|
269
817
|
|
@@ -282,7 +830,7 @@
|
|
282
830
|
default: '' # multi engine
|
283
831
|
|
284
832
|
#Comodo Dragon
|
285
|
-
- regex: 'Comodo[ _]Dragon(?:/(\d+[\.\d]+))?'
|
833
|
+
- regex: '(?:Comodo[ _])?Dragon(?!fruit)(?:/(\d+[\.\d]+))?'
|
286
834
|
name: 'Comodo Dragon'
|
287
835
|
version: '$1'
|
288
836
|
engine:
|
@@ -314,7 +862,10 @@
|
|
314
862
|
4: '' # multiple (KHTML or WebKit)
|
315
863
|
|
316
864
|
#Baidu Browser
|
317
|
-
- regex: 'baidubrowser(?:[/ ](\d+[\.\d]*))?'
|
865
|
+
- regex: '(?:baidubrowser|bdbrowser_i18n|bdbrowser)(?:[/ ](\d+[\.\d]*))?'
|
866
|
+
name: 'Baidu Browser'
|
867
|
+
version: '$1'
|
868
|
+
- regex: 'FlyFlow(?:[/ ](\d+[\.\d]*))?'
|
318
869
|
name: 'Baidu Browser'
|
319
870
|
version: '$1'
|
320
871
|
|
@@ -323,10 +874,17 @@
|
|
323
874
|
name: 'Baidu Spark'
|
324
875
|
version: '$1'
|
325
876
|
|
877
|
+
# Yandex Browser Lite
|
878
|
+
- regex: 'YaBrowser(?:/(\d+[\.\d]*)) \(lite\)?'
|
879
|
+
name: 'Yandex Browser Lite'
|
880
|
+
version: '$1'
|
881
|
+
engine:
|
882
|
+
default: 'Blink'
|
883
|
+
|
326
884
|
#Yandex Browser
|
327
|
-
- regex: 'YaBrowser(?:/(\d+[\.\d]*))?'
|
885
|
+
- regex: 'YaBrowser(?:/(\d+[\.\d]*))(?: \((alpha|beta)\))?'
|
328
886
|
name: 'Yandex Browser'
|
329
|
-
version: '$1'
|
887
|
+
version: '$1 $2'
|
330
888
|
engine:
|
331
889
|
default: 'Blink'
|
332
890
|
|
@@ -365,7 +923,7 @@
|
|
365
923
|
versions:
|
366
924
|
3: 'WebKit'
|
367
925
|
|
368
|
-
- regex: '(?:Maxthon|MyIE2
|
926
|
+
- regex: '(?:Maxthon|MyIE2)'
|
369
927
|
name: 'Maxthon'
|
370
928
|
version: ''
|
371
929
|
engine:
|
@@ -376,7 +934,20 @@
|
|
376
934
|
name: 'Puffin'
|
377
935
|
version: '$1'
|
378
936
|
|
379
|
-
#
|
937
|
+
#MobileIron
|
938
|
+
- regex: 'MobileIron(?:/(\d+[\.\d]+))?'
|
939
|
+
name: 'Iron Mobile'
|
940
|
+
version: '$1'
|
941
|
+
engine:
|
942
|
+
default: 'Blink'
|
943
|
+
|
944
|
+
# Iron
|
945
|
+
- regex: 'Chrome(?:/(\d+[\.\d]+))?.*Iron'
|
946
|
+
name: 'Iron'
|
947
|
+
version: '$1'
|
948
|
+
engine:
|
949
|
+
default: 'WebKit'
|
950
|
+
|
380
951
|
- regex: 'Iron(?:/(\d+[\.\d]+))?'
|
381
952
|
name: 'Iron'
|
382
953
|
version: '$1'
|
@@ -385,19 +956,24 @@
|
|
385
956
|
versions:
|
386
957
|
28: 'Blink'
|
387
958
|
|
388
|
-
#
|
959
|
+
#GNOME Web
|
389
960
|
- regex: 'Epiphany(?:/(\d+[\.\d]+))?'
|
390
|
-
name: '
|
961
|
+
name: 'GNOME Web'
|
391
962
|
version: '$1'
|
392
963
|
engine:
|
393
964
|
default: 'Gecko'
|
394
965
|
versions:
|
395
|
-
2.9.16: '' # multi engine
|
396
|
-
2.28: 'WebKit'
|
966
|
+
'2.9.16': '' # multi engine
|
967
|
+
'2.28': 'WebKit'
|
968
|
+
|
969
|
+
# LieBaoFast
|
970
|
+
- regex: 'LieBaoFast(?:[ /](\d+[\.\d]+))?'
|
971
|
+
name: 'LieBaoFast'
|
972
|
+
version: '$1'
|
397
973
|
|
398
|
-
#
|
974
|
+
# Cheetah Browser
|
399
975
|
- regex: 'LBBrowser(?:[ /](\d+[\.\d]+))?'
|
400
|
-
name: '
|
976
|
+
name: 'Cheetah Browser'
|
401
977
|
version: '$1'
|
402
978
|
|
403
979
|
# Sogou Explorer
|
@@ -405,15 +981,26 @@
|
|
405
981
|
name: 'Sogou Explorer'
|
406
982
|
version: '$1'
|
407
983
|
|
984
|
+
# QQ Browser Mini
|
985
|
+
- regex: 'M?QQBrowser/Mini([\.\d]+)?'
|
986
|
+
name: 'QQ Browser Mini'
|
987
|
+
version: '$1'
|
988
|
+
engine:
|
989
|
+
default: '' # multi engine -- WebKit or Blink
|
990
|
+
|
408
991
|
# QQ Browser
|
409
|
-
- regex: 'M?QQBrowser(?:/(
|
992
|
+
- regex: 'M?QQBrowser(?:/([\.\d]+))?'
|
410
993
|
name: 'QQ Browser'
|
411
994
|
version: '$1'
|
995
|
+
engine:
|
996
|
+
default: '' # multi engine -- WebKit or Blink
|
412
997
|
|
413
998
|
# MIUI Browser
|
414
|
-
- regex: 'MIUIBrowser(?:/(\d+[\.\d]+))?'
|
999
|
+
- regex: '(?:MIUIBrowser|MiuiBrowser)(?:/(\d+[\.\d]+))?'
|
415
1000
|
name: 'MIUI Browser'
|
416
1001
|
version: '$1'
|
1002
|
+
engine:
|
1003
|
+
default: '' # multi engine -- WebKit or Blink
|
417
1004
|
|
418
1005
|
# Coc Coc
|
419
1006
|
# This browser (http://coccoc.vn/) is built on top of Chromium with
|
@@ -428,11 +1015,217 @@
|
|
428
1015
|
versions:
|
429
1016
|
28: 'Blink'
|
430
1017
|
|
1018
|
+
- regex: 'DuckDuckGo/(\d+[\.\d]*)'
|
1019
|
+
name: 'DuckDuckGo Privacy Browser'
|
1020
|
+
version: '$1'
|
1021
|
+
engine:
|
1022
|
+
default: 'Blink'
|
1023
|
+
|
431
1024
|
#Samsung Browser
|
432
1025
|
- regex: 'Samsung ?Browser(?:[/ ](\d+[\.\d]+))?'
|
433
1026
|
name: 'Samsung Browser'
|
434
1027
|
version: '$1'
|
435
1028
|
|
1029
|
+
# Super Fast Browser (https://play.google.com/store/apps/details?id=com.browser.tssomas)
|
1030
|
+
- regex: '(?:SFBrowser|com.browser.tssomas)(?:/(\d+[\.\d]+))?'
|
1031
|
+
name: 'Super Fast Browser'
|
1032
|
+
version: '$1'
|
1033
|
+
|
1034
|
+
# EUI Browser
|
1035
|
+
- regex: 'EUI Browser(?:/(\d+[\.\d]+))?'
|
1036
|
+
name: 'EUI Browser'
|
1037
|
+
version: '$1'
|
1038
|
+
|
1039
|
+
# UBrowser (https://callumprentice.github.io/)
|
1040
|
+
- regex: 'UBrowser(?:/(\d+[\.\d]+))?'
|
1041
|
+
name: 'UBrowser'
|
1042
|
+
version: '$1'
|
1043
|
+
|
1044
|
+
#Streamy (Chromium based)
|
1045
|
+
- regex: 'Streamy(?:/(\d+[\.\d]+))?'
|
1046
|
+
name: 'Streamy'
|
1047
|
+
version: '$1'
|
1048
|
+
engine:
|
1049
|
+
default: 'WebKit'
|
1050
|
+
|
1051
|
+
#Isivioo (Android version is Chrome based)
|
1052
|
+
- regex: 'isivioo'
|
1053
|
+
name: 'Isivioo'
|
1054
|
+
version: ''
|
1055
|
+
engine:
|
1056
|
+
default: 'WebKit'
|
1057
|
+
|
1058
|
+
#UC Browser
|
1059
|
+
- regex: 'UC[ ]?Browser(?:[ /]?(\d+[\.\d]+))?'
|
1060
|
+
name: 'UC Browser'
|
1061
|
+
version: '$1'
|
1062
|
+
- regex: 'UCWEB(?:[ /]?(\d+[\.\d]+))?'
|
1063
|
+
name: 'UC Browser'
|
1064
|
+
version: '$1'
|
1065
|
+
- regex: 'UC AppleWebKit'
|
1066
|
+
name: 'UC Browser'
|
1067
|
+
version: ''
|
1068
|
+
|
1069
|
+
#Tenta Browser
|
1070
|
+
#It should be checked before Chrome since the UA contains the Chrome
|
1071
|
+
- regex: 'Tenta/(\d+[\.\d]+)'
|
1072
|
+
name: 'Tenta Browser'
|
1073
|
+
version: '$1'
|
1074
|
+
engine:
|
1075
|
+
default: 'Webkit'
|
1076
|
+
|
1077
|
+
# Firefox Rocket
|
1078
|
+
- regex: 'Rocket/(\d+[\.\d]+)'
|
1079
|
+
name: 'Firefox Rocket'
|
1080
|
+
version: '$1'
|
1081
|
+
engine:
|
1082
|
+
default: 'Webkit'
|
1083
|
+
|
1084
|
+
# Web Explorer
|
1085
|
+
- regex: 'Web Explorer/(\d+[\.\d]+).*Chrome'
|
1086
|
+
name: 'Web Explorer'
|
1087
|
+
version: '$1'
|
1088
|
+
engine:
|
1089
|
+
default: 'Webkit'
|
1090
|
+
|
1091
|
+
# Seznam Browser
|
1092
|
+
- regex: 'SznProhlizec/(\d+[\.\d]+)'
|
1093
|
+
name: 'Seznam Browser'
|
1094
|
+
version: '$1'
|
1095
|
+
engine:
|
1096
|
+
default: 'Blink'
|
1097
|
+
|
1098
|
+
# SogouMobileBrowser
|
1099
|
+
- regex: 'SogouMobileBrowser/(\d+[\.\d]+)'
|
1100
|
+
name: 'Sogou Mobile Browser'
|
1101
|
+
version: '$1'
|
1102
|
+
engine:
|
1103
|
+
default: '' # multi engine -- WebKit or Blink
|
1104
|
+
|
1105
|
+
# Mint Browser
|
1106
|
+
- regex: 'Mint Browser/(\d+[\.\d]+)'
|
1107
|
+
name: 'Mint Browser'
|
1108
|
+
version: '$1'
|
1109
|
+
engine:
|
1110
|
+
default: '' # multi engine -- WebKit or Blink
|
1111
|
+
|
1112
|
+
# Ecosia
|
1113
|
+
- regex: 'Ecosia (?:android|ios)@(\d+[\.\d]+)'
|
1114
|
+
name: 'Ecosia'
|
1115
|
+
version: '$1'
|
1116
|
+
engine:
|
1117
|
+
default: '' # multi engine -- WebKit or Blink
|
1118
|
+
|
1119
|
+
# CM Browser
|
1120
|
+
- regex: 'ACHEETAHI'
|
1121
|
+
name: 'CM Browser'
|
1122
|
+
version: ''
|
1123
|
+
engine:
|
1124
|
+
default: '' # multi engine -- WebKit or Blink
|
1125
|
+
|
1126
|
+
# Kiwi Browser
|
1127
|
+
- regex: 'Kiwi Chrome'
|
1128
|
+
name: 'Kiwi'
|
1129
|
+
version: ''
|
1130
|
+
engine:
|
1131
|
+
default: '' # multi engine -- WebKit or Blink
|
1132
|
+
|
1133
|
+
# 2345 Browser
|
1134
|
+
- regex: 'Mb2345Browser/(\d+[\.\d]+)'
|
1135
|
+
name: '2345 Browser'
|
1136
|
+
version: '$1'
|
1137
|
+
engine:
|
1138
|
+
default: '' # multi engine -- WebKit or Blink
|
1139
|
+
|
1140
|
+
# QtWebEngine
|
1141
|
+
- regex: 'QtWebEngine/(\d+[\.\d]+)'
|
1142
|
+
name: 'QtWebEngine'
|
1143
|
+
version: '$1'
|
1144
|
+
engine:
|
1145
|
+
default: '' # multi engine -- WebKit or Blink
|
1146
|
+
|
1147
|
+
#Mobile Silk
|
1148
|
+
- regex: 'Silk/(\d+[\.\d]+) like Chrome'
|
1149
|
+
name: 'Mobile Silk'
|
1150
|
+
version: '$1'
|
1151
|
+
engine:
|
1152
|
+
default: 'Blink'
|
1153
|
+
- regex: 'Silk(?:/(\d+[\.\d]+))?'
|
1154
|
+
name: 'Mobile Silk'
|
1155
|
+
version: '$1'
|
1156
|
+
engine:
|
1157
|
+
default: 'WebKit'
|
1158
|
+
|
1159
|
+
#IBrowse
|
1160
|
+
- regex: 'IBrowse(?:[ /](\d+[\.\d]+))?'
|
1161
|
+
name: 'IBrowse'
|
1162
|
+
version: '$1'
|
1163
|
+
|
1164
|
+
#Openwave Mobile Browser
|
1165
|
+
- regex: 'UP.Browser(?:/(\d+[\.\d]+))?'
|
1166
|
+
name: 'Openwave Mobile Browser'
|
1167
|
+
version: '$1'
|
1168
|
+
- regex: 'Openwave(?:/(\d+[\.\d]+))?'
|
1169
|
+
name: 'Openwave Mobile Browser'
|
1170
|
+
version: '$1'
|
1171
|
+
|
1172
|
+
#ONE Browser
|
1173
|
+
- regex: 'OneBrowser(?:[ /](\d+[\.\d]+))?'
|
1174
|
+
name: 'ONE Browser'
|
1175
|
+
version: '$1'
|
1176
|
+
engine:
|
1177
|
+
default: 'WebKit'
|
1178
|
+
|
1179
|
+
#Nokia Browser
|
1180
|
+
- regex: '(?:NokiaBrowser|BrowserNG)(?:/(\d+[\.\d]+))?'
|
1181
|
+
name: 'Nokia Browser'
|
1182
|
+
version: '$1'
|
1183
|
+
- regex: 'Series60/5\.0'
|
1184
|
+
name: 'Nokia Browser'
|
1185
|
+
version: '7.0'
|
1186
|
+
- regex: 'Series60/(\d+[\.\d]+)'
|
1187
|
+
name: 'Nokia OSS Browser'
|
1188
|
+
version: '$1'
|
1189
|
+
- regex: 'S40OviBrowser/(\d+[\.\d]+)'
|
1190
|
+
name: 'Nokia Ovi Browser'
|
1191
|
+
version: '$1'
|
1192
|
+
- regex: '^Nokia|Nokia[EN]?\d+'
|
1193
|
+
name: 'Nokia Browser'
|
1194
|
+
version: ''
|
1195
|
+
|
1196
|
+
#Sleipnir
|
1197
|
+
- regex: 'Sleipnir(?:[ /](\d+[\.\d]+))?'
|
1198
|
+
name: 'Sleipnir'
|
1199
|
+
version: '$1'
|
1200
|
+
engine:
|
1201
|
+
default: '' # multi engine
|
1202
|
+
|
1203
|
+
# NTENT Browser
|
1204
|
+
- regex: 'NTENTBrowser(?:/(\d+[\.\d]+))?'
|
1205
|
+
name: 'NTENT Browser'
|
1206
|
+
version: '$1'
|
1207
|
+
|
1208
|
+
# TV Bro
|
1209
|
+
- regex: 'TV Bro/(\d+[\.\d]+)'
|
1210
|
+
name: 'TV Bro'
|
1211
|
+
version: '$1'
|
1212
|
+
|
1213
|
+
# Quark
|
1214
|
+
- regex: 'Chrome/.+ Quark(?:/(\d+[\.\d]+))?'
|
1215
|
+
name: 'Quark'
|
1216
|
+
version: '$1'
|
1217
|
+
engine:
|
1218
|
+
default: 'WebKit'
|
1219
|
+
|
1220
|
+
# Chrome Webview
|
1221
|
+
- regex: 'Version/.* Chrome(?:/(\d+[\.\d]+))?'
|
1222
|
+
name: 'Chrome Webview'
|
1223
|
+
version: '$1'
|
1224
|
+
engine:
|
1225
|
+
default: 'WebKit'
|
1226
|
+
versions:
|
1227
|
+
28: 'Blink'
|
1228
|
+
|
436
1229
|
#Chrome
|
437
1230
|
- regex: 'CrMo(?:/(\d+[\.\d]+))?'
|
438
1231
|
name: 'Chrome Mobile'
|
@@ -465,7 +1258,12 @@
|
|
465
1258
|
default: 'WebKit'
|
466
1259
|
versions:
|
467
1260
|
28: 'Blink'
|
468
|
-
- regex: '
|
1261
|
+
- regex: 'HeadlessChrome(?:/(\d+[\.\d]+))?'
|
1262
|
+
name: 'Headless Chrome'
|
1263
|
+
version: '$1'
|
1264
|
+
engine:
|
1265
|
+
default: 'Blink'
|
1266
|
+
- regex: 'Chrome(?!book)(?:/(\d+[\.\d]+))?'
|
469
1267
|
name: 'Chrome'
|
470
1268
|
version: '$1'
|
471
1269
|
engine:
|
@@ -473,14 +1271,6 @@
|
|
473
1271
|
versions:
|
474
1272
|
28: 'Blink'
|
475
1273
|
|
476
|
-
#UC Browser
|
477
|
-
- regex: 'UC[ ]?Browser(?:[ /]?(\d+[\.\d]+))?'
|
478
|
-
name: 'UC Browser'
|
479
|
-
version: '$1'
|
480
|
-
- regex: 'UCWEB(?:[ /]?(\d+[\.\d]+))?'
|
481
|
-
name: 'UC Browser'
|
482
|
-
version: '$1'
|
483
|
-
|
484
1274
|
#Tizen Browser
|
485
1275
|
- regex: '(?:Tizen|SLP) Browser(?:/(\d+[\.\d]+))?'
|
486
1276
|
name: 'Tizen Browser'
|
@@ -560,6 +1350,13 @@
|
|
560
1350
|
engine:
|
561
1351
|
default: 'Gecko'
|
562
1352
|
|
1353
|
+
#B-Line
|
1354
|
+
- regex: 'bline(?:/(\d+[\.\d]+))?'
|
1355
|
+
name: 'B-Line'
|
1356
|
+
version: '$1'
|
1357
|
+
engine:
|
1358
|
+
default: 'WebKit'
|
1359
|
+
|
563
1360
|
#BrowseX
|
564
1361
|
- regex: 'BrowseX \((\d+[\.\d]+)'
|
565
1362
|
name: 'BrowseX'
|
@@ -575,6 +1372,13 @@
|
|
575
1372
|
name: 'Cheshire'
|
576
1373
|
version: '$1'
|
577
1374
|
|
1375
|
+
#dbrowser
|
1376
|
+
- regex: 'dbrowser'
|
1377
|
+
name: 'dbrowser'
|
1378
|
+
version: ''
|
1379
|
+
engine:
|
1380
|
+
default: 'WebKit'
|
1381
|
+
|
578
1382
|
#Dillo
|
579
1383
|
- regex: 'Dillo(?:/(\d+[\.\d]+))?'
|
580
1384
|
name: 'Dillo'
|
@@ -601,6 +1405,11 @@
|
|
601
1405
|
name: 'Element Browser'
|
602
1406
|
version: '$1'
|
603
1407
|
|
1408
|
+
# eZ Browser (https://play.google.com/store/apps/details?id=com.asc.csbrowser)
|
1409
|
+
- regex: 'eZBrowser(?:/(\d+[\.\d]+))?'
|
1410
|
+
name: 'eZ Browser'
|
1411
|
+
version: '$1'
|
1412
|
+
|
604
1413
|
#Firebird
|
605
1414
|
- regex: 'Firebird(?! Build)(?:/(\d+[\.\d]+))?'
|
606
1415
|
name: 'Firebird'
|
@@ -634,10 +1443,12 @@
|
|
634
1443
|
name: 'HotJava'
|
635
1444
|
version: '$1'
|
636
1445
|
|
637
|
-
#
|
638
|
-
- regex: '
|
639
|
-
name: '
|
1446
|
+
#iCabMobile
|
1447
|
+
- regex: 'iCabMobile(?:[ /](\d+[\.\d]+))?'
|
1448
|
+
name: 'iCab Mobile'
|
640
1449
|
version: '$1'
|
1450
|
+
engine:
|
1451
|
+
default: 'WebKit'
|
641
1452
|
|
642
1453
|
#iCab
|
643
1454
|
- regex: 'iCab(?:[ /](\d+[\.\d]+))?'
|
@@ -648,15 +1459,8 @@
|
|
648
1459
|
versions:
|
649
1460
|
4: 'WebKit'
|
650
1461
|
|
651
|
-
#Sleipnir
|
652
|
-
- regex: 'Sleipnir(?:[ /](\d+[\.\d]+))?'
|
653
|
-
name: 'Sleipnir'
|
654
|
-
version: '$1'
|
655
|
-
engine:
|
656
|
-
default: '' # multi engine
|
657
|
-
|
658
1462
|
#Lunascape
|
659
|
-
- regex: 'Lunascape(?:[/ ](\d+[\.\d]+))?'
|
1463
|
+
- regex: 'i?Lunascape(?:[/ ](\d+[\.\d]+))?'
|
660
1464
|
name: 'Lunascape'
|
661
1465
|
version: '$1'
|
662
1466
|
engine:
|
@@ -688,7 +1492,7 @@
|
|
688
1492
|
version: 10.0
|
689
1493
|
engine:
|
690
1494
|
default: 'Trident'
|
691
|
-
- regex: 'Trident/
|
1495
|
+
- regex: 'Trident/[78].0'
|
692
1496
|
name: 'Internet Explorer'
|
693
1497
|
version: 11.0
|
694
1498
|
engine:
|
@@ -698,19 +1502,12 @@
|
|
698
1502
|
version: '$1'
|
699
1503
|
engine:
|
700
1504
|
default: 'Trident'
|
701
|
-
- regex: 'IE[ /](\d+[\.\d]
|
1505
|
+
- regex: 'IE[ /](\d+[\.\d]+)'
|
702
1506
|
name: 'Internet Explorer'
|
703
1507
|
version: '$1'
|
704
1508
|
engine:
|
705
1509
|
default: 'Trident'
|
706
1510
|
|
707
|
-
#Kazehakase
|
708
|
-
- regex: 'Kazehakase(?:/(\d+[\.\d]+))?'
|
709
|
-
name: 'Kazehakase'
|
710
|
-
version: '$1'
|
711
|
-
engine:
|
712
|
-
default: '' # multi engine
|
713
|
-
|
714
1511
|
#Kindle Browser
|
715
1512
|
- regex: 'Kindle/(\d+[\.\d]+)'
|
716
1513
|
name: 'Kindle Browser'
|
@@ -740,14 +1537,6 @@
|
|
740
1537
|
name: 'LuaKit'
|
741
1538
|
version: '$1'
|
742
1539
|
|
743
|
-
#Openwave Mobile Browser
|
744
|
-
- regex: 'UP.Browser(?:/(\d+[\.\d]+))?'
|
745
|
-
name: 'Openwave Mobile Browser'
|
746
|
-
version: '$1'
|
747
|
-
- regex: 'Openwave(?:/(\d+[\.\d]+))?'
|
748
|
-
name: 'Openwave Mobile Browser'
|
749
|
-
version: '$1'
|
750
|
-
|
751
1540
|
#OmniWeb
|
752
1541
|
- regex: 'OmniWeb(?:/[v]?(\d+[\.\d]+))?'
|
753
1542
|
name: 'OmniWeb'
|
@@ -760,13 +1549,6 @@
|
|
760
1549
|
name: 'Phoenix'
|
761
1550
|
version: '$1'
|
762
1551
|
|
763
|
-
#Mobile Silk
|
764
|
-
- regex: 'Silk(?:/(\d+[\.\d]+))?'
|
765
|
-
name: 'Mobile Silk'
|
766
|
-
version: '$1'
|
767
|
-
engine:
|
768
|
-
default: 'Blink'
|
769
|
-
|
770
1552
|
#NetFront
|
771
1553
|
- regex: 'NetFrontLifeBrowser(?:/(\d+[\.\d]+))?'
|
772
1554
|
name: 'NetFront Life'
|
@@ -778,7 +1560,7 @@
|
|
778
1560
|
version: '$1'
|
779
1561
|
engine:
|
780
1562
|
default: 'NetFront'
|
781
|
-
- regex: 'PLAYSTATION|NINTENDO 3|AppleWebKit.+
|
1563
|
+
- regex: 'PLAYSTATION|NINTENDO 3|AppleWebKit.+ N[XF]/\d+\.\d+\.\d+'
|
782
1564
|
name: 'NetFront'
|
783
1565
|
version: ''
|
784
1566
|
|
@@ -787,14 +1569,6 @@
|
|
787
1569
|
name: 'NetPositive'
|
788
1570
|
version: '$1'
|
789
1571
|
|
790
|
-
#Obigo
|
791
|
-
- regex: 'Obigo[ ]?(?:InternetBrowser|Browser)?(?:[ /]([a-z0-9]*))?'
|
792
|
-
name: 'Obigo'
|
793
|
-
version: '$1'
|
794
|
-
- regex: 'Obigo|Teleca'
|
795
|
-
name: 'Obigo'
|
796
|
-
version: ''
|
797
|
-
|
798
1572
|
#Odyssey Web Browser
|
799
1573
|
- regex: 'Odyssey Web Browser(?:.*OWB/(\d+[\.\d]+))?'
|
800
1574
|
name: 'Odyssey Web Browser'
|
@@ -805,13 +1579,6 @@
|
|
805
1579
|
name: 'Off By One'
|
806
1580
|
version: ''
|
807
1581
|
|
808
|
-
#ONE Browser
|
809
|
-
- regex: 'OneBrowser(?:[ /](\d+[\.\d]+))?'
|
810
|
-
name: 'ONE Browser'
|
811
|
-
version: '$1'
|
812
|
-
engine:
|
813
|
-
default: 'WebKit'
|
814
|
-
|
815
1582
|
#Oregano
|
816
1583
|
- regex: 'Oregano(?:[ /](\d+[\.\d]+))?'
|
817
1584
|
name: 'Oregano'
|
@@ -883,28 +1650,16 @@
|
|
883
1650
|
name: 'Xiino'
|
884
1651
|
version: '$1'
|
885
1652
|
|
886
|
-
#Nokia Browser
|
887
|
-
- regex: '(?:NokiaBrowser|BrowserNG)(?:/(\d+[\.\d]+))?'
|
888
|
-
name: 'Nokia Browser'
|
889
|
-
version: '$1'
|
890
|
-
- regex: 'Series60/5\.0'
|
891
|
-
name: 'Nokia Browser'
|
892
|
-
version: '7.0'
|
893
|
-
- regex: 'Series60/(\d+[\.\d]+)'
|
894
|
-
name: 'Nokia OSS Browser'
|
895
|
-
version: '$1'
|
896
|
-
- regex: 'S40OviBrowser/(\d+[\.\d]+)'
|
897
|
-
name: 'Nokia Ovi Browser'
|
898
|
-
version: '$1'
|
899
|
-
- regex: '^Nokia|Nokia[EN]?\d+'
|
900
|
-
name: 'Nokia Browser'
|
901
|
-
version: ''
|
902
|
-
|
903
1653
|
#BlackBerry Browser
|
904
1654
|
- regex: 'BlackBerry|PlayBook|BB10'
|
905
1655
|
name: 'BlackBerry Browser'
|
906
1656
|
version: ''
|
907
1657
|
|
1658
|
+
#BriskBard
|
1659
|
+
- regex: 'BriskBard(?:/(\d+[\.\d]+))?'
|
1660
|
+
name: 'BriskBard'
|
1661
|
+
version: '$1'
|
1662
|
+
|
908
1663
|
#Android Browser
|
909
1664
|
- regex: 'Android'
|
910
1665
|
name: 'Android Browser'
|
@@ -912,13 +1667,30 @@
|
|
912
1667
|
engine:
|
913
1668
|
default: 'WebKit'
|
914
1669
|
|
1670
|
+
#Coast
|
1671
|
+
- regex: 'Coast(?:/(\d+[\.\d]+))?'
|
1672
|
+
name: 'Coast'
|
1673
|
+
version: '$1'
|
1674
|
+
|
1675
|
+
#Qutebrowser
|
1676
|
+
- regex: 'qutebrowser(?:/(\d+[\.\d]+))?'
|
1677
|
+
name: 'Qutebrowser'
|
1678
|
+
version: '$1'
|
1679
|
+
|
1680
|
+
# surf (https://surf.suckless.org/)
|
1681
|
+
- regex: 'Surf(?:/(\d+[\.\d]+))?'
|
1682
|
+
name: 'surf'
|
1683
|
+
version: '$1'
|
1684
|
+
engine:
|
1685
|
+
default: 'WebKit'
|
1686
|
+
|
915
1687
|
#Safari
|
916
1688
|
- regex: '(?:(?:iPod|iPad|iPhone).+Version|MobileSafari)/(\d+[\.\d]+)'
|
917
1689
|
name: 'Mobile Safari'
|
918
1690
|
version: '$1'
|
919
1691
|
engine:
|
920
1692
|
default: 'WebKit'
|
921
|
-
- regex: 'Version/(\d+[\.\d]+).*Mobile.*Safari/'
|
1693
|
+
- regex: '(?:Version/(\d+[\.\d]+).*)?Mobile.*Safari/'
|
922
1694
|
name: 'Mobile Safari'
|
923
1695
|
version: '$1'
|
924
1696
|
engine:
|
@@ -933,3 +1705,32 @@
|
|
933
1705
|
version: '$1'
|
934
1706
|
engine:
|
935
1707
|
default: 'WebKit'
|
1708
|
+
|
1709
|
+
#Dorado
|
1710
|
+
- regex: 'Dorado WAP-Browser[/ ](\d+[\.\d]+)'
|
1711
|
+
name: 'Dorado'
|
1712
|
+
version: '$1'
|
1713
|
+
|
1714
|
+
#NetSurf
|
1715
|
+
- regex: 'NetSurf(?:/(\d+[\.\d]+))?'
|
1716
|
+
name: 'NetSurf'
|
1717
|
+
version: '$1'
|
1718
|
+
engine:
|
1719
|
+
default: 'NetSurf'
|
1720
|
+
|
1721
|
+
# Uzbl (https://www.uzbl.org/)
|
1722
|
+
- regex: 'Uzbl'
|
1723
|
+
name: 'Uzbl'
|
1724
|
+
version: ''
|
1725
|
+
|
1726
|
+
# SimpleBrowser (https://github.com/SimpleBrowserDotNet/SimpleBrowser)
|
1727
|
+
- regex: 'SimpleBrowser'
|
1728
|
+
name: 'SimpleBrowser'
|
1729
|
+
version: ''
|
1730
|
+
|
1731
|
+
# Zvu
|
1732
|
+
- regex: 'Zvu(?:/(\d+[\.\d]+))?'
|
1733
|
+
name: 'Zvu'
|
1734
|
+
version: '$1'
|
1735
|
+
engine:
|
1736
|
+
default: 'Gecko'
|