diff --git a/src/constants.js b/src/constants.js index 9f3d205..5fbc37d 100644 --- a/src/constants.js +++ b/src/constants.js @@ -26,6 +26,7 @@ export const BROWSER_ALIASES_MAP = { 'Internet Explorer': 'ie', InternetArchiveCrawler: 'internetarchivecrawler', 'K-Meleon': 'k_meleon', + LibreWolf: 'librewolf', Maxthon: 'maxthon', 'Meta-ExternalAds': 'meta_externalads', 'Meta-ExternalAgent': 'meta_externalagent', @@ -92,6 +93,7 @@ export const BROWSER_MAP = { ie: 'Internet Explorer', internetarchivecrawler: 'InternetArchiveCrawler', k_meleon: 'K-Meleon', + librewolf: 'LibreWolf', maxthon: 'Maxthon', meta_externalads: 'Meta-ExternalAds', meta_externalagent: 'Meta-ExternalAgent', diff --git a/src/parser-browsers.js b/src/parser-browsers.js index f0ba311..4167be8 100644 --- a/src/parser-browsers.js +++ b/src/parser-browsers.js @@ -893,12 +893,27 @@ const browsersList = [ }, }, { - test: [/firefox|iceweasel|fxios|librewolf/i], + test: [/librewolf/i], + describe(ua) { + const browser = { + name: 'LibreWolf', + }; + const version = Utils.getFirstMatch(/(?:librewolf)[\s/](\d+(\.?_?\d+)+)/i, ua); + + if (version) { + browser.version = version; + } + + return browser; + }, + }, + { + test: [/firefox|iceweasel|fxios/i], describe(ua) { const browser = { name: 'Firefox', }; - const version = Utils.getFirstMatch(/(?:firefox|iceweasel|fxios|librewolf)[\s/](\d+(\.?_?\d+)+)/i, ua); + const version = Utils.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i, ua); if (version) { browser.version = version; diff --git a/test/acceptance/useragentstrings.yml b/test/acceptance/useragentstrings.yml index 137362c..187edd9 100644 --- a/test/acceptance/useragentstrings.yml +++ b/test/acceptance/useragentstrings.yml @@ -1915,11 +1915,12 @@ engine: name: "WebKit" version: "605.1.15" + LibreWolf: - ua: "Mozilla/5.0 (X11; Linux x86_64; rv:124.0) Gecko/20100101 LibreWolf/124.0.2" spec: browser: - name: "Firefox" + name: "LibreWolf" version: "124.0.2" os: name: "Linux"