From 04ece2212da7f3d0bca8c3073568f9a21cacd805 Mon Sep 17 00:00:00 2001 From: everget Date: Wed, 18 Oct 2017 22:04:52 +0300 Subject: [PATCH 1/3] Correct Microsoft Edge' detection on iOS and Android --- src/bowser.js | 8 ++++---- src/useragents.js | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/bowser.js b/src/bowser.js index aff5705..f7bbca7 100644 --- a/src/bowser.js +++ b/src/bowser.js @@ -42,7 +42,7 @@ , windows = !windowsphone && /windows/i.test(ua) , mac = !iosdevice && !silk && /macintosh/i.test(ua) , linux = !android && !sailfish && !tizen && !webos && /linux/i.test(ua) - , edgeVersion = getFirstMatch(/edge\/(\d+(\.\d+)?)/i) + , edgeVersion = getSecondMatch(/edg([ea]|ios)\/(\d+(\.\d+)?)/i) , versionIdentifier = getFirstMatch(/version\/(\d+(\.\d+)?)/i) , tablet = /tablet/i.test(ua) && !/tablet pc/i.test(ua) , mobile = !tablet && /[^-]mobi/i.test(ua) @@ -157,7 +157,7 @@ , chrome: t , version: getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i) } - } else if (/chrome.+? edge/i.test(ua)) { + } else if (/edg([ea]|ios)/i.test(ua)) { result = { name: 'Microsoft Edge' , msedge: t @@ -329,10 +329,10 @@ } // set OS flags for platforms that have multiple browsers - if (!result.windowsphone && !result.msedge && (android || result.silk)) { + if (!result.windowsphone && (android || result.silk)) { result.android = t result.osname = 'Android' - } else if (!result.windowsphone && !result.msedge && iosdevice) { + } else if (!result.windowsphone && iosdevice) { result[iosdevice] = t result.ios = t result.osname = 'iOS' diff --git a/src/useragents.js b/src/useragents.js index 8fa9091..070b9f9 100644 --- a/src/useragents.js +++ b/src/useragents.js @@ -816,6 +816,25 @@ module.exports.useragents = { , osversion: '10' , a: true } + , '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': { + osname: 'iOS' + , msedge: true + , version: '41.1' + , ios: true + , iphone: true + , mobile: true + , osversion: '10.3.2' + , a: true + } + , 'Mozilla/5.0 (Linux; Android 8.0; Pixel XL Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.0 Mobile Safari/537.36 EdgA/41.1.35.1': { + osname: 'Android' + , msedge: true + , version: '41.1' + , android: true + , mobile: true + , osversion: '8.0' + , a: true + } } , Firefox: { 'Mozilla/5.0 (Mobile; rv:26.0) Gecko/26.0 Firefox/26.0': { From be99337484ed3ee82168f713c1b823b9d51e8cf8 Mon Sep 17 00:00:00 2001 From: Denis Demchenko Date: Fri, 20 Oct 2017 15:06:30 +0300 Subject: [PATCH 2/3] Bump version --- bower.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bower.json b/bower.json index 6ce09c6..e25c8a0 100644 --- a/bower.json +++ b/bower.json @@ -11,7 +11,7 @@ "ender", "sniff" ], - "version": "1.8.0", + "version": "1.8.1", "homepage": "https://github.com/lancedikson/bowser", "scripts": [ "src/bowser.js" diff --git a/package.json b/package.json index cc62cac..7e649ea 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bowser", - "version": "1.8.0", + "version": "1.8.1", "description": "Lightweight browser detector", "keywords": [ "browser", From 8855d5ecd1b63eb2bb078943e00ee34fc80c0c62 Mon Sep 17 00:00:00 2001 From: Denis Demchenko Date: Fri, 20 Oct 2017 15:07:31 +0300 Subject: [PATCH 3/3] Write changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 940262a..074390a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Bowser Changelog +### 1.8.1 (October 7, 2017) +- [FIX] Fix detection of MS Edge on Android and iOS (#201) + ### 1.8.0 (October 7, 2017) - [ADD] Add `osname` into result object (#200)