mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-28 00:18:45 +03:00
updating with v7.10
This commit is contained in:
commit
e6f13a7aad
10
.travis.yml
10
.travis.yml
@ -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
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ua-parser-js",
|
"name": "ua-parser-js",
|
||||||
"version": "0.7.7",
|
"version": "0.7.10",
|
||||||
"authors": [
|
"authors": [
|
||||||
"Faisal Salman <fyzlman@gmail.com>"
|
"Faisal Salman <fyzlman@gmail.com>"
|
||||||
],
|
],
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# dependencies
|
|
||||||
JSHINT_DIR="node_modules/jshint/bin/jshint"
|
|
||||||
MOCHA_DIR="node_modules/mocha/bin/mocha"
|
|
||||||
UGLIFY_DIR="node_modules/uglify-js/bin/uglifyjs"
|
|
||||||
|
|
||||||
# check module directory & install if not found
|
|
||||||
function check_module {
|
|
||||||
if ! type $2 &> /dev/null
|
|
||||||
then
|
|
||||||
echo "$2 is not found"
|
|
||||||
if ! type "npm" &> /dev/null
|
|
||||||
then
|
|
||||||
echo "npm is not installed"
|
|
||||||
echo "Exiting"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "Installing $1..."
|
|
||||||
npm install $1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
check_module "jshint" $JSHINT_DIR
|
|
||||||
check_module "mocha" $MOCHA_DIR
|
|
||||||
check_module "uglify-js" $UGLIFY_DIR
|
|
||||||
|
|
||||||
echo "Verifiying code..."
|
|
||||||
$JSHINT_DIR src/ua-parser.js
|
|
||||||
|
|
||||||
echo "Running test..."
|
|
||||||
$MOCHA_DIR -R nyan test/test.js
|
|
||||||
|
|
||||||
echo "Minifying script..."
|
|
||||||
$UGLIFY_DIR src/ua-parser.js > dist/ua-parser.min.js --comments '/UAParser\.js/'
|
|
||||||
echo "OK"
|
|
112
build/verup.js
112
build/verup.js
@ -1,112 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
/**
|
|
||||||
* Increment and update version in all project files.
|
|
||||||
*
|
|
||||||
* Ussage:
|
|
||||||
*
|
|
||||||
* Increment revision by 1:
|
|
||||||
* node verup.js 1
|
|
||||||
*
|
|
||||||
* Increment minor version by 1:
|
|
||||||
* node verup.js 1.0
|
|
||||||
*
|
|
||||||
* Increment major version by 1:
|
|
||||||
* node verup.js 1.0.0
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @author Dumitru Uzun (DUzun.Me)
|
|
||||||
* @version 1.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
var path = require('path');
|
|
||||||
var fs = require('fs');
|
|
||||||
|
|
||||||
var _root = path.join(__dirname, '..');
|
|
||||||
var files = [
|
|
||||||
'ua-parser-js.jquery.json',
|
|
||||||
'component.json',
|
|
||||||
'bower.json',
|
|
||||||
'package.js',
|
|
||||||
'src/ua-parser.js'
|
|
||||||
];
|
|
||||||
|
|
||||||
var ver_reg = [
|
|
||||||
/^((?:\$|@|(\s*(?:var|,)?\s+))(?:LIBVERSION|version)[\s\:='"]+)([0-9]+(?:\.[0-9]+){2,2})/
|
|
||||||
, /^(\s?\*.*v)([0-9]+(?:\.[0-9]+){2,2})/
|
|
||||||
];
|
|
||||||
|
|
||||||
var packFile = path.join(_root, 'package.json');
|
|
||||||
var packo = require(packFile);
|
|
||||||
|
|
||||||
if ( !packo ) {
|
|
||||||
console.error('Can\'t read package.json file');
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
var over = packo.version;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* bump should be 1 for revision, 1.0 for minor and 1.0.0 for major version
|
|
||||||
*/
|
|
||||||
var bump = (process.argv[2] || '1').split('.').reverse();
|
|
||||||
|
|
||||||
if ( over ) {
|
|
||||||
var nver = over.split('.').reverse();
|
|
||||||
var b, l;
|
|
||||||
while(bump.length && !(b = parseInt(bump.pop())));
|
|
||||||
l = bump.length;
|
|
||||||
|
|
||||||
// console.log({b:b,nver:nver,over:over,l:l,bump:bump})
|
|
||||||
nver[l] = +nver[l] + b;
|
|
||||||
bump.forEach(function (v,i) { nver[i] = v; });
|
|
||||||
|
|
||||||
nver = nver.reverse().join('.');
|
|
||||||
packo.version = nver;
|
|
||||||
|
|
||||||
console.log('Bumping version: ' + over + ' -> ' + nver);
|
|
||||||
|
|
||||||
var buf = JSON.stringify(packo, null, 2);
|
|
||||||
|
|
||||||
if ( buf && over != nver ) {
|
|
||||||
buf += "\n";
|
|
||||||
fs.writeFileSync(packFile, buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
files.forEach(function (f) {
|
|
||||||
var fn = path.join(_root, f);
|
|
||||||
var cnt = fs.readFileSync(fn, 'utf8');
|
|
||||||
var ext = path.extname(f);
|
|
||||||
var buf;
|
|
||||||
|
|
||||||
switch(ext) {
|
|
||||||
case '.json': {
|
|
||||||
var packo = JSON.parse(cnt);
|
|
||||||
packo.version = nver;
|
|
||||||
buf = JSON.stringify(packo, null, 2);
|
|
||||||
if ( buf ) {
|
|
||||||
buf += "\n";
|
|
||||||
}
|
|
||||||
} break;
|
|
||||||
|
|
||||||
default: {
|
|
||||||
buf = cnt
|
|
||||||
.split('\n')
|
|
||||||
.map(function (l) {
|
|
||||||
for(var i=ver_reg.length; i--;) {
|
|
||||||
if ( ver_reg[i].test(l) ) {
|
|
||||||
return l.replace(ver_reg[i], function ($0,$1) { return $1 + nver })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return l;
|
|
||||||
})
|
|
||||||
.join("\n")
|
|
||||||
;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ( buf && buf != cnt ) {
|
|
||||||
console.log("\t" + fn.replace(_root, ''));
|
|
||||||
fs.writeFileSync(fn, buf);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ua-parser-js",
|
"name": "ua-parser-js",
|
||||||
"version": "0.7.7",
|
"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",
|
||||||
|
5
dist/ua-parser.min.js
vendored
5
dist/ua-parser.min.js
vendored
File diff suppressed because one or more lines are too long
8
dist/ua-parser.pack.js
vendored
Normal file
8
dist/ua-parser.pack.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -1,12 +1,12 @@
|
|||||||
Package.describe({
|
Package.describe({
|
||||||
name: 'faisalman:ua-parser-js',
|
name: 'faisalman:ua-parser-js',
|
||||||
version: '0.7.7',
|
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");
|
||||||
});
|
});
|
||||||
|
24
package.json
24
package.json
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"title": "UAParser.js",
|
"title": "UAParser.js",
|
||||||
"name": "ua-parser-js",
|
"name": "ua-parser-js",
|
||||||
"version": "0.7.7",
|
"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": [
|
||||||
@ -42,13 +42,29 @@
|
|||||||
],
|
],
|
||||||
"main": "src/ua-parser.js",
|
"main": "src/ua-parser.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "./build/build.sh",
|
"build": "uglifyjs src/ua-parser.js > dist/ua-parser.min.js --comments '/UAParser\\.js/' && uglifyjs src/ua-parser.js > dist/ua-parser.pack.js --comments '/UAParser\\.js/' --compress --mangle",
|
||||||
"verup": "node ./build/verup.js"
|
"test": "jshint src/ua-parser.js && mocha -R nyan test/test.js",
|
||||||
|
"verup": "node ./node_modules/verup",
|
||||||
|
"version": "node ./node_modules/verup 0"
|
||||||
|
},
|
||||||
|
"verup": {
|
||||||
|
"files": [
|
||||||
|
"ua-parser-js.jquery.json",
|
||||||
|
"component.json",
|
||||||
|
"bower.json",
|
||||||
|
"package.js",
|
||||||
|
"src/ua-parser.js"
|
||||||
|
],
|
||||||
|
"regs": [
|
||||||
|
"^((?:\\$|(\\s*\\*\\s*@)|(\\s*(?:var|,)?\\s+))(?:LIBVERSION|version)[\\s\\:='\"]+)([0-9]+(?:\\.[0-9]+){2,2})",
|
||||||
|
"^(\\s?\\*.*v)([0-9]+(?:\\.[0-9]+){2,2})"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"jshint": "~1.1.0",
|
"jshint": "~1.1.0",
|
||||||
"mocha": "~1.8.0",
|
"mocha": "~1.8.0",
|
||||||
"uglify-js": "~1.3.4"
|
"uglify-js": "~1.3.4",
|
||||||
|
"verup": "^1.3.x"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
79
readme.md
79
readme.md
@ -1,8 +1,9 @@
|
|||||||
# UAParser.js
|
# UAParser.js
|
||||||
|
|
||||||
Lightweight JavaScript-based User-Agent string parser. Supports browser & node.js environment. Also available as jQuery/Zepto plugin, Component package, Bower package, Meteor package, & AMD module
|
Lightweight JavaScript-based User-Agent string parser. Supports browser & node.js environment. Also available as jQuery/Zepto plugin, Component/Bower/Meteor package, & RequireJS/AMD module
|
||||||
|
|
||||||
[](https://travis-ci.org/faisalman/ua-parser-js)
|
[](https://travis-ci.org/faisalman/ua-parser-js)
|
||||||
|
[](http://flattr.com/thing/3867907/faisalmanua-parser-js-on-GitHub)
|
||||||
|
|
||||||
* Author : Faisal Salman <<fyzlman@gmail.com>>
|
* Author : Faisal Salman <<fyzlman@gmail.com>>
|
||||||
* Demo : http://faisalman.github.io/ua-parser-js
|
* Demo : http://faisalman.github.io/ua-parser-js
|
||||||
@ -12,25 +13,25 @@ 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.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Methods
|
## Methods
|
||||||
|
|
||||||
* `getBrowser()`
|
* `getBrowser()`
|
||||||
* returns `{ name: '', major: '', version: '' }`
|
* returns `{ name: '', version: '' }`
|
||||||
|
|
||||||
```
|
```
|
||||||
# Possible 'browser.name':
|
# Possible 'browser.name':
|
||||||
Amaya, Android Browser, Arora, Avant, Baidu, Blazer, Bolt, Camino, Chimera, Chrome,
|
Amaya, Android Browser, Arora, Avant, Baidu, Blazer, Bolt, Camino, Chimera, Chrome,
|
||||||
Chromium, Comodo Dragon, Conkeror, Dillo, Dolphin, Doris, Epiphany, Fennec, Firebird,
|
Chromium, Comodo Dragon, Conkeror, Dillo, Dolphin, Doris, Edge, Epiphany, Fennec,
|
||||||
Firefox, Flock, GoBrowser, iCab, ICE Browser, IceApe, IceCat, IceDragon,
|
Firebird, Firefox, Flock, GoBrowser, iCab, ICE Browser, IceApe, IceCat, IceDragon,
|
||||||
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' & 'browser.major' determined dynamically
|
# 'browser.version' determined dynamically
|
||||||
```
|
```
|
||||||
|
|
||||||
* `getDevice()`
|
* `getDevice()`
|
||||||
@ -54,8 +55,8 @@ Siemens, Sony-Ericsson, Sprint, Xbox, ZTE
|
|||||||
|
|
||||||
```
|
```
|
||||||
# Possible 'engine.name'
|
# Possible 'engine.name'
|
||||||
Amaya, Gecko, iCab, KHTML, Links, Lynx, NetFront, NetSurf, Presto, Tasman,
|
Amaya, EdgeHTML, Gecko, iCab, KHTML, Links, Lynx, NetFront, NetSurf, Presto,
|
||||||
Trident, w3m, WebKit
|
Tasman, Trident, w3m, WebKit
|
||||||
|
|
||||||
# 'engine.version' determined dynamically
|
# 'engine.version' determined dynamically
|
||||||
```
|
```
|
||||||
@ -112,8 +113,7 @@ ppc, sparc, sparc64
|
|||||||
ua: "",
|
ua: "",
|
||||||
browser: {
|
browser: {
|
||||||
name: "",
|
name: "",
|
||||||
version: "",
|
version: ""
|
||||||
major: ""
|
|
||||||
},
|
},
|
||||||
engine: {
|
engine: {
|
||||||
name: "",
|
name: "",
|
||||||
@ -142,7 +142,7 @@ ppc, sparc, sparc64
|
|||||||
// this will also produce the same result (without instantiation):
|
// this will also produce the same result (without instantiation):
|
||||||
// var result = UAParser(uastring);
|
// var result = UAParser(uastring);
|
||||||
|
|
||||||
console.log(result.browser); // {name: "Chromium", major: "15", version: "15.0.874.106"}
|
console.log(result.browser); // {name: "Chromium", version: "15.0.874.106"}
|
||||||
console.log(result.device); // {model: undefined, type: undefined, vendor: undefined}
|
console.log(result.device); // {model: undefined, type: undefined, vendor: undefined}
|
||||||
console.log(result.os); // {name: "Ubuntu", version: "11.10"}
|
console.log(result.os); // {name: "Ubuntu", version: "11.10"}
|
||||||
console.log(result.os.version); // "11.10"
|
console.log(result.os.version); // "11.10"
|
||||||
@ -167,20 +167,6 @@ ppc, sparc, sparc64
|
|||||||
</html>
|
</html>
|
||||||
```
|
```
|
||||||
|
|
||||||
### Extending regex patterns
|
|
||||||
|
|
||||||
* `UAParser(uastring[, extensions])`
|
|
||||||
|
|
||||||
Pass your own regexes to extend the limited matching rules.
|
|
||||||
|
|
||||||
```js
|
|
||||||
// Example:
|
|
||||||
var uaString = 'ownbrowser/1.3';
|
|
||||||
var ownBrowser = [[/(ownbrowser)\/((\d+)?[\w\.]+)/i], [UAParser.BROWSER.NAME, UAParser.BROWSER.VERSION, UAParser.BROWSER.MAJOR]];
|
|
||||||
var parser = new UAParser(uaString, {browser: ownBrowser});
|
|
||||||
console.log(parser.getBrowser()); // {name: "ownbrowser", major: "1", version: "1.3"}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Using node.js
|
### Using node.js
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@ -188,10 +174,18 @@ $ npm install ua-parser-js
|
|||||||
```
|
```
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var UAParser = require('ua-parser-js');
|
var http = require('http');
|
||||||
var parser = new UAParser();
|
var parser = require('ua-parser-js');
|
||||||
var ua = request.headers['user-agent']; // user-agent header from an HTTP request
|
|
||||||
console.log(parser.setUA(ua).getResult());
|
http.createServer(function (req, res) {
|
||||||
|
// get user-agent header
|
||||||
|
var ua = parser(req.headers['user-agent']);
|
||||||
|
// write the result as response
|
||||||
|
res.end(JSON.stringify(ua, null, ' '));
|
||||||
|
})
|
||||||
|
.listen(1337, '127.0.0.1');
|
||||||
|
|
||||||
|
console.log('Server running at http://127.0.0.1:1337/');
|
||||||
```
|
```
|
||||||
|
|
||||||
### Using requirejs
|
### Using requirejs
|
||||||
@ -209,12 +203,6 @@ require(['ua-parser'], function(UAParser) {
|
|||||||
$ component install faisalman/ua-parser-js
|
$ component install faisalman/ua-parser-js
|
||||||
```
|
```
|
||||||
|
|
||||||
```js
|
|
||||||
var UAParser = require('ua-parser-js');
|
|
||||||
var parser = new UAParser();
|
|
||||||
console.log(parser.getResult());
|
|
||||||
```
|
|
||||||
|
|
||||||
### Using bower
|
### Using bower
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@ -250,12 +238,27 @@ console.log($.ua.device); // {vendor: "Motorola", model: "Xoom", type:
|
|||||||
console.log(parseInt($.ua.browser.version.split('.')[0], 10)); // 4
|
console.log(parseInt($.ua.browser.version.split('.')[0], 10)); // 4
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Extending regex patterns
|
||||||
|
|
||||||
|
* `UAParser(uastring[, extensions])`
|
||||||
|
|
||||||
|
Pass your own regexes to extend the limited matching rules.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// Example:
|
||||||
|
var uaString = 'ownbrowser/1.3';
|
||||||
|
var ownBrowser = [[/(ownbrowser)\/([\w\.]+)/i], [UAParser.BROWSER.NAME, UAParser.BROWSER.VERSION]];
|
||||||
|
var parser = new UAParser(uaString, {browser: ownBrowser});
|
||||||
|
console.log(parser.getBrowser()); // {name: "ownbrowser", version: "1.3"}
|
||||||
|
```
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
Verify, test, & minify script
|
Verify, test, & minify script
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ npm test
|
$ npm run test
|
||||||
|
$ npm run build
|
||||||
```
|
```
|
||||||
|
|
||||||
Then submit a pull request to https://github.com/faisalman/ua-parser-js under `develop` branch.
|
Then submit a pull request to https://github.com/faisalman/ua-parser-js under `develop` branch.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/* global define */
|
/* global define */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UAParser.js v0.7.7
|
* 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
|
||||||
*
|
*
|
||||||
@ -19,7 +19,7 @@
|
|||||||
/////////////
|
/////////////
|
||||||
|
|
||||||
|
|
||||||
var LIBVERSION = '0.7.7',
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -241,8 +243,10 @@
|
|||||||
/(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, mapper.str, maps.browser.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], [
|
||||||
@ -259,14 +263,16 @@
|
|||||||
|
|
||||||
// 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)\/([\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
|
// Chromium/Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS
|
||||||
], [[NAME, mapper.str, maps.browser.name], VERSION], [
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
/(trident).+rv[:\s]([\w\.]+).+like\sgecko/i, // IE11
|
/(trident).+rv[:\s]([\w\.]+).+like\sgecko/i // IE11
|
||||||
/(Edge)\/((\d+)?[\w\.]+)/i // IE12
|
|
||||||
], [[NAME, 'IE'], VERSION], [
|
], [[NAME, 'IE'], VERSION], [
|
||||||
|
|
||||||
|
/(edge)\/((\d+)?[\w\.]+)/i // Microsoft Edge
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
/(yabrowser)\/([\w\.]+)/i // Yandex
|
/(yabrowser)\/([\w\.]+)/i // Yandex
|
||||||
], [[NAME, 'Yandex'], VERSION], [
|
], [[NAME, 'Yandex'], VERSION], [
|
||||||
|
|
||||||
@ -279,10 +285,16 @@
|
|||||||
|
|
||||||
/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i,
|
/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i,
|
||||||
// Chrome/OmniWeb/Arora/Tizen/Nokia
|
// Chrome/OmniWeb/Arora/Tizen/Nokia
|
||||||
/(uc\s?browser|qqbrowser)[\/\s]?([\w\.]+)/i
|
/(qqbrowser)[\/\s]?([\w\.]+)/i
|
||||||
// UCBrowser/QQBrowser
|
// QQBrowser
|
||||||
], [NAME, VERSION], [
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(uc\s?browser)[\/\s]?([\w\.]+)/i,
|
||||||
|
/ucweb.+(ucbrowser)[\/\s]?([\w\.]+)/i,
|
||||||
|
/JUC.+(ucweb)[\/\s]?([\w\.]+)/i
|
||||||
|
// UCBrowser
|
||||||
|
], [[NAME, 'UCBrowser'], VERSION], [
|
||||||
|
|
||||||
/(dolfin)\/([\w\.]+)/i // Dolphin
|
/(dolfin)\/([\w\.]+)/i // Dolphin
|
||||||
], [[NAME, 'Dolphin'], VERSION], [
|
], [[NAME, 'Dolphin'], VERSION], [
|
||||||
|
|
||||||
@ -295,6 +307,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']], [
|
||||||
|
|
||||||
@ -322,8 +337,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
|
||||||
@ -521,7 +536,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
|
||||||
@ -535,7 +550,7 @@
|
|||||||
/(alcatel|geeksphone|huawei|lenovo|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]+)*/i
|
/(alcatel|geeksphone|huawei|lenovo|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]+)*/i
|
||||||
// Alcatel/GeeksPhone/Huawei/Lenovo/Nexian/Panasonic/Sony
|
// Alcatel/GeeksPhone/Huawei/Lenovo/Nexian/Panasonic/Sony
|
||||||
], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [
|
], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/(nexus\s9)/i // HTC Nexus 9
|
/(nexus\s9)/i // HTC Nexus 9
|
||||||
], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
@ -547,7 +562,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]], [
|
||||||
@ -599,7 +615,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]
|
||||||
|
|
||||||
/*//////////////////////////
|
/*//////////////////////////
|
||||||
@ -655,7 +672,7 @@
|
|||||||
], [VENDOR, MODEL, [TYPE, MOBILE]], [
|
], [VENDOR, MODEL, [TYPE, MOBILE]], [
|
||||||
/(i-STYLE2.1)/i // i-mobile i-STYLE 2.1
|
/(i-STYLE2.1)/i // i-mobile i-STYLE 2.1
|
||||||
], [[MODEL, 'i-STYLE 2.1'], [VENDOR, 'i-mobile'], [TYPE, MOBILE]], [
|
], [[MODEL, 'i-STYLE 2.1'], [VENDOR, 'i-mobile'], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/(mobiistar touch LAI 512)/i // mobiistar touch LAI 512
|
/(mobiistar touch LAI 512)/i // mobiistar touch LAI 512
|
||||||
], [[MODEL, 'Touch LAI 512'], [VENDOR, 'mobiistar'], [TYPE, MOBILE]], [
|
], [[MODEL, 'Touch LAI 512'], [VENDOR, 'mobiistar'], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
@ -667,6 +684,9 @@
|
|||||||
|
|
||||||
engine : [[
|
engine : [[
|
||||||
|
|
||||||
|
/windows.+\sedge\/([\w\.]+)/i // EdgeHTML
|
||||||
|
], [VERSION, [NAME, 'EdgeHTML']], [
|
||||||
|
|
||||||
/(presto)\/([\w\.]+)/i, // Presto
|
/(presto)\/([\w\.]+)/i, // Presto
|
||||||
/(webkit|trident|netfront|netsurf|amaya|lynx|w3m)\/([\w\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m
|
/(webkit|trident|netfront|netsurf|amaya|lynx|w3m)\/([\w\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m
|
||||||
/(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i, // KHTML/Tasman/Links
|
/(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i, // KHTML/Tasman/Links
|
||||||
@ -693,7 +713,7 @@
|
|||||||
], [[NAME, 'BlackBerry'], VERSION], [
|
], [[NAME, 'BlackBerry'], VERSION], [
|
||||||
/(blackberry)\w*\/?([\w\.]+)*/i, // Blackberry
|
/(blackberry)\w*\/?([\w\.]+)*/i, // Blackberry
|
||||||
/(tizen)[\/\s]([\w\.]+)/i, // Tizen
|
/(tizen)[\/\s]([\w\.]+)/i, // Tizen
|
||||||
/(android|webos|palm\os|qnx|bada|rim\stablet\sos|meego|contiki)[\/\s-]?([\w\.]+)*/i,
|
/(android|webos|palm\sos|qnx|bada|rim\stablet\sos|meego|contiki)[\/\s-]?([\w\.]+)*/i,
|
||||||
// Android/WebOS/Palm/QNX/Bada/RIM/MeeGo/Contiki
|
// Android/WebOS/Palm/QNX/Bada/RIM/MeeGo/Contiki
|
||||||
/linux;.+(sailfish);/i // Sailfish OS
|
/linux;.+(sailfish);/i // Sailfish OS
|
||||||
], [NAME, VERSION], [
|
], [NAME, VERSION], [
|
||||||
@ -705,12 +725,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
|
||||||
@ -731,8 +751,8 @@
|
|||||||
/(iphone)(?:.*os\s*([\w]+)*\slike\smac|;\sopera)/i // iOS
|
/(iphone)(?:.*os\s*([\w]+)*\slike\smac|;\sopera)/i // iOS
|
||||||
], [[NAME, 'iPhone'], [VERSION, /_/g, '.']], [
|
], [[NAME, 'iPhone'], [VERSION, /_/g, '.']], [
|
||||||
|
|
||||||
/(ipad)(?:.*os\s*([\w]+)*\slike\smac|;\sopera)/i // iOS
|
/(ip[honead]+)(?:.*os\s([\w]+)*\slike\smac|;\sopera)/i // iOS
|
||||||
], [[NAME, 'iPad'], [VERSION, /_/g, '.']], [
|
], [[NAME, 'iOS'], [VERSION, /_/g, '.']], [
|
||||||
|
|
||||||
/(mac\sos\sx)\s?([\w\s\.]+\w)*/i,
|
/(mac\sos\sx)\s?([\w\s\.]+\w)*/i,
|
||||||
/(macintosh|mac(?=_powerpc)\s)/i // Mac OS
|
/(macintosh|mac(?=_powerpc)\s)/i // Mac OS
|
||||||
@ -857,7 +877,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// jQuery/Zepto specific (optional)
|
// jQuery/Zepto specific (optional)
|
||||||
// Note:
|
// Note:
|
||||||
// In AMD env the global scope should be kept clean, but jQuery is an exception.
|
// In AMD env the global scope should be kept clean, but jQuery is an exception.
|
||||||
// jQuery always exports to global scope, unless jQuery.noConflict(true) is used,
|
// jQuery always exports to global scope, unless jQuery.noConflict(true) is used,
|
||||||
// and we should catch that.
|
// and we should catch that.
|
||||||
@ -877,4 +897,4 @@
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
})(this);
|
})(typeof window === 'object' ? window : this);
|
||||||
|
@ -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,17 +682,37 @@
|
|||||||
{
|
{
|
||||||
"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" : "UC Browser",
|
"name" : "UCBrowser",
|
||||||
"version" : "8.4.0.159",
|
"version" : "8.4.0.159",
|
||||||
"major" : "8"
|
"major" : "8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"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",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "UCBrowser",
|
||||||
|
"version" : "10.4.0.558",
|
||||||
|
"major" : "10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "UC Browser J2ME 2",
|
||||||
|
"ua" : "JUC (Linux; U; 2.3.5; zh-cn; GT-I9100; 480*800) UCWEB7.9.0.94/139/800",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "UCBrowser",
|
||||||
|
"version" : "7.9.0.94",
|
||||||
|
"major" : "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",
|
||||||
@ -682,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",
|
||||||
@ -690,13 +730,33 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Windows 10 EI",
|
"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" : "IE",
|
"name" : "Edge",
|
||||||
"version" : "12.0",
|
"version" : "12.0",
|
||||||
"major" : "12"
|
"major" : "12"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Iridium",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Iridium/43.8 Safari/537.36 Chrome/43.0.2357.132",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Iridium",
|
||||||
|
"version" : "43.8",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -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"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"desc" : "EdgeHTML",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 Edge/12.0",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "EdgeHTML",
|
||||||
|
"version" : "12.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Gecko",
|
"desc" : "Gecko",
|
||||||
"ua" : "Mozilla/5.0 (X11; Linux x86_64; rv:2.0b9pre) Gecko/20110111 Firefox/4.0b9pre",
|
"ua" : "Mozilla/5.0 (X11; Linux x86_64; rv:2.0b9pre) Gecko/20110111 Firefox/4.0b9pre",
|
||||||
|
@ -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" : "",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"title": "UAParser.js",
|
"title": "UAParser.js",
|
||||||
"name": "ua-parser-js",
|
"name": "ua-parser-js",
|
||||||
"version": "0.7.7",
|
"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",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user