Merge branch 'master' into fix/util-extend

* master:
  Meteor fixes
  fix it for opera mini 8 above on iphone
  Add name to UA-Parser
  Fix image #150
  Increment build version: 0.7.10
  Check for tablet first
  Fix #153 mistaken Search phrase for Arch OS
  Seems to fix the issue for specific UA found in #159
  UAParser is exposed globally to the window object. It can be used directly.
  Fix detection of Firefox on iOS.
  Added hasOwnProperty check
  Generalize the check for an unidentifiable mobile or tablet to correctly categorize unidentifiable Android smartphones as "mobile".
  travis update: node_js stable, cache node_modules, sudo false
  Detect Nexus 6 as Motorola only.
  Add Playstation 4 support.
  Added Nexus 6 detection
  Added DEVICE regular expressions for "Samsung galaxy S6" and "Samsung Galaxy S6 Edge" devices + test cases
  Adding PhantomJS (http://phantomjs.org/)
  Add Sleipnir
This commit is contained in:
Malash 2016-02-22 15:15:09 +08:00
commit d929c3e508
13 changed files with 191 additions and 121 deletions

View File

@ -1,5 +1,13 @@
language: node_js language: node_js
node_js: node_js:
- "0.10" - stable
- "0.10"
notifications: notifications:
email: false email: false
cache:
directories:
- node_modules
sudo: false

View File

@ -1,6 +1,6 @@
{ {
"name": "ua-parser-js", "name": "ua-parser-js",
"version": "0.7.9", "version": "0.7.10",
"authors": [ "authors": [
"Faisal Salman <fyzlman@gmail.com>" "Faisal Salman <fyzlman@gmail.com>"
], ],

View File

@ -1,6 +1,6 @@
{ {
"name": "ua-parser-js", "name": "ua-parser-js",
"version": "0.7.9", "version": "0.7.10",
"description": "Lightweight JavaScript-based user-agent string parser", "description": "Lightweight JavaScript-based user-agent string parser",
"keywords": [ "keywords": [
"user-agent", "user-agent",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,12 +1,12 @@
Package.describe({ Package.describe({
name: 'faisalman:ua-parser-js', name: 'faisalman:ua-parser-js',
version: '0.7.9', version: '0.7.10',
summary: 'Lightweight JavaScript-based user-agent string parser', summary: 'Lightweight JavaScript-based user-agent string parser',
git: 'https://github.com/faisalman/ua-parser-js.git', git: 'https://github.com/faisalman/ua-parser-js.git',
documentation: 'readme.md' documentation: 'readme.md'
}); });
Package.on_use(function (api) { Package.onUse(function (api) {
api.export("UAParser");
api.addFiles("src/ua-parser.js"); api.addFiles("src/ua-parser.js");
api.export("UAParser");
}); });

View File

@ -1,7 +1,7 @@
{ {
"title": "UAParser.js", "title": "UAParser.js",
"name": "ua-parser-js", "name": "ua-parser-js",
"version": "0.7.9", "version": "0.7.10",
"author": "Faisal Salman <fyzlman@gmail.com> (http://faisalman.com)", "author": "Faisal Salman <fyzlman@gmail.com> (http://faisalman.com)",
"description": "Lightweight JavaScript-based user-agent string parser", "description": "Lightweight JavaScript-based user-agent string parser",
"keywords": [ "keywords": [

View File

@ -13,7 +13,7 @@ Lightweight JavaScript-based User-Agent string parser. Supports browser & node.j
Extract detailed type of web browser, layout engine, operating system, cpu architecture, and device type/model purely from user-agent string with relatively lightweight footprint (~11KB minified / ~4KB gzipped). Written in vanilla js, which means it doesn't depends on any other library. Extract detailed type of web browser, layout engine, operating system, cpu architecture, and device type/model purely from user-agent string with relatively lightweight footprint (~11KB minified / ~4KB gzipped). Written in vanilla js, which means it doesn't depends on any other library.
![It's over 9000](https://pbs.twimg.com/media/A9LpEG6CIAA5VrT.jpg) ![It's over 9000](https://raw.githubusercontent.com/faisalman/ua-parser-js/gh-pages/images/over9000.jpg)
## Methods ## Methods
@ -28,8 +28,8 @@ Firebird, Firefox, Flock, GoBrowser, iCab, ICE Browser, IceApe, IceCat, IceDrago
Iceweasel, IE [Mobile], Iron, Jasmine, K-Meleon, Konqueror, Kindle, Links, Iceweasel, IE [Mobile], Iron, Jasmine, K-Meleon, Konqueror, Kindle, Links,
Lunascape, Lynx, Maemo, Maxthon, Midori, Minimo, MIUI Browser, [Mobile] Safari, Lunascape, Lynx, Maemo, Maxthon, Midori, Minimo, MIUI Browser, [Mobile] Safari,
Mosaic, Mozilla, Netfront, Netscape, NetSurf, Nokia, OmniWeb, Opera [Mini/Mobi/Tablet], Mosaic, Mozilla, Netfront, Netscape, NetSurf, Nokia, OmniWeb, Opera [Mini/Mobi/Tablet],
Phoenix, Polaris, QQBrowser, RockMelt, Silk, Skyfire, SeaMonkey, SlimBrowser, Swiftfox, PhantomJS, Phoenix, Polaris, QQBrowser, RockMelt, Silk, Skyfire, SeaMonkey, SlimBrowser,
Tizen, UCBrowser, Vivaldi, w3m, Yandex Swiftfox, Tizen, UCBrowser, Vivaldi, w3m, Yandex
# 'browser.version' determined dynamically # 'browser.version' determined dynamically
``` ```

View File

@ -1,5 +1,5 @@
/** /**
* UAParser.js v0.7.9 * UAParser.js v0.7.10
* Lightweight JavaScript-based User-Agent string parser * Lightweight JavaScript-based User-Agent string parser
* https://github.com/faisalman/ua-parser-js * https://github.com/faisalman/ua-parser-js
* *
@ -16,7 +16,7 @@
///////////// /////////////
var LIBVERSION = '0.7.9', var LIBVERSION = '0.7.10',
EMPTY = '', EMPTY = '',
UNKNOWN = '?', UNKNOWN = '?',
FUNC_TYPE = 'function', FUNC_TYPE = 'function',
@ -92,11 +92,13 @@
if (typeof result === UNDEF_TYPE) { if (typeof result === UNDEF_TYPE) {
result = {}; result = {};
for (p in props) { for (p in props) {
q = props[p]; if (props.hasOwnProperty(p)){
if (typeof q === OBJ_TYPE) { q = props[p];
result[q[0]] = undefined; if (typeof q === OBJ_TYPE) {
} else { result[q[0]] = undefined;
result[q] = undefined; } else {
result[q] = undefined;
}
} }
} }
} }
@ -234,9 +236,11 @@
/(opera\s[mobiletab]+).+version\/([\w\.-]+)/i, // Opera Mobi/Tablet /(opera\s[mobiletab]+).+version\/([\w\.-]+)/i, // Opera Mobi/Tablet
/(opera).+version\/([\w\.]+)/i, // Opera > 9.80 /(opera).+version\/([\w\.]+)/i, // Opera > 9.80
/(opera)[\/\s]+([\w\.]+)/i // Opera < 9.80 /(opera)[\/\s]+([\w\.]+)/i // Opera < 9.80
], [NAME, VERSION], [ ], [NAME, VERSION], [
/(OPiOS)[\/\s]+([\w\.]+)/i // Opera mini on iphone >= 8.0
], [[NAME, 'Opera Mini'], VERSION], [
/\s(opr)\/([\w\.]+)/i // Opera Webkit /\s(opr)\/([\w\.]+)/i // Opera Webkit
], [[NAME, 'Opera'], VERSION], [ ], [[NAME, 'Opera'], VERSION], [
@ -252,8 +256,8 @@
// Webkit/KHTML based // Webkit/KHTML based
/(rekonq)\/([\w\.]+)*/i, // Rekonq /(rekonq)\/([\w\.]+)*/i, // Rekonq
/(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium)\/([\w\.-]+)/i /(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs)\/([\w\.-]+)/i
// Chromium/Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium // Chromium/Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS
], [NAME, VERSION], [ ], [NAME, VERSION], [
/(trident).+rv[:\s]([\w\.]+).+like\sgecko/i // IE11 /(trident).+rv[:\s]([\w\.]+).+like\sgecko/i // IE11
@ -295,6 +299,9 @@
/FBAV\/([\w\.]+);/i // Facebook App for iOS /FBAV\/([\w\.]+);/i // Facebook App for iOS
], [VERSION, [NAME, 'Facebook']], [ ], [VERSION, [NAME, 'Facebook']], [
/fxios\/([\w\.-]+)/i // Firefox for iOS
], [VERSION, [NAME, 'Firefox']], [
/version\/([\w\.]+).+?mobile\/\w+\s(safari)/i // Mobile Safari /version\/([\w\.]+).+?mobile\/\w+\s(safari)/i // Mobile Safari
], [VERSION, [NAME, 'Mobile Safari']], [ ], [VERSION, [NAME, 'Mobile Safari']], [
@ -311,8 +318,6 @@
// Gecko based // Gecko based
/(navigator|netscape)\/([\w\.-]+)/i // Netscape /(navigator|netscape)\/([\w\.-]+)/i // Netscape
], [[NAME, 'Netscape'], VERSION], [ ], [[NAME, 'Netscape'], VERSION], [
/fxios\/([\w\.-]+)/i // Firefox for iOS
], [VERSION, [NAME, 'Firefox']], [
/(swiftfox)/i, // Swiftfox /(swiftfox)/i, // Swiftfox
/(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i,
// IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror
@ -321,8 +326,8 @@
/(mozilla)\/([\w\.]+).+rv\:.+gecko\/\d+/i, // Mozilla /(mozilla)\/([\w\.]+).+rv\:.+gecko\/\d+/i, // Mozilla
// Other // Other
/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf)[\/\s]?([\w\.]+)/i, /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\/\s]?([\w\.]+)/i,
// Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir
/(links)\s\(([\w\.]+)/i, // Links /(links)\s\(([\w\.]+)/i, // Links
/(gobrowser)\/?([\w\.]+)*/i, // GoBrowser /(gobrowser)\/?([\w\.]+)*/i, // GoBrowser
/(ice\s?browser)\/v?([\w\._]+)/i, // ICE Browser /(ice\s?browser)\/v?([\w\._]+)/i, // ICE Browser
@ -520,7 +525,7 @@
/android.+;\s(shield)\sbuild/i // Nvidia /android.+;\s(shield)\sbuild/i // Nvidia
], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [ ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [
/(playstation\s[3portablevi]+)/i // Playstation /(playstation\s[34portablevi]+)/i // Playstation
], [MODEL, [VENDOR, 'Sony'], [TYPE, CONSOLE]], [ ], [MODEL, [VENDOR, 'Sony'], [TYPE, CONSOLE]], [
/(sprint\s(\w+))/i // Sprint Phones /(sprint\s(\w+))/i // Sprint Phones
@ -546,7 +551,8 @@
// Motorola // Motorola
/\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?(:?\s4g)?)[\w\s]+build\//i, /\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?(:?\s4g)?)[\w\s]+build\//i,
/mot[\s-]?(\w+)*/i, /mot[\s-]?(\w+)*/i,
/(XT\d{3,4}) build\//i /(XT\d{3,4}) build\//i,
/(nexus\s[6])/i
], [MODEL, [VENDOR, 'Motorola'], [TYPE, MOBILE]], [ ], [MODEL, [VENDOR, 'Motorola'], [TYPE, MOBILE]], [
/android.+\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i /android.+\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i
], [MODEL, [VENDOR, 'Motorola'], [TYPE, TABLET]], [ ], [MODEL, [VENDOR, 'Motorola'], [TYPE, TABLET]], [
@ -598,7 +604,8 @@
/android.+(mi[\s\-_]*(?:one|one[\s_]plus)?[\s_]*(?:\d\w)?)\s+build/i // Xiaomi Mi /android.+(mi[\s\-_]*(?:one|one[\s_]plus)?[\s_]*(?:\d\w)?)\s+build/i // Xiaomi Mi
], [[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, MOBILE]], [ ], [[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, MOBILE]], [
/(mobile|tablet);.+rv\:.+gecko\//i // Unidentifiable /\s(tablet)[;\/\s]/i, // Unidentifiable Tablet
/\s(mobile)[;\/\s]/i // Unidentifiable Mobile
], [[TYPE, util.lowerize], VENDOR, MODEL] ], [[TYPE, util.lowerize], VENDOR, MODEL]
/*////////////////////////// /*//////////////////////////
@ -707,12 +714,12 @@
], [[NAME, 'Firefox OS'], VERSION], [ ], [[NAME, 'Firefox OS'], VERSION], [
// Console // Console
/(nintendo|playstation)\s([wids3portablevu]+)/i, // Nintendo/Playstation /(nintendo|playstation)\s([wids34portablevu]+)/i, // Nintendo/Playstation
// GNU/Linux based // GNU/Linux based
/(mint)[\/\s\(]?(\w+)*/i, // Mint /(mint)[\/\s\(]?(\w+)*/i, // Mint
/(mageia|vectorlinux)[;\s]/i, // Mageia/VectorLinux /(mageia|vectorlinux)[;\s]/i, // Mageia/VectorLinux
/(joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?([\w\.-]+)*/i, /(joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|(?=\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?([\w\.-]+)*/i,
// Joli/Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware // Joli/Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware
// Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus // Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus
/(hurd|linux)\s?([\w\.]+)*/i, // Hurd/Linux /(hurd|linux)\s?([\w\.]+)*/i, // Hurd/Linux
@ -730,7 +737,7 @@
/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]+)*/i // FreeBSD/NetBSD/OpenBSD/PC-BSD/DragonFly /\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]+)*/i // FreeBSD/NetBSD/OpenBSD/PC-BSD/DragonFly
], [NAME, VERSION],[ ], [NAME, VERSION],[
/(ip[honead]+)(?:.*os\s*([\w]+)*\slike\smac|;\sopera)/i // iOS /(ip[honead]+)(?:.*os\s([\w]+)*\slike\smac|;\sopera)/i // iOS
], [[NAME, 'iOS'], [VERSION, /_/g, '.']], [ ], [[NAME, 'iOS'], [VERSION, /_/g, '.']], [
/(mac\sos\sx)\s?([\w\s\.]+\w)*/i, /(mac\sos\sx)\s?([\w\s\.]+\w)*/i,
@ -845,7 +852,7 @@
} else { } else {
// requirejs env (optional) // requirejs env (optional)
if (typeof(define) === FUNC_TYPE && define.amd) { if (typeof(define) === FUNC_TYPE && define.amd) {
define(function () { define("ua-parser-js", [], function () {
return UAParser; return UAParser;
}); });
} else { } else {

View File

@ -2,7 +2,7 @@
{ {
"desc" : "Android Browser on HTC Flyer (P510E)", "desc" : "Android Browser on HTC Flyer (P510E)",
"ua" : "Mozilla/5.0 (Linux; U; Android 3.2.1; ru-ru; HTC Flyer P510e Build/HTK75C) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13", "ua" : "Mozilla/5.0 (Linux; U; Android 3.2.1; ru-ru; HTC Flyer P510e Build/HTK75C) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
"expect" : "expect" :
{ {
"name" : "Android Browser", "name" : "Android Browser",
"version" : "4.0", "version" : "4.0",
@ -12,7 +12,7 @@
{ {
"desc" : "Android Browser on Huawei Honor Glory II (U9508)", "desc" : "Android Browser on Huawei Honor Glory II (U9508)",
"ua" : "Mozilla/5.0 (Linux; U; Android 4.0.4; ru-by; HUAWEI U9508 Build/HuaweiU9508) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 ACHEETAHI/2100050044", "ua" : "Mozilla/5.0 (Linux; U; Android 4.0.4; ru-by; HUAWEI U9508 Build/HuaweiU9508) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 ACHEETAHI/2100050044",
"expect" : "expect" :
{ {
"name" : "Android Browser", "name" : "Android Browser",
"version" : "4.0", "version" : "4.0",
@ -22,7 +22,7 @@
{ {
"desc" : "Arora", "desc" : "Arora",
"ua" : "Mozilla/5.0 (Windows; U; Windows NT 5.1; de-CH) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.2", "ua" : "Mozilla/5.0 (Windows; U; Windows NT 5.1; de-CH) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.2",
"expect" : "expect" :
{ {
"name" : "Arora", "name" : "Arora",
"version" : "0.2", "version" : "0.2",
@ -32,7 +32,7 @@
{ {
"desc" : "Avant", "desc" : "Avant",
"ua" : "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB5; Avant Browser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)", "ua" : "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB5; Avant Browser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
"expect" : "expect" :
{ {
"name" : "Avant ", "name" : "Avant ",
"version" : "undefined", "version" : "undefined",
@ -42,7 +42,7 @@
{ {
"desc" : "Baidu", "desc" : "Baidu",
"ua" : "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; baidubrowser 1.x)", "ua" : "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; baidubrowser 1.x)",
"expect" : "expect" :
{ {
"name" : "baidu", "name" : "baidu",
"version" : "1.x", "version" : "1.x",
@ -52,7 +52,7 @@
{ {
"desc" : "Bolt", "desc" : "Bolt",
"ua" : "Mozilla/5.0 (X11; 78; CentOS; US-en) AppleWebKit/527+ (KHTML, like Gecko) Bolt/0.862 Version/3.0 Safari/523.15", "ua" : "Mozilla/5.0 (X11; 78; CentOS; US-en) AppleWebKit/527+ (KHTML, like Gecko) Bolt/0.862 Version/3.0 Safari/523.15",
"expect" : "expect" :
{ {
"name" : "Bolt", "name" : "Bolt",
"version" : "0.862", "version" : "0.862",
@ -62,7 +62,7 @@
{ {
"desc" : "Camino", "desc" : "Camino",
"ua" : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en; rv:1.9.0.19) Gecko/2011091218 Camino/2.0.9 (like Firefox/3.0.19)", "ua" : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en; rv:1.9.0.19) Gecko/2011091218 Camino/2.0.9 (like Firefox/3.0.19)",
"expect" : "expect" :
{ {
"name" : "Camino", "name" : "Camino",
"version" : "2.0.9", "version" : "2.0.9",
@ -72,7 +72,7 @@
{ {
"desc" : "Chimera", "desc" : "Chimera",
"ua" : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pl-PL; rv:1.0.1) Gecko/20021111 Chimera/0.6", "ua" : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pl-PL; rv:1.0.1) Gecko/20021111 Chimera/0.6",
"expect" : "expect" :
{ {
"name" : "Chimera", "name" : "Chimera",
"version" : "0.6", "version" : "0.6",
@ -82,7 +82,7 @@
{ {
"desc" : "Chrome", "desc" : "Chrome",
"ua" : "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6", "ua" : "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
"expect" : "expect" :
{ {
"name" : "Chrome", "name" : "Chrome",
"version" : "20.0.1090.0", "version" : "20.0.1090.0",
@ -92,7 +92,7 @@
{ {
"desc" : "Chrome on iOS", "desc" : "Chrome on iOS",
"ua" : "Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3", "ua" : "Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3",
"expect" : "expect" :
{ {
"name" : "Chrome", "name" : "Chrome",
"version" : "19.0.1084.60", "version" : "19.0.1084.60",
@ -102,7 +102,7 @@
{ {
"desc" : "Chromium", "desc" : "Chromium",
"ua" : "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Ubuntu/11.10 Chromium/16.0.912.21 Chrome/16.0.912.21 Safari/535.7", "ua" : "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Ubuntu/11.10 Chromium/16.0.912.21 Chrome/16.0.912.21 Safari/535.7",
"expect" : "expect" :
{ {
"name" : "Chromium", "name" : "Chromium",
"version" : "16.0.912.21", "version" : "16.0.912.21",
@ -112,7 +112,7 @@
{ {
"desc" : "Chrome on Android", "desc" : "Chrome on Android",
"ua" : "Mozilla/5.0 (Linux; U; Android-4.0.3; en-us; Galaxy Nexus Build/IML74K) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Mobile Safari/535.7", "ua" : "Mozilla/5.0 (Linux; U; Android-4.0.3; en-us; Galaxy Nexus Build/IML74K) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Mobile Safari/535.7",
"expect" : "expect" :
{ {
"name" : "Chrome", "name" : "Chrome",
"version" : "16.0.912.75", "version" : "16.0.912.75",
@ -122,7 +122,7 @@
{ {
"desc" : "Dillo", "desc" : "Dillo",
"ua" : "Dillo/2.2", "ua" : "Dillo/2.2",
"expect" : "expect" :
{ {
"name" : "Dillo", "name" : "Dillo",
"version" : "2.2", "version" : "2.2",
@ -132,7 +132,7 @@
{ {
"desc" : "Dolphin", "desc" : "Dolphin",
"ua" : "Mozilla/5.0 (SCH-F859/F859DG12;U;NUCLEUS/2.1;Profile/MIDP-2.1 Configuration/CLDC-1.1;480*800;CTC/2.0) Dolfin/2.0", "ua" : "Mozilla/5.0 (SCH-F859/F859DG12;U;NUCLEUS/2.1;Profile/MIDP-2.1 Configuration/CLDC-1.1;480*800;CTC/2.0) Dolfin/2.0",
"expect" : "expect" :
{ {
"name" : "Dolphin", "name" : "Dolphin",
"version" : "2.0", "version" : "2.0",
@ -142,7 +142,7 @@
{ {
"desc" : "Doris", "desc" : "Doris",
"ua" : "Doris/1.15 [en] (Symbian)", "ua" : "Doris/1.15 [en] (Symbian)",
"expect" : "expect" :
{ {
"name" : "Doris", "name" : "Doris",
"version" : "1.15", "version" : "1.15",
@ -152,7 +152,7 @@
{ {
"desc" : "Epiphany", "desc" : "Epiphany",
"ua" : "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7) Gecko/20040628 Epiphany/1.2.6", "ua" : "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7) Gecko/20040628 Epiphany/1.2.6",
"expect" : "expect" :
{ {
"name" : "Epiphany", "name" : "Epiphany",
"version" : "1.2.6", "version" : "1.2.6",
@ -162,7 +162,7 @@
{ {
"desc" : "Firebird", "desc" : "Firebird",
"ua" : "Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.5) Gecko/20031007 Firebird/0.7", "ua" : "Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.5) Gecko/20031007 Firebird/0.7",
"expect" : "expect" :
{ {
"name" : "Firebird", "name" : "Firebird",
"version" : "0.7", "version" : "0.7",
@ -172,7 +172,7 @@
{ {
"desc" : "Firefox", "desc" : "Firefox",
"ua" : "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20120716 Firefox/15.0a2", "ua" : "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20120716 Firefox/15.0a2",
"expect" : "expect" :
{ {
"name" : "Firefox", "name" : "Firefox",
"version" : "15.0a2", "version" : "15.0a2",
@ -182,7 +182,7 @@
{ {
"desc" : "Fennec", "desc" : "Fennec",
"ua" : "Mozilla/5.0 (X11; U; Linux armv61; en-US; rv:1.9.1b2pre) Gecko/20081015 Fennec/1.0a1", "ua" : "Mozilla/5.0 (X11; U; Linux armv61; en-US; rv:1.9.1b2pre) Gecko/20081015 Fennec/1.0a1",
"expect" : "expect" :
{ {
"name" : "Fennec", "name" : "Fennec",
"version" : "1.0a1", "version" : "1.0a1",
@ -192,7 +192,7 @@
{ {
"desc" : "Flock", "desc" : "Flock",
"ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008100716 Firefox/3.0.3 Flock/2.0", "ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008100716 Firefox/3.0.3 Flock/2.0",
"expect" : "expect" :
{ {
"name" : "Flock", "name" : "Flock",
"version" : "2.0", "version" : "2.0",
@ -202,7 +202,7 @@
{ {
"desc" : "GoBrowser", "desc" : "GoBrowser",
"ua" : "Nokia5700XpressMusic/GoBrowser/1.6.91", "ua" : "Nokia5700XpressMusic/GoBrowser/1.6.91",
"expect" : "expect" :
{ {
"name" : "GoBrowser", "name" : "GoBrowser",
"version" : "1.6.91", "version" : "1.6.91",
@ -212,7 +212,7 @@
{ {
"desc" : "IceApe", "desc" : "IceApe",
"ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.19) Gecko/20110817 Iceape/2.0.14", "ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.19) Gecko/20110817 Iceape/2.0.14",
"expect" : "expect" :
{ {
"name" : "Iceape", "name" : "Iceape",
"version" : "2.0.14", "version" : "2.0.14",
@ -222,7 +222,7 @@
{ {
"desc" : "IceCat", "desc" : "IceCat",
"ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092921 IceCat/3.0.3-g1", "ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092921 IceCat/3.0.3-g1",
"expect" : "expect" :
{ {
"name" : "IceCat", "name" : "IceCat",
"version" : "3.0.3-g1", "version" : "3.0.3-g1",
@ -232,7 +232,7 @@
{ {
"desc" : "Iceweasel", "desc" : "Iceweasel",
"ua" : "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.0.16) Gecko/2009121610 Iceweasel/3.0.6 (Debian-3.0.6-3)", "ua" : "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.0.16) Gecko/2009121610 Iceweasel/3.0.6 (Debian-3.0.6-3)",
"expect" : "expect" :
{ {
"name" : "Iceweasel", "name" : "Iceweasel",
"version" : "3.0.6", "version" : "3.0.6",
@ -242,7 +242,7 @@
{ {
"desc" : "iCab", "desc" : "iCab",
"ua" : "iCab/2.9.5 (Macintosh; U; PPC; Mac OS X)", "ua" : "iCab/2.9.5 (Macintosh; U; PPC; Mac OS X)",
"expect" : "expect" :
{ {
"name" : "iCab", "name" : "iCab",
"version" : "2.9.5", "version" : "2.9.5",
@ -252,7 +252,7 @@
{ {
"desc" : "IEMobile", "desc" : "IEMobile",
"ua" : "Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11) 320x240; VZW; Motorola-Q9c; Windows Mobile 6.1 Standard", "ua" : "Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11) 320x240; VZW; Motorola-Q9c; Windows Mobile 6.1 Standard",
"expect" : "expect" :
{ {
"name" : "IEMobile", "name" : "IEMobile",
"version" : "7.11", "version" : "7.11",
@ -262,7 +262,7 @@
{ {
"desc" : "IE 11 with IE token", "desc" : "IE 11 with IE token",
"ua" : "Mozilla/5.0 (IE 11.0; Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko", "ua" : "Mozilla/5.0 (IE 11.0; Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko",
"expect" : "expect" :
{ {
"name" : "IE", "name" : "IE",
"version" : "11.0", "version" : "11.0",
@ -272,7 +272,7 @@
{ {
"desc" : "IE 11 without IE token", "desc" : "IE 11 without IE token",
"ua" : "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko", "ua" : "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko",
"expect" : "expect" :
{ {
"name" : "IE", "name" : "IE",
"version" : "11.0", "version" : "11.0",
@ -282,7 +282,7 @@
{ {
"desc" : "K-Meleon", "desc" : "K-Meleon",
"ua" : "Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.5) Gecko/20031016 K-Meleon/0.8.2", "ua" : "Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.5) Gecko/20031016 K-Meleon/0.8.2",
"expect" : "expect" :
{ {
"name" : "K-Meleon", "name" : "K-Meleon",
"version" : "0.8.2", "version" : "0.8.2",
@ -292,17 +292,17 @@
{ {
"desc" : "Kindle Browser", "desc" : "Kindle Browser",
"ua" : "Mozilla/4.0 (compatible; Linux 2.6.22) NetFront/3.4 Kindle/2.5 (screen 600x800; rotate)", "ua" : "Mozilla/4.0 (compatible; Linux 2.6.22) NetFront/3.4 Kindle/2.5 (screen 600x800; rotate)",
"expect" : "expect" :
{ {
"name" : "Kindle", "name" : "Kindle",
"version" : "2.5", "version" : "2.5",
"major" : "2" "major" : "2"
} }
}, },
{ {
"desc" : "Konqueror", "desc" : "Konqueror",
"ua" : "Mozilla/5.0 (compatible; Konqueror/3.5; Linux; X11; x86_64) KHTML/3.5.6 (like Gecko) (Kubuntu)", "ua" : "Mozilla/5.0 (compatible; Konqueror/3.5; Linux; X11; x86_64) KHTML/3.5.6 (like Gecko) (Kubuntu)",
"expect" : "expect" :
{ {
"name" : "Konqueror", "name" : "Konqueror",
"version" : "3.5", "version" : "3.5",
@ -312,7 +312,7 @@
{ {
"desc" : "Lunascape", "desc" : "Lunascape",
"ua" : "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090804 Firefox/3.5.2 Lunascape/5.1.4.5", "ua" : "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090804 Firefox/3.5.2 Lunascape/5.1.4.5",
"expect" : "expect" :
{ {
"name" : "Lunascape", "name" : "Lunascape",
"version" : "5.1.4.5", "version" : "5.1.4.5",
@ -322,7 +322,7 @@
{ {
"desc" : "Lynx", "desc" : "Lynx",
"ua" : "Lynx/2.8.5dev.16 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6b", "ua" : "Lynx/2.8.5dev.16 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6b",
"expect" : "expect" :
{ {
"name" : "Lynx", "name" : "Lynx",
"version" : "2.8.5dev.16", "version" : "2.8.5dev.16",
@ -332,7 +332,7 @@
{ {
"desc" : "Maemo Browser", "desc" : "Maemo Browser",
"ua" : "Mozilla/5.0 (X11; U; Linux armv7l; ru-RU; rv:1.9.2.3pre) Gecko/20100723 Firefox/3.5 Maemo Browser 1.7.4.8 RX-51 N900", "ua" : "Mozilla/5.0 (X11; U; Linux armv7l; ru-RU; rv:1.9.2.3pre) Gecko/20100723 Firefox/3.5 Maemo Browser 1.7.4.8 RX-51 N900",
"expect" : "expect" :
{ {
"name" : "Maemo Browser", "name" : "Maemo Browser",
"version" : "1.7.4.8", "version" : "1.7.4.8",
@ -342,7 +342,7 @@
{ {
"desc" : "Maxthon", "desc" : "Maxthon",
"ua" : "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)", "ua" : "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)",
"expect" : "expect" :
{ {
"name" : "Maxthon", "name" : "Maxthon",
"version" : "undefined", "version" : "undefined",
@ -352,7 +352,7 @@
{ {
"desc" : "Midori", "desc" : "Midori",
"ua" : "Midori/0.2.2 (X11; Linux i686; U; en-us) WebKit/531.2+", "ua" : "Midori/0.2.2 (X11; Linux i686; U; en-us) WebKit/531.2+",
"expect" : "expect" :
{ {
"name" : "Midori", "name" : "Midori",
"version" : "0.2.2", "version" : "0.2.2",
@ -362,7 +362,7 @@
{ {
"desc" : "Minimo", "desc" : "Minimo",
"ua" : "Mozilla/5.0 (X11; U; Linux armv6l; rv 1.8.1.5pre) Gecko/20070619 Minimo/0.020", "ua" : "Mozilla/5.0 (X11; U; Linux armv6l; rv 1.8.1.5pre) Gecko/20070619 Minimo/0.020",
"expect" : "expect" :
{ {
"name" : "Minimo", "name" : "Minimo",
"version" : "0.020", "version" : "0.020",
@ -372,7 +372,7 @@
{ {
"desc" : "MIUI Browser on Xiaomi Hongmi WCDMA (HM2013023)", "desc" : "MIUI Browser on Xiaomi Hongmi WCDMA (HM2013023)",
"ua" : "Mozilla/5.0 (Linux; U; Android 4.2.2; ru-ru; 2013023 Build/HM2013023) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0", "ua" : "Mozilla/5.0 (Linux; U; Android 4.2.2; ru-ru; 2013023 Build/HM2013023) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0",
"expect" : "expect" :
{ {
"name" : "MIUI Browser", "name" : "MIUI Browser",
"version" : "1.0", "version" : "1.0",
@ -382,7 +382,7 @@
{ {
"desc" : "Mobile Safari", "desc" : "Mobile Safari",
"ua" : "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7", "ua" : "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7",
"expect" : "expect" :
{ {
"name" : "Mobile Safari", "name" : "Mobile Safari",
"version" : "4.0.5", "version" : "4.0.5",
@ -392,7 +392,7 @@
{ {
"desc" : "Mosaic", "desc" : "Mosaic",
"ua" : "NCSA_Mosaic/2.6 (X11; SunOS 4.1.3 sun4m)", "ua" : "NCSA_Mosaic/2.6 (X11; SunOS 4.1.3 sun4m)",
"expect" : "expect" :
{ {
"name" : "Mosaic", "name" : "Mosaic",
"version" : "2.6", "version" : "2.6",
@ -402,7 +402,7 @@
{ {
"desc" : "Mozilla", "desc" : "Mozilla",
"ua" : "Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.7) Gecko/20070606", "ua" : "Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.7) Gecko/20070606",
"expect" : "expect" :
{ {
"name" : "Mozilla", "name" : "Mozilla",
"version" : "5.0", "version" : "5.0",
@ -412,7 +412,7 @@
{ {
"desc" : "MSIE", "desc" : "MSIE",
"ua" : "Mozilla/4.0 (compatible; MSIE 5.0b1; Mac_PowerPC)", "ua" : "Mozilla/4.0 (compatible; MSIE 5.0b1; Mac_PowerPC)",
"expect" : "expect" :
{ {
"name" : "IE", "name" : "IE",
"version" : "5.0b1", "version" : "5.0b1",
@ -422,7 +422,7 @@
{ {
"desc" : "NetFront", "desc" : "NetFront",
"ua" : "Mozilla/4.0 (PDA; Windows CE/1.0.1) NetFront/3.0", "ua" : "Mozilla/4.0 (PDA; Windows CE/1.0.1) NetFront/3.0",
"expect" : "expect" :
{ {
"name" : "NetFront", "name" : "NetFront",
"version" : "3.0", "version" : "3.0",
@ -432,7 +432,7 @@
{ {
"desc" : "Netscape on Windows ME", "desc" : "Netscape on Windows ME",
"ua" : "Mozilla/5.0 (Windows; U; Win 9x 4.90; en-US; rv:1.8.1.8pre) Gecko/20071015 Firefox/2.0.0.7 Navigator/9.0", "ua" : "Mozilla/5.0 (Windows; U; Win 9x 4.90; en-US; rv:1.8.1.8pre) Gecko/20071015 Firefox/2.0.0.7 Navigator/9.0",
"expect" : "expect" :
{ {
"name" : "Netscape", "name" : "Netscape",
"version" : "9.0", "version" : "9.0",
@ -442,7 +442,7 @@
{ {
"desc" : "Netscape on Windows 2000", "desc" : "Netscape on Windows 2000",
"ua" : "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.5) Gecko/20050519 Netscape/8.0.1", "ua" : "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.5) Gecko/20050519 Netscape/8.0.1",
"expect" : "expect" :
{ {
"name" : "Netscape", "name" : "Netscape",
"version" : "8.0.1", "version" : "8.0.1",
@ -452,7 +452,7 @@
{ {
"desc" : "Nokia Browser", "desc" : "Nokia Browser",
"ua" : "Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaN8-00/025.007; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.37 Mobile Safari/533.4 3gpp-gba", "ua" : "Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaN8-00/025.007; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.37 Mobile Safari/533.4 3gpp-gba",
"expect" : "expect" :
{ {
"name" : "NokiaBrowser", "name" : "NokiaBrowser",
"version" : "7.3.1.37", "version" : "7.3.1.37",
@ -462,7 +462,7 @@
{ {
"desc" : "OmniWeb", "desc" : "OmniWeb",
"ua" : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v558.48", "ua" : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v558.48",
"expect" : "expect" :
{ {
"name" : "OmniWeb", "name" : "OmniWeb",
"version" : "558.48", "version" : "558.48",
@ -472,7 +472,7 @@
{ {
"desc" : "Opera > 9.80", "desc" : "Opera > 9.80",
"ua" : "Opera/9.80 (X11; Linux x86_64; U; Linux Mint; en) Presto/2.2.15 Version/10.10", "ua" : "Opera/9.80 (X11; Linux x86_64; U; Linux Mint; en) Presto/2.2.15 Version/10.10",
"expect" : "expect" :
{ {
"name" : "Opera", "name" : "Opera",
"version" : "10.10", "version" : "10.10",
@ -482,7 +482,7 @@
{ {
"desc" : "Opera < 9.80 on Windows", "desc" : "Opera < 9.80 on Windows",
"ua" : "Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Opera 6.01 [en]", "ua" : "Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Opera 6.01 [en]",
"expect" : "expect" :
{ {
"name" : "Opera", "name" : "Opera",
"version" : "6.01", "version" : "6.01",
@ -492,7 +492,7 @@
{ {
"desc" : "Opera < 9.80 on OSX", "desc" : "Opera < 9.80 on OSX",
"ua" : "Opera/8.5 (Macintosh; PPC Mac OS X; U; en)", "ua" : "Opera/8.5 (Macintosh; PPC Mac OS X; U; en)",
"expect" : "expect" :
{ {
"name" : "Opera", "name" : "Opera",
"version" : "8.5", "version" : "8.5",
@ -502,7 +502,7 @@
{ {
"desc" : "Opera Mobile", "desc" : "Opera Mobile",
"ua" : "Opera/9.80 (Android 2.3.5; Linux; Opera Mobi/ADR-1111101157; U; de) Presto/2.9.201 Version/11.50", "ua" : "Opera/9.80 (Android 2.3.5; Linux; Opera Mobi/ADR-1111101157; U; de) Presto/2.9.201 Version/11.50",
"expect" : "expect" :
{ {
"name" : "Opera Mobi", "name" : "Opera Mobi",
"version" : "11.50", "version" : "11.50",
@ -512,7 +512,7 @@
{ {
"desc" : "Opera Webkit", "desc" : "Opera Webkit",
"ua" : "Mozilla/5.0 AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.123 Mobile Safari/537.22 OPR/14.0.1025.52315", "ua" : "Mozilla/5.0 AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.123 Mobile Safari/537.22 OPR/14.0.1025.52315",
"expect" : "expect" :
{ {
"name" : "Opera", "name" : "Opera",
"version" : "14.0.1025.52315", "version" : "14.0.1025.52315",
@ -522,27 +522,47 @@
{ {
"desc" : "Opera Mini", "desc" : "Opera Mini",
"ua" : "Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.21214/19.916; U; en) Presto/2.5.25", "ua" : "Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.21214/19.916; U; en) Presto/2.5.25",
"expect" : "expect" :
{ {
"name" : "Opera Mini", "name" : "Opera Mini",
"version" : "5.1.21214", "version" : "5.1.21214",
"major" : "5" "major" : "5"
} }
}, },
{
"desc" : "Opera Mini 8 above on iPhone",
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) OPiOS/12.1.1.98980 Mobile/13C75 Safari/9537.53",
"expect" :
{
"name" : "Opera Mini",
"version" : "12.1.1.98980",
"major" : "12"
}
},
{ {
"desc" : "Opera Tablet", "desc" : "Opera Tablet",
"ua" : "Opera/9.80 (Windows NT 6.1; Opera Tablet/15165; U; en) Presto/2.8.149 Version/11.1", "ua" : "Opera/9.80 (Windows NT 6.1; Opera Tablet/15165; U; en) Presto/2.8.149 Version/11.1",
"expect" : "expect" :
{ {
"name" : "Opera Tablet", "name" : "Opera Tablet",
"version" : "11.1", "version" : "11.1",
"major" : "11" "major" : "11"
} }
}, },
{
"desc" : "PhantomJS",
"ua" : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.2 Safari/534.34",
"expect" :
{
"name" : "PhantomJS",
"version" : "1.9.2",
"major" : "1"
}
},
{ {
"desc" : "Phoenix", "desc" : "Phoenix",
"ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2b) Gecko/20021029 Phoenix/0.4", "ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2b) Gecko/20021029 Phoenix/0.4",
"expect" : "expect" :
{ {
"name" : "Phoenix", "name" : "Phoenix",
"version" : "0.4", "version" : "0.4",
@ -552,7 +572,7 @@
{ {
"desc" : "Polaris", "desc" : "Polaris",
"ua" : "LG-LX600 Polaris/6.0 MMP/2.0 Profile/MIDP-2.1 Configuration/CLDC-1.1", "ua" : "LG-LX600 Polaris/6.0 MMP/2.0 Profile/MIDP-2.1 Configuration/CLDC-1.1",
"expect" : "expect" :
{ {
"name" : "Polaris", "name" : "Polaris",
"version" : "6.0", "version" : "6.0",
@ -562,7 +582,7 @@
{ {
"desc" : "RockMelt", "desc" : "RockMelt",
"ua" : "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) RockMelt/0.8.36.78 Chrome/7.0.517.44 Safari/534.7", "ua" : "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) RockMelt/0.8.36.78 Chrome/7.0.517.44 Safari/534.7",
"expect" : "expect" :
{ {
"name" : "RockMelt", "name" : "RockMelt",
"version" : "0.8.36.78", "version" : "0.8.36.78",
@ -572,7 +592,7 @@
{ {
"desc" : "Safari", "desc" : "Safari",
"ua" : "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8", "ua" : "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8",
"expect" : "expect" :
{ {
"name" : "Safari", "name" : "Safari",
"version" : "5.0.1", "version" : "5.0.1",
@ -582,7 +602,7 @@
{ {
"desc" : "Safari < 3.0", "desc" : "Safari < 3.0",
"ua" : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; sv-se) AppleWebKit/419 (KHTML, like Gecko) Safari/419.3", "ua" : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; sv-se) AppleWebKit/419 (KHTML, like Gecko) Safari/419.3",
"expect" : "expect" :
{ {
"name" : "Safari", "name" : "Safari",
"version" : "2.0.4", "version" : "2.0.4",
@ -592,7 +612,7 @@
{ {
"desc" : "SeaMonkey", "desc" : "SeaMonkey",
"ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1b4pre) Gecko/20090405 SeaMonkey/2.0b1pre", "ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1b4pre) Gecko/20090405 SeaMonkey/2.0b1pre",
"expect" : "expect" :
{ {
"name" : "SeaMonkey", "name" : "SeaMonkey",
"version" : "2.0b1pre", "version" : "2.0b1pre",
@ -602,7 +622,7 @@
{ {
"desc" : "Silk Browser", "desc" : "Silk Browser",
"ua" : "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.1.0-84)", "ua" : "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.1.0-84)",
"expect" : "expect" :
{ {
"name" : "Silk", "name" : "Silk",
"version" : "1.1.0-84", "version" : "1.1.0-84",
@ -612,7 +632,7 @@
{ {
"desc" : "Skyfire", "desc" : "Skyfire",
"ua" : "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Safari/530.17 Skyfire/2.0", "ua" : "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Safari/530.17 Skyfire/2.0",
"expect" : "expect" :
{ {
"name" : "Skyfire", "name" : "Skyfire",
"version" : "2.0", "version" : "2.0",
@ -622,7 +642,7 @@
{ {
"desc" : "SlimBrowser", "desc" : "SlimBrowser",
"ua" : "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SlimBrowser)", "ua" : "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SlimBrowser)",
"expect" : "expect" :
{ {
"name" : "Slim", "name" : "Slim",
"version" : "undefined", "version" : "undefined",
@ -632,7 +652,7 @@
{ {
"desc" : "Swiftfox", "desc" : "Swiftfox",
"ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061024 Firefox/2.0 (Swiftfox)", "ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061024 Firefox/2.0 (Swiftfox)",
"expect" : "expect" :
{ {
"name" : "Swiftfox", "name" : "Swiftfox",
"version" : "undefined", "version" : "undefined",
@ -642,7 +662,7 @@
{ {
"desc" : "Tizen Browser", "desc" : "Tizen Browser",
"ua" : "Mozilla/5.0 (Linux; U; Tizen/1.0 like Android; en-us; AppleWebKit/534.46 (KHTML, like Gecko) Tizen Browser/1.0 Mobile", "ua" : "Mozilla/5.0 (Linux; U; Tizen/1.0 like Android; en-us; AppleWebKit/534.46 (KHTML, like Gecko) Tizen Browser/1.0 Mobile",
"expect" : "expect" :
{ {
"name" : "Tizen Browser", "name" : "Tizen Browser",
"version" : "1.0", "version" : "1.0",
@ -652,7 +672,7 @@
{ {
"desc" : "UC Browser on Samsung", "desc" : "UC Browser on Samsung",
"ua" : "Mozilla/5.0 (Java; U; Pt-br; samsung-gt-s5620) UCBrowser8.2.1.144/69/352/UCWEB Mobile UNTRUSTED/1.0", "ua" : "Mozilla/5.0 (Java; U; Pt-br; samsung-gt-s5620) UCBrowser8.2.1.144/69/352/UCWEB Mobile UNTRUSTED/1.0",
"expect" : "expect" :
{ {
"name" : "UCBrowser", "name" : "UCBrowser",
"version" : "8.2.1.144", "version" : "8.2.1.144",
@ -662,7 +682,7 @@
{ {
"desc" : "UC Browser on Nokia", "desc" : "UC Browser on Nokia",
"ua" : "Mozilla/5.0 (S60V3; U; en-in; NokiaN73)/UC Browser8.4.0.159/28/351/UCWEB Mobile", "ua" : "Mozilla/5.0 (S60V3; U; en-in; NokiaN73)/UC Browser8.4.0.159/28/351/UCWEB Mobile",
"expect" : "expect" :
{ {
"name" : "UCBrowser", "name" : "UCBrowser",
"version" : "8.4.0.159", "version" : "8.4.0.159",
@ -672,7 +692,7 @@
{ {
"desc" : "UC Browser J2ME", "desc" : "UC Browser J2ME",
"ua" : "UCWEB/2.0 (MIDP-2.0; U; zh-CN; HTC EVO 3D X515m) U2/1.0.0 UCBrowser/10.4.0.558 U2/1.0.0 Mobile", "ua" : "UCWEB/2.0 (MIDP-2.0; U; zh-CN; HTC EVO 3D X515m) U2/1.0.0 UCBrowser/10.4.0.558 U2/1.0.0 Mobile",
"expect" : "expect" :
{ {
"name" : "UCBrowser", "name" : "UCBrowser",
"version" : "10.4.0.558", "version" : "10.4.0.558",
@ -682,7 +702,7 @@
{ {
"desc" : "UC Browser J2ME 2", "desc" : "UC Browser J2ME 2",
"ua" : "JUC (Linux; U; 2.3.5; zh-cn; GT-I9100; 480*800) UCWEB7.9.0.94/139/800", "ua" : "JUC (Linux; U; 2.3.5; zh-cn; GT-I9100; 480*800) UCWEB7.9.0.94/139/800",
"expect" : "expect" :
{ {
"name" : "UCBrowser", "name" : "UCBrowser",
"version" : "7.9.0.94", "version" : "7.9.0.94",
@ -692,7 +712,7 @@
{ {
"desc" : "Vivaldi", "desc" : "Vivaldi",
"ua" : "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.89 Vivaldi/1.0.83.38 Safari/537.36", "ua" : "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.89 Vivaldi/1.0.83.38 Safari/537.36",
"expect" : "expect" :
{ {
"name" : "Vivaldi", "name" : "Vivaldi",
"version" : "1.0.83.38", "version" : "1.0.83.38",
@ -702,7 +722,7 @@
{ {
"desc" : "Yandex", "desc" : "Yandex",
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.0.1084.5402 Chrome/19.0.1084.5402 Safari/536.5", "ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.0.1084.5402 Chrome/19.0.1084.5402 Safari/536.5",
"expect" : "expect" :
{ {
"name" : "Yandex", "name" : "Yandex",
"version" : "1.0.1084.5402", "version" : "1.0.1084.5402",
@ -712,7 +732,7 @@
{ {
"desc" : "Microsoft Edge", "desc" : "Microsoft Edge",
"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", "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",
"expect" : "expect" :
{ {
"name" : "Edge", "name" : "Edge",
"version" : "12.0", "version" : "12.0",
@ -728,5 +748,15 @@
"version" : "43.8", "version" : "43.8",
"major" : "43" "major" : "43"
} }
},
{
"desc" : "Firefox iOS",
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) FxiOS/1.1 Mobile/13B143 Safari/601.1.46",
"expect" :
{
"name" : "Firefox",
"version" : "1.1",
"major" : "1"
}
} }
] ]

View File

@ -39,6 +39,16 @@
"type" : "mobile" "type" : "mobile"
} }
}, },
{
"desc" : "Motorola Nexus 6",
"ua" : "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.20 Mobile Safari/537.36",
"expect" :
{
"vendor" : "Motorola",
"model" : "Nexus 6",
"type" : "mobile"
}
},
{ {
"desc" : "Motorola Droid RAZR 4G", "desc" : "Motorola Droid RAZR 4G",
"ua" : "Mozilla/5.0 (Linux; U; Android 2.3; xx-xx; DROID RAZR 4G Build/6.5.1-73_DHD-11_M1-29) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", "ua" : "Mozilla/5.0 (Linux; U; Android 2.3; xx-xx; DROID RAZR 4G Build/6.5.1-73_DHD-11_M1-29) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
@ -238,5 +248,25 @@
"model" : "MI-ONE Plus", "model" : "MI-ONE Plus",
"type" : "mobile" "type" : "mobile"
} }
},
{
"desc" : "PlayStation 4",
"ua" : "Mozilla/5.0 (PlayStation 4 3.00) AppleWebKit/537.73 (KHTML, like Gecko)",
"expect" :
{
"vendor" : "Sony",
"model" : "PlayStation 4",
"type" : "console"
}
},
{
"desc" : "Galaxy Nexus",
"ua" : "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19",
"expect" :
{
"vendor" : "Samsung",
"model" : "Galaxy Nexus",
"type" : "mobile"
}
} }
] ]

View File

@ -251,6 +251,15 @@
"version" : "" "version" : ""
} }
}, },
{
"desc" : "PlayStation 4",
"ua" : "Mozilla/5.0 (PlayStation 4 3.00) AppleWebKit/537.73 (KHTML, like Gecko)",
"expect" :
{
"name" : "PlayStation",
"version" : "4"
}
},
{ {
"desc" : "Mint", "desc" : "Mint",
"ua" : "", "ua" : "",

View File

@ -1,7 +1,7 @@
{ {
"title": "UAParser.js", "title": "UAParser.js",
"name": "ua-parser-js", "name": "ua-parser-js",
"version": "0.7.9", "version": "0.7.10",
"description": "Lightweight JavaScript-based user-agent string parser", "description": "Lightweight JavaScript-based user-agent string parser",
"keywords": [ "keywords": [
"user-agent", "user-agent",