From 4a6dacca0837e0f789679aa62082833a25174d69 Mon Sep 17 00:00:00 2001 From: Naor Peled Date: Sat, 22 Nov 2025 23:31:31 +0200 Subject: [PATCH] feat: add Sogou browser support (#579) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 猫猫 <49067249+NotEvenANeko@users.noreply.github.com> --- src/constants.js | 2 ++ src/parser-browsers.js | 18 +++++++++++ test/acceptance/useragentstrings.yml | 45 ++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+) diff --git a/src/constants.js b/src/constants.js index 5fbc37d..6480e1b 100644 --- a/src/constants.js +++ b/src/constants.js @@ -54,6 +54,7 @@ export const BROWSER_ALIASES_MAP = { 'Samsung Internet for Android': 'samsung_internet', SeaMonkey: 'seamonkey', Sleipnir: 'sleipnir', + 'Sogou Browser': 'sogou', Swing: 'swing', Tizen: 'tizen', 'UC Browser': 'uc', @@ -120,6 +121,7 @@ export const BROWSER_MAP = { samsung_internet: 'Samsung Internet for Android', seamonkey: 'SeaMonkey', sleipnir: 'Sleipnir', + sogou: 'Sogou Browser', swing: 'Swing', tizen: 'Tizen', uc: 'UC Browser', diff --git a/src/parser-browsers.js b/src/parser-browsers.js index 4167be8..a00dbeb 100644 --- a/src/parser-browsers.js +++ b/src/parser-browsers.js @@ -937,6 +937,24 @@ const browsersList = [ return browser; }, }, + { + test: [/sogoumobilebrowser/i, /metasr/i, /se 2\.[x]/i], + describe(ua) { + const browser = { + name: 'Sogou Browser', + }; + const sogouMobileVersion = Utils.getFirstMatch(/(?:sogoumobilebrowser)[\s/](\d+(\.?_?\d+)+)/i, ua); + const chromiumVersion = Utils.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i, ua); + const seVersion = Utils.getFirstMatch(/se ([\d.]+)x/i, ua); + const version = sogouMobileVersion || chromiumVersion || seVersion; + + if (version) { + browser.version = version; + } + + return browser; + }, + }, { test: [/MiuiBrowser/i], describe(ua) { diff --git a/test/acceptance/useragentstrings.yml b/test/acceptance/useragentstrings.yml index 187edd9..de3ae8b 100644 --- a/test/acceptance/useragentstrings.yml +++ b/test/acceptance/useragentstrings.yml @@ -3223,6 +3223,51 @@ type: "mobile" engine: name: "Blink" + Sogou Browser: + - + ua: "Mozilla/5.0 (Linux; Android 5.1.1; SM-G9280 Build/LMY47X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36 SogouMobileBrowser/3.5.3" + spec: + browser: + name: "Sogou Browser" + version: "3.5.3" + os: + name: "Android" + version: "5.1.1" + versionName: "Lollipop" + platform: + type: "mobile" + engine: + name: "Blink" + - + ua: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0" + spec: + browser: + name: "Sogou Browser" + version: "49.0.2623.221" + os: + name: "Windows" + version: "NT 6.1" + versionName: "7" + platform: + type: "desktop" + engine: + name: "Blink" + - + ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_8 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 SogouMobileBrowser/5.22.1" + spec: + browser: + name: "Sogou Browser" + version: "5.22.1" + os: + name: "iOS" + version: "12.4.8" + platform: + type: "mobile" + vendor: "Apple" + model: "iPhone" + engine: + name: "WebKit" + version: "605.1.15" NAVER Whale Browser: - ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Whale/1.0.40.10 Safari/537.36"