From 6d485edb9bc1144f7aec106e5f530087da6400b0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 21:05:47 +0000 Subject: [PATCH] Add support for Yowser, Konqueror, UCWEB, and UCMini browsers Co-authored-by: naorpeled <6171622+naorpeled@users.noreply.github.com> --- src/constants.js | 8 +++ src/parser-browsers.js | 62 +++++++++++++++++++++ test/acceptance/useragentstrings.yml | 83 +++++++++++++++++++++++----- 3 files changed, 138 insertions(+), 15 deletions(-) diff --git a/src/constants.js b/src/constants.js index 2d06c97..639b352 100644 --- a/src/constants.js +++ b/src/constants.js @@ -28,6 +28,7 @@ export const BROWSER_ALIASES_MAP = { 'Internet Explorer': 'ie', InternetArchiveCrawler: 'internetarchivecrawler', 'K-Meleon': 'k_meleon', + Konqueror: 'konqueror', LibreWolf: 'librewolf', Linespider: 'linespider', Maxthon: 'maxthon', @@ -62,6 +63,8 @@ export const BROWSER_ALIASES_MAP = { Swing: 'swing', Tizen: 'tizen', 'UC Browser': 'uc', + UCMini: 'ucmini', + UCWEB: 'ucweb', Vivaldi: 'vivaldi', 'WebOS Browser': 'webos', WeChat: 'wechat', @@ -69,6 +72,7 @@ export const BROWSER_ALIASES_MAP = { 'Yandex Browser': 'yandex', YandexBot: 'yandexbot', YouBot: 'youbot', + Yowser: 'yowser', }; export const BROWSER_MAP = { @@ -100,6 +104,7 @@ export const BROWSER_MAP = { ie: 'Internet Explorer', internetarchivecrawler: 'InternetArchiveCrawler', k_meleon: 'K-Meleon', + konqueror: 'Konqueror', librewolf: 'LibreWolf', linespider: 'Linespider', maxthon: 'Maxthon', @@ -133,6 +138,8 @@ export const BROWSER_MAP = { swing: 'Swing', tizen: 'Tizen', uc: 'UC Browser', + ucmini: 'UCMini', + ucweb: 'UCWEB', vivaldi: 'Vivaldi', webos: 'WebOS Browser', wechat: 'WeChat', @@ -140,6 +147,7 @@ export const BROWSER_MAP = { yandex: 'Yandex Browser', yandexbot: 'YandexBot', youbot: 'YouBot', + yowser: 'Yowser', }; export const PLATFORMS_MAP = { diff --git a/src/parser-browsers.js b/src/parser-browsers.js index a6567e1..f62ccdb 100644 --- a/src/parser-browsers.js +++ b/src/parser-browsers.js @@ -425,6 +425,23 @@ const browsersList = [ }, }, + /* Konqueror */ + { + test: [/konqueror/i], + describe(ua) { + const browser = { + name: 'Konqueror', + }; + const version = Utils.getFirstMatch(/(?:konqueror)[\s/](\d+(\.?_?\d+)*)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); + + if (version) { + browser.version = version; + } + + return browser; + }, + }, + /* Opera < 13.0 */ { test: [/opera/i], @@ -578,6 +595,21 @@ const browsersList = [ return browser; }, }, + { + test: [/yowser/i], + describe(ua) { + const browser = { + name: 'Yowser', + }; + const version = Utils.getFirstMatch(/(?:yowser)[\s/](\d+(\.?_?\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); + + if (version) { + browser.version = version; + } + + return browser; + }, + }, { test: [/yabrowser/i], describe(ua) { @@ -593,6 +625,36 @@ const browsersList = [ return browser; }, }, + { + test: [/ucmini/i], + describe(ua) { + const browser = { + name: 'UCMini', + }; + const version = Utils.getFirstMatch(/(?:ucmini)[\s/](\d+(\.?_?\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); + + if (version) { + browser.version = version; + } + + return browser; + }, + }, + { + test: [/ucweb/i], + describe(ua) { + const browser = { + name: 'UCWEB', + }; + const version = Utils.getFirstMatch(/(?:ucweb)[\s/](\d+(\.?_?\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); + + if (version) { + browser.version = version; + } + + return browser; + }, + }, { test: [/ucbrowser/i], describe(ua) { diff --git a/test/acceptance/useragentstrings.yml b/test/acceptance/useragentstrings.yml index a36a875..60151e9 100644 --- a/test/acceptance/useragentstrings.yml +++ b/test/acceptance/useragentstrings.yml @@ -762,21 +762,6 @@ engine: name: "Blink" Yandex Browser: - - - ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 YaBrowser/15.4.2272.3420 (beta) Yowser/2.0 Safari/537.36" - spec: - browser: - name: "Yandex Browser" - version: "15.4.2272.3420" - os: - name: "macOS" - version: "10.10.3" - versionName: "Yosemite" - platform: - type: "desktop" - vendor: "Apple" - engine: - name: "Blink" - ua: "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 YaBrowser/15.4.2272.3608.00 Mobile Safari/537.36" spec: @@ -808,6 +793,36 @@ engine: name: "WebKit" version: "605.1.15" + Yowser: + - + ua: "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 YaBrowser/18.1.1.839 Yowser/2.5 Safari/537.36" + spec: + browser: + name: "Yowser" + version: "2.5" + os: + name: "Windows" + version: "NT 6.2" + versionName: "8" + platform: + type: "desktop" + engine: + name: "Blink" + - + ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 YaBrowser/15.4.2272.3420 (beta) Yowser/2.0 Safari/537.36" + spec: + browser: + name: "Yowser" + version: "2.0" + os: + name: "macOS" + version: "10.10.3" + versionName: "Yosemite" + platform: + type: "desktop" + vendor: "Apple" + engine: + name: "Blink" Safari: - ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2" @@ -3250,6 +3265,32 @@ engine: name: "WebKit" version: "537.51.1" + UCMini: + - + ua: "UCWEB/2.0 (Java; U; MIDP-2.0; Nokia203/20.37) U2/1.0.0 UCMini/11.1.3.1128 (SpeedMode; Proxy; Android 6.0.1; HTC_Desire_601_dual_sim ) U2/1.0.0 Mobile" + spec: + browser: + name: "UCMini" + version: "11.1.3.1128" + os: + name: "Android" + version: "6.0.1" + versionName: "Marshmallow" + platform: + type: "mobile" + vendor: "Nokia" + engine: {} + UCWEB: + - + ua: "UCWEB/2.0 (Java; U; MIDP-2.0; en-US; MicroMax_Q5) U2/1.0.0 UCBrowser/8.7.1.234 U2/1.0.0 Mobile" + spec: + browser: + name: "UCWEB" + version: "2.0" + os: {} + platform: + type: "mobile" + engine: {} QupZilla: - ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.1 (KHTML, like Gecko) QupZilla/1.8.2 Safari/538.1" @@ -3371,6 +3412,18 @@ engine: name: "Gecko" version: "20140105" + Konqueror: + - + ua: "Mozilla/5.0 (X11; Linux) KHTML/4.9.1 (like Gecko) Konqueror/4.9" + spec: + browser: + name: "Konqueror" + version: "4.9" + os: + name: "Linux" + platform: + type: "desktop" + engine: {} Chromium: - ua: "Mozilla/5.0 (Linux; Ubuntu 14.04 like Android 4.4) AppleWebKit/537.36 Chromium/35.0.1870.2 Mobile Safari/537.36"