Skip to content

Commit f54d3fa

Browse files
committed
Fix #513 - Add new browser: DuckDuckGo
1 parent 21fe767 commit f54d3fa

File tree

4 files changed

+33
-13
lines changed

4 files changed

+33
-13
lines changed

readme.md

+12-11
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,18 @@ JavaScript library to detect Browser, Engine, OS, CPU, and Device type/model fro
3838
2345Explorer, 360 Browser, Amaya, Android Browser, Arora, Avant, Avast, AVG,
3939
BIDUBrowser, Baidu, Basilisk, Blazer, Bolt, Brave, Bowser, Camino, Chimera,
4040
Chrome Headless, Chrome WebView, Chrome, Chromium, Comodo Dragon, Dillo,
41-
Dolphin, Doris, Edge, Electron, Epiphany, Facebook, Falkon, Fennec, Firebird,
42-
Firefox [Reality], Flock, Flow, GSA, GoBrowser, Huawei Browser, ICE Browser, IE,
43-
IEMobile, IceApe, IceCat, IceDragon, Iceweasel, Instagram, Iridium, Iron, Jasmine,
44-
K-Meleon, Kindle, Klar, Konqueror, LBBROWSER, Line, LinkedIn, Links, Lunascape, Lynx,
45-
MIUI Browser, Maemo Browser, Maemo, Maxthon, MetaSr Midori, Minimo, Mobile Safari,
46-
Mosaic, Mozilla, NetFront, NetSurf, Netfront, Netscape, NokiaBrowser, Obigo,
47-
Oculus Browser, OmniWeb, Opera Coast, Opera [Mini/Mobi/Tablet], PaleMoon, PhantomJS,
48-
Phoenix, Polaris, Puffin, QQ, QQBrowser, QQBrowserLite, Quark, QupZilla, RockMelt,
49-
Safari, Sailfish Browser, Samsung Browser, SeaMonkey, Silk, Skyfire, Sleipnir, Slim,
50-
SlimBrowser, Swiftfox, Tesla, Tizen Browser, UCBrowser, UP.Browser, Vivaldi,
51-
Waterfox, WeChat, Weibo, Yandex, baidu, iCab, w3m, Whale Browser...
41+
Dolphin, Doris, DuckDuckGo, Edge, Electron, Epiphany, Facebook, Falkon, Fennec,
42+
Firebird, Firefox [Reality], Flock, Flow, GSA, GoBrowser, Huawei Browser,
43+
ICE Browser, IE, IEMobile, IceApe, IceCat, IceDragon, Iceweasel, Instagram,
44+
Iridium, Iron, Jasmine, K-Meleon, Kindle, Klar, Konqueror, LBBROWSER, Line,
45+
LinkedIn, Links, Lunascape, Lynx, MIUI Browser, Maemo Browser, Maemo, Maxthon,
46+
MetaSr Midori, Minimo, Mobile Safari, Mosaic, Mozilla, NetFront, NetSurf, Netfront,
47+
Netscape, NokiaBrowser, Obigo, Oculus Browser, OmniWeb, Opera Coast,
48+
Opera [Mini/Mobi/Tablet], PaleMoon, PhantomJS, Phoenix, Polaris, Puffin, QQ,
49+
QQBrowser, QQBrowserLite, Quark, QupZilla, RockMelt, Safari, Sailfish Browser,
50+
Samsung Browser, SeaMonkey, Silk, Skyfire, Sleipnir, Slim, SlimBrowser, Swiftfox,
51+
Tesla, Tizen Browser, UCBrowser, UP.Browser, Vivaldi, Waterfox, WeChat, Weibo,
52+
Yandex, baidu, iCab, w3m, Whale Browser...
5253

5354
# 'browser.version' determined dynamically
5455
```

src/ua-parser.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@
231231
/(?:ms|\()(ie) ([\w\.]+)/i, // Internet Explorer
232232

233233
// Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon
234-
/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i,
234+
/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,
235235
// Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ
236236
/(weibo)__([\d\.]+)/i // Weibo
237237
], [NAME, VERSION], [
@@ -658,7 +658,7 @@
658658
], [MODEL, [TYPE, TABLET]], [
659659
/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i // Unidentifiable Tablet
660660
], [[TYPE, TABLET]], [
661-
/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile
661+
/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile
662662
], [[TYPE, MOBILE]], [
663663
/(android[-\w\. ]{0,9});.+buil/i // Generic Android Device
664664
], [MODEL, [VENDOR, 'Generic']]

test/browser-test.json

+10
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,16 @@
299299
"major" : "1"
300300
}
301301
},
302+
{
303+
"desc" : "DuckDuckGo",
304+
"ua" : "Mozilla/5.0 (Linux; Android 8.1.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile DuckDuckGo/5 Safari/537.36",
305+
"expect" :
306+
{
307+
"name" : "DuckDuckGo",
308+
"version" : "5",
309+
"major" : "5"
310+
}
311+
},
302312
{
303313
"desc" : "Epiphany",
304314
"ua" : "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7) Gecko/20040628 Epiphany/1.2.6",

test/device-test.json

+9
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,15 @@
196196
"type": "undefined"
197197
}
198198
},
199+
{
200+
"desc": "Mobile (DuckDuckGo mobile browser)",
201+
"ua": "Mozilla/5.0 (Linux; Android 8.1.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile DuckDuckGo/5 Safari/537.36",
202+
"expect": {
203+
"vendor": "undefined",
204+
"model": "undefined",
205+
"type": "mobile"
206+
}
207+
},
199208
{
200209
"desc": "Essential PH-1",
201210
"ua": "Mozilla/5.0 (Linux; Android 9; PH-1 Build/PPR1.180905.036) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.86 Mobile Safari/537.36",

0 commit comments

Comments
 (0)