From 27c7f5b294eee2f7c829f222beb41643ca43fc5b Mon Sep 17 00:00:00 2001 From: Denis Demchenko Date: Mon, 19 Sep 2016 22:55:05 +0300 Subject: [PATCH] Fix mobile Opera's version detection refers to #158 --- src/bowser.js | 10 +++++++++- src/useragents.js | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/bowser.js b/src/bowser.js index 9062bf8..d69268f 100644 --- a/src/bowser.js +++ b/src/bowser.js @@ -49,12 +49,20 @@ , xbox = /xbox/i.test(ua) , result - if (/opera|opr|opios/i.test(ua)) { + if (/opera/i.test(ua)) { + // an old Opera result = { name: 'Opera' , opera: t , version: versionIdentifier || getFirstMatch(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i) } + } else if (/opr|opios/i.test(ua)) { + // a new Opera + result = { + name: 'Opera' + , opera: t + , version: getFirstMatch(/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i) || versionIdentifier + } } else if (/SamsungBrowser/i.test(ua)) { result = { diff --git a/src/useragents.js b/src/useragents.js index 2303d08..e30aea3 100644 --- a/src/useragents.js +++ b/src/useragents.js @@ -308,6 +308,25 @@ module.exports.useragents = { , linux: true , c: true } + , 'Mozilla/5.0 (iPod touch; CPU iPhone OS 9_3_4 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) OPiOS/14.0.0.104835 Mobile/13G35 Safari/9537.53': { + opera: true + , version: '14.0' + , mobile: true + , ipod: true + , ios: true + , a: true + , osversion: '9.3.4' + , webkit: true + } + , 'Mozilla/5.0 (Linux; U; Android 6.0; R1 HD Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/52.0.2743.98 Mobile Safari/537.36 OPR/18.0.2254.106542': { + opera: true + , version: '18.0' + , blink: true + , mobile: true + , android: true + , a: true + , osversion: '6.0' + } } , 'Opera Coast': { 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Coast/5.02.99991 Mobile/13E238 Safari/7534.48.3': {