diff --git a/src/parser-browsers.js b/src/parser-browsers.js index fd9469f..b1347db 100644 --- a/src/parser-browsers.js +++ b/src/parser-browsers.js @@ -303,6 +303,22 @@ const browsersList = [ return browser; }, }, + { + test: [/\sedg\//i], + describe(ua) { + const browser = { + name: 'Microsoft Edge', + }; + + const version = Utils.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i, ua); + + if (version) { + browser.version = version; + } + + return browser; + }, + }, { test: [/edg([ea]|ios)/i], describe(ua) { diff --git a/src/parser-engines.js b/src/parser-engines.js index 6aa7a31..eaf154e 100644 --- a/src/parser-engines.js +++ b/src/parser-engines.js @@ -10,7 +10,18 @@ export default [ return parser.getBrowserName(true) === 'microsoft edge'; }, describe(ua) { + const isBlinkBased = /\sedg\//i.test(ua); + + // return blink if it's blink-based one + if (isBlinkBased) { + return { + name: 'Blink', + }; + } + + // otherwise match the version and return EdgeHTML const version = Utils.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i, ua); + return { name: 'EdgeHTML', version, diff --git a/test/acceptance/useragentstrings.yml b/test/acceptance/useragentstrings.yml index d3bd9b0..50e97c4 100644 --- a/test/acceptance/useragentstrings.yml +++ b/test/acceptance/useragentstrings.yml @@ -1411,6 +1411,34 @@ engine: name: "EdgeHTML" version: "12.0" + - + ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.48 Safari/537.36 Edg/74.1.96.24" + spec: + browser: + name: "Microsoft Edge" + version: "74.1.96.24" + os: + name: "Windows" + version: "NT 10.0" + versionName: "10" + platform: + type: "desktop" + engine: + name: "Blink" + - + ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3739.0 Safari/537.36 Edg/75.0.109.0" + spec: + browser: + name: "Microsoft Edge" + version: "75.0.109.0" + os: + name: "Windows" + version: "NT 10.0" + versionName: "10" + platform: + type: "desktop" + engine: + name: "Blink" Firefox: - ua: "Mozilla/5.0 (Mobile; rv:26.0) Gecko/26.0 Firefox/26.0"