diff --git a/src/parser-engines.js b/src/parser-engines.js index 7d9fbdd..12dcb57 100644 --- a/src/parser-engines.js +++ b/src/parser-engines.js @@ -11,7 +11,20 @@ export default [ return parser.getBrowserName(true) === 'microsoft edge'; }, describe(ua) { - const isBlinkBased = /\sedg\//i.test(ua); + // Edge for iOS runs on WebKit, like every browser on iOS + if (/\sedgios\//i.test(ua)) { + const engine = { + name: ENGINE_MAP.WebKit, + }; + const version = Utils.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i, ua); + if (version) { + engine.version = version; + } + return engine; + } + + // Chromium-based Edge: Edg/ on desktop, EdgA/ on Android + const isBlinkBased = /\sedga?\//i.test(ua); // return blink if it's blink-based one if (isBlinkBased) { diff --git a/test/acceptance/useragentstrings.yml b/test/acceptance/useragentstrings.yml index cc844e2..841ecb0 100644 --- a/test/acceptance/useragentstrings.yml +++ b/test/acceptance/useragentstrings.yml @@ -1746,8 +1746,20 @@ platform: type: "mobile" engine: - name: "EdgeHTML" - version: "" + name: "Blink" + - + ua: 'Mozilla/5.0 (Linux; Android 10; SM-A515W) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.116 Mobile Safari/537.36 EdgA/46.01.4.5140' + spec: + browser: + name: "Microsoft Edge" + version: "46.01.4.5140" + os: + name: "Android" + version: "10" + platform: + type: "mobile" + engine: + name: "Blink" - ua: 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) Mobile/14F89 Safari/603.2.4 EdgiOS/41.1.35.1' spec: @@ -1762,8 +1774,8 @@ model: "iPhone" vendor: "Apple" engine: - name: "EdgeHTML" - version: "" + name: "WebKit" + version: "603.2.4" - ua: "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0" spec: