From d571859b2e1f0d323a584eefdd637e4af1696582 Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Sat, 2 Nov 2024 20:08:10 +0700 Subject: [PATCH] Improve browser detection: `Comodo Dragon`, or simply `Dragon` --- src/enums/ua-parser-enums.js | 2 +- src/main/ua-parser.js | 6 ++---- test/specs/browser-all.json | 12 +++++++++++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/enums/ua-parser-enums.js b/src/enums/ua-parser-enums.js index be4b2af..4ba8525 100644 --- a/src/enums/ua-parser-enums.js +++ b/src/enums/ua-parser-enums.js @@ -32,11 +32,11 @@ const Browser = Object.freeze({ CHROMIUM: 'Chromium', COBALT: 'Cobalt', COC_COC: 'Coc Coc', - COMODO_DRAGON: 'Comodo Dragon', CONKEROR: 'Conkeror', DILLO: 'Dillo', DOLPHIN: 'Dolphin', DORIS: 'Doris', + DRAGON: 'Dragon', DUCKDUCKGO: 'DuckDuckGo', EDGE: 'Edge', EPIPHANY: 'Epiphany', diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index 937d197..7120be2 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -329,8 +329,8 @@ /(?:ms|\()(ie) ([\w\.]+)/i, // Internet Explorer // Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon - /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio)\/([-\w\.]+)/i, - // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio + /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon)\/([-\w\.]+)/i, + // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon /(heytap|ovi)browser\/([\d\.]+)/i, // HeyTap/Ovi /(weibo)__([\d\.]+)/i // Weibo ], [NAME, VERSION], [ @@ -376,8 +376,6 @@ ], [[NAME, /(.+)/, '$1' + SUFFIX_BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser /samsungbrowser\/([\w\.]+)/i // Samsung Internet ], [VERSION, [NAME, SAMSUNG + ' Internet']], [ - /(comodo_dragon)\/([\w\.]+)/i // Comodo Dragon - ], [[NAME, /_/g, ' '], VERSION], [ /metasr[\/ ]?([\d\.]+)/i // Sogou Explorer ], [VERSION, [NAME, SOGOU + ' Explorer']], [ /(sogou)mo\w+\/([\d\.]+)/i // Sogou Mobile diff --git a/test/specs/browser-all.json b/test/specs/browser-all.json index b8fd74b..abafca7 100644 --- a/test/specs/browser-all.json +++ b/test/specs/browser-all.json @@ -406,11 +406,21 @@ "ua" : "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/535.7 (KHTML, like Gecko) Comodo_Dragon/16.1.1.0 Chrome/16.0.912.63 Safari/535.7", "expect" : { - "name" : "Comodo Dragon", + "name" : "Dragon", "version" : "16.1.1.0", "major" : "16" } }, + { + "desc" : "Comodo Dragon", + "ua" : "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Dragon/98.0.4758.102 Chrome/98.0.4758.102 Safari/537.36", + "expect" : + { + "name" : "Dragon", + "version" : "98.0.4758.102", + "major" : "98" + } + }, { "desc" : "Conkeror", "ua" : "Mozilla/5.0 (X11; Linux x86_64; rv:6.0.1) Gecko/20110831 conkeror/0.9.3",