building the UA objects from multiple JSON lists to improve popup's startup performance
|
@ -1,8 +0,0 @@
|
||||||
ua-parser.min.js:
|
|
||||||
https://github.com/faisalman/ua-parser-js/blob/master/dist/ua-parser.min.js
|
|
||||||
|
|
||||||
Generating the list:
|
|
||||||
Run
|
|
||||||
JSON.stringify([...document.querySelectorAll('li a')].map(a => a.textContent))
|
|
||||||
on
|
|
||||||
http://www.useragentstring.com/pages/useragentstring.php?typ=Browser
|
|
|
@ -1,167 +0,0 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
|
||||||
<link rel="stylesheet" href="index.css">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="list" data-loading=true>
|
|
||||||
<table>
|
|
||||||
<colgroup>
|
|
||||||
<col width="40">
|
|
||||||
<col width="150">
|
|
||||||
<col width="100">
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead id="filter">
|
|
||||||
<tr>
|
|
||||||
<th></th>
|
|
||||||
<th>
|
|
||||||
<select id="browser">
|
|
||||||
<option value="skipped">All (Browser)</option>
|
|
||||||
<optgroup label="Populars">
|
|
||||||
<option value="ie">Internet Explorer</option>
|
|
||||||
<option value="safari">Safari</option>
|
|
||||||
<option value="chrome">Chrome</option>
|
|
||||||
<option value="firefox">Firefox</option>
|
|
||||||
<option value="opera">Opera</option>
|
|
||||||
<option value="edge">Edge</option>
|
|
||||||
</optgroup>
|
|
||||||
<optgroup label="Others">
|
|
||||||
<option value="webkit">WebKit</option>
|
|
||||||
<option value="avant">Avant</option>
|
|
||||||
<option value="maxthon">Maxthon</option>
|
|
||||||
<option value="arora">Arora</option>
|
|
||||||
<option value="mozilla">Mozilla</option>
|
|
||||||
<option value="epiphany">Epiphany</option>
|
|
||||||
<option value="camino">Camino</option>
|
|
||||||
<option value="chimera">Chimera</option>
|
|
||||||
<option value="chromium">Chromium</option>
|
|
||||||
<option value="comodo dragon">Dragon</option>
|
|
||||||
<option value="conkeror">conkeror</option>
|
|
||||||
<option value="conkeror">Conkeror</option>
|
|
||||||
<option value="dillo">Dillo</option>
|
|
||||||
<option value="links">Links</option>
|
|
||||||
<option value="firebird">Firebird</option>
|
|
||||||
<option value="swiftfox">Swiftfox</option>
|
|
||||||
<option value="netscape">Netscape</option>
|
|
||||||
<option value="flock">Flock</option>
|
|
||||||
<option value="icab">iCab</option>
|
|
||||||
<option value="iceape">Iceape</option>
|
|
||||||
<option value="icecat">icecat</option>
|
|
||||||
<option value="icecat">IceCat</option>
|
|
||||||
<option value="iceweasel">IceWeasel</option>
|
|
||||||
<option value="iron">Iron</option>
|
|
||||||
<option value="k-meleon">Meleon</option>
|
|
||||||
<option value="konqueror">Konqueror</option>
|
|
||||||
<option value="lunascape">Lunascape</option>
|
|
||||||
<option value="lynx">Lynx</option>
|
|
||||||
<option value="maxthon">MAXTHON</option>
|
|
||||||
<option value="midori">midori</option>
|
|
||||||
<option value="midori">Midori</option>
|
|
||||||
<option value="khtml">KHTML</option>
|
|
||||||
<option value="mosaic">Mosaic</option>
|
|
||||||
<option value="netsurf">NetSurf</option>
|
|
||||||
<option value="omniweb">OmniWeb</option>
|
|
||||||
<option value="opera tablet">Tablet</option>
|
|
||||||
<option value="opera mini">Mini</option>
|
|
||||||
<option value="phoenix">Phoenix</option>
|
|
||||||
<option value="rockmelt">RockMelt</option>
|
|
||||||
<option value="mobile safari">Safari</option>
|
|
||||||
<option value="android browser">Browser</option>
|
|
||||||
<option value="seamonkey">SeaMonkey</option>
|
|
||||||
<option value="slim">Slim</option>
|
|
||||||
<option value="webkit">Webkit</option>
|
|
||||||
<option value="w3m">w3m</option>
|
|
||||||
</optgroup>
|
|
||||||
</select>
|
|
||||||
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<select id="os">
|
|
||||||
<option value="skipped">All (OS)</option>
|
|
||||||
<optgroup label="Populars">
|
|
||||||
<option value="windows">Windows</option>
|
|
||||||
<option value="mac os">Mac OS</option>
|
|
||||||
<option value="linux">Linux</option>
|
|
||||||
<option value="chromium os">Chromium OS</option>
|
|
||||||
<option value="ubuntu">Ubuntu</option>
|
|
||||||
<option value="debian">Debian</option>
|
|
||||||
<option value="android">Android</option>
|
|
||||||
<option value="ios">iOS</option>
|
|
||||||
</optgroup>
|
|
||||||
<optgroup label="Others">
|
|
||||||
<option value="amigaos">AmigaOS</option>
|
|
||||||
<option value="openbsd">OpenBSD</option>
|
|
||||||
<option value="beos">BeOS</option>
|
|
||||||
<option value="haiku">Haiku</option>
|
|
||||||
<option value="solaris">Solaris</option>
|
|
||||||
<option value="netbsd">NetBSD</option>
|
|
||||||
<option value="freebsd">FreeBSD</option>
|
|
||||||
<option value="slackware">Slackware</option>
|
|
||||||
<option value="suse">SUSE</option>
|
|
||||||
<option value="gentoo">gentoo</option>
|
|
||||||
<option value="fedora">Fedora</option>
|
|
||||||
<option value="gentoo">Gentoo</option>
|
|
||||||
<option value="mageia">Mageia</option>
|
|
||||||
<option value="centos">CentOS</option>
|
|
||||||
<option value="mint">Mint</option>
|
|
||||||
<option value="dragonfly">DragonFly</option>
|
|
||||||
<option value="kubuntu">Kubuntu</option>
|
|
||||||
<option value="mandriva">Mandriva</option>
|
|
||||||
<option value="zenwalk">Zenwalk</option>
|
|
||||||
<option value="unix">Unix</option>
|
|
||||||
<option value="gnu">GNU</option>
|
|
||||||
<option value="os/2">OS/2</option>
|
|
||||||
<option value="aix">AIX</option>
|
|
||||||
<option value="qnx">QNX</option>
|
|
||||||
<option value="beos">BEOS</option>
|
|
||||||
<option value="risc os">RISC OS</option>
|
|
||||||
<option value="symbian">Symbian</option>
|
|
||||||
<option value="nintendo">Nintendo</option>
|
|
||||||
<option value="opensolaris">OpenSolaris</option>
|
|
||||||
<option value="kubuntu">kubuntu</option>
|
|
||||||
</optgroup>
|
|
||||||
</select>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
User-Agent
|
|
||||||
<select id="sort">
|
|
||||||
<option value="true">descending</option>
|
|
||||||
<option value="false">ascending</option>
|
|
||||||
</select>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<template>
|
|
||||||
<tr>
|
|
||||||
<td><input type="radio" name="select"></td>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
</template>
|
|
||||||
<tbody></tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div hbox>
|
|
||||||
<input type="search" id="custom" placeholder="Filter items">
|
|
||||||
<input type="button" value="Options" title="Open options page" style="margin-left: 2px;" data-cmd="options">
|
|
||||||
<input type="button" value="Refresh Tab" title="Refresh the current page" data-cmd="refresh">
|
|
||||||
<input type="button" value="Restart" title="Click to reload the extension. This will cause all the window-based user-agent strings to be cleared" data-cmd="reload">
|
|
||||||
</div>
|
|
||||||
<div hbox id="agent" pack="center" align="center">
|
|
||||||
<span id="info">User-Agent String:</span>
|
|
||||||
<span flex="1"></span>
|
|
||||||
<input type="button" value="Apply" title="Set this string as the browser's User-Agent string" data-cmd="apply">
|
|
||||||
<input type="button" value="Window" title="Set this string as this window's User-Agent string" data-cmd="window">
|
|
||||||
<input type="button" value="Reset" title="Reset User-Agent string to the default one. This will not reset window-based UA strings. To reset them, use the 'Restart' button" style="margin-left: 2px;" data-cmd="reset">
|
|
||||||
</div>
|
|
||||||
<input id="ua" type="text" placeholder="Your preferred user-agent string" title="To set blank user-agent string, use 'empty' keyword">
|
|
||||||
<div id="explore"></div>
|
|
||||||
<script src="ua-parser.min.js"></script>
|
|
||||||
<script src="index.js"></script>
|
|
||||||
<script async src="matched.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
9
data/popup/ua-parser.min.js
vendored
2
extension/ReadMe.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ua-parser.min.js:
|
||||||
|
https://github.com/faisalman/ua-parser-js/releases/tag/0.7.19
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
1
extension/data/popup/browsers
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../../../node/browsers/
|
|
@ -96,6 +96,8 @@ select {
|
||||||
height: 30px;
|
height: 30px;
|
||||||
color: #000;
|
color: #000;
|
||||||
background-color: #e7e7e7;
|
background-color: #e7e7e7;
|
||||||
|
white-space: nowrap;
|
||||||
|
padding-left: 10px;
|
||||||
}
|
}
|
||||||
#list tr {
|
#list tr {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
@ -139,6 +141,10 @@ select {
|
||||||
#filter td:first-child {
|
#filter td:first-child {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
}
|
}
|
||||||
|
#filter th:last-of-type {
|
||||||
|
text-align: right;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
#agent {
|
#agent {
|
||||||
padding: 10px 0;
|
padding: 10px 0;
|
83
extension/data/popup/index.html
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" href="index.css">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="list" data-loading=true>
|
||||||
|
<table>
|
||||||
|
<colgroup>
|
||||||
|
<col width="40">
|
||||||
|
<col width="150">
|
||||||
|
<col width="100">
|
||||||
|
<col>
|
||||||
|
</colgroup>
|
||||||
|
<thead id="filter">
|
||||||
|
<tr>
|
||||||
|
<th colspan="3">
|
||||||
|
<select id="browser">
|
||||||
|
<optgroup label="Populars">
|
||||||
|
<option value="Internet Explorer">Internet Explorer</option>
|
||||||
|
<option value="Safari">Safari</option>
|
||||||
|
<option value="Chrome">Chrome</option>
|
||||||
|
<option value="Firefox">Firefox</option>
|
||||||
|
<option value="Opera">Opera</option>
|
||||||
|
<option value="Edge">Edge</option>
|
||||||
|
</optgroup>
|
||||||
|
<optgroup label="Others"></optgroup>
|
||||||
|
</select>
|
||||||
|
<select id="os">
|
||||||
|
<optgroup label="Populars">
|
||||||
|
<option value="Windows">Windows</option>
|
||||||
|
<option value="Mac OS">Mac OS</option>
|
||||||
|
<option value="Linux">Linux</option>
|
||||||
|
<option value="Chromium OS">Chromium OS</option>
|
||||||
|
<option value="Ubuntu">Ubuntu</option>
|
||||||
|
<option value="Debian">Debian</option>
|
||||||
|
<option value="Android">Android</option>
|
||||||
|
<option value="iOS">iOS</option>
|
||||||
|
</optgroup>
|
||||||
|
<optgroup label="Others"></optgroup>
|
||||||
|
</select>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
User-Agent
|
||||||
|
<select id="sort">
|
||||||
|
<option value="true">descending</option>
|
||||||
|
<option value="false">ascending</option>
|
||||||
|
</select>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<template>
|
||||||
|
<tr>
|
||||||
|
<td><input type="radio" name="select"></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</template>
|
||||||
|
<tbody></tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div hbox>
|
||||||
|
<input type="search" id="custom" placeholder="Filter items">
|
||||||
|
<input type="button" value="Options" title="Open options page" style="margin-left: 2px;" data-cmd="options">
|
||||||
|
<input type="button" value="Refresh Tab" title="Refresh the current page" data-cmd="refresh">
|
||||||
|
<input type="button" value="Restart" title="Click to reload the extension. This will cause all the window-based user-agent strings to be cleared" data-cmd="reload">
|
||||||
|
</div>
|
||||||
|
<div hbox id="agent" pack="center" align="center">
|
||||||
|
<span id="info">User-Agent String:</span>
|
||||||
|
<span flex="1"></span>
|
||||||
|
<input type="button" value="Apply" title="Set this string as the browser's User-Agent string" data-cmd="apply">
|
||||||
|
<input type="button" value="Window" title="Set this string as this window's User-Agent string" data-cmd="window">
|
||||||
|
<input type="button" value="Reset" title="Reset User-Agent string to the default one. This will not reset window-based UA strings. To reset them, use the 'Restart' button" style="margin-left: 2px;" data-cmd="reset">
|
||||||
|
</div>
|
||||||
|
<input id="ua" type="text" placeholder="Your preferred user-agent string" title="To set blank user-agent string, use 'empty' keyword">
|
||||||
|
<div id="explore"></div>
|
||||||
|
<script src="index.js"></script>
|
||||||
|
<script async src="matched.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -1,37 +1,8 @@
|
||||||
/* globals UAParser */
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
document.body.dataset.android = navigator.userAgent.indexOf('Android') !== -1;
|
document.body.dataset.android = navigator.userAgent.indexOf('Android') !== -1;
|
||||||
|
|
||||||
var json = [];
|
var map = {};
|
||||||
|
|
||||||
function filter(list) {
|
|
||||||
return list.filter(o => {
|
|
||||||
const browser = document.getElementById('browser').value;
|
|
||||||
if (browser && browser !== 'skipped') {
|
|
||||||
try {
|
|
||||||
if (o.browser.name.toLowerCase().trim().indexOf(browser.trim()) === -1) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (e) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const os = document.getElementById('os').value;
|
|
||||||
if (os && os !== 'skipped') {
|
|
||||||
try {
|
|
||||||
if (o.os.name.toLowerCase().trim().indexOf(os.trim()) === -1) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (e) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function sort(arr) {
|
function sort(arr) {
|
||||||
function sort(a = '', b = '') {
|
function sort(a = '', b = '') {
|
||||||
|
@ -62,20 +33,20 @@ function sort(arr) {
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
function parse(j) {
|
|
||||||
json = j.map(s => UAParser(s));
|
|
||||||
}
|
|
||||||
|
|
||||||
function update() {
|
function update() {
|
||||||
const list = sort(filter(json));
|
const browser = document.getElementById('browser').value;
|
||||||
|
const os = document.getElementById('os').value;
|
||||||
|
|
||||||
const t = document.querySelector('template');
|
const t = document.querySelector('template');
|
||||||
const parent = document.getElementById('list');
|
const parent = document.getElementById('list');
|
||||||
const tbody = parent.querySelector('tbody');
|
const tbody = parent.querySelector('tbody');
|
||||||
tbody.textContent = '';
|
tbody.textContent = '';
|
||||||
|
|
||||||
parent.dataset.loading = true;
|
parent.dataset.loading = true;
|
||||||
window.setTimeout(() => {
|
fetch('browsers/' + browser + '-' + os.replace(/\//g, '-') + '.json').then(r => r.json()).catch(() => []).then(list => {
|
||||||
|
if (list) {
|
||||||
const fragment = document.createDocumentFragment();
|
const fragment = document.createDocumentFragment();
|
||||||
list.forEach(o => {
|
for (const o of sort(list)) {
|
||||||
const clone = document.importNode(t.content, true);
|
const clone = document.importNode(t.content, true);
|
||||||
const second = clone.querySelector('td:nth-child(2)');
|
const second = clone.querySelector('td:nth-child(2)');
|
||||||
second.title = second.textContent = o.browser.name + ' ' + (o.browser.version || ' ');
|
second.title = second.textContent = o.browser.name + ' ' + (o.browser.version || ' ');
|
||||||
|
@ -84,11 +55,19 @@ function update() {
|
||||||
const forth = clone.querySelector('td:nth-child(4)');
|
const forth = clone.querySelector('td:nth-child(4)');
|
||||||
forth.title = forth.textContent = o.ua;
|
forth.title = forth.textContent = o.ua;
|
||||||
fragment.appendChild(clone);
|
fragment.appendChild(clone);
|
||||||
});
|
}
|
||||||
tbody.appendChild(fragment);
|
tbody.appendChild(fragment);
|
||||||
document.getElementById('custom').placeholder = `Filter among ${list.length} "User-Agent" strings`;
|
document.getElementById('custom').placeholder = `Filter among ${list.length} "User-Agent" strings`;
|
||||||
|
[...document.getElementById('os').querySelectorAll('option')].forEach(option => {
|
||||||
|
option.disabled = map[browser][option.value] !== true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw Error('OS is not found');
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
parent.dataset.loading = false;
|
parent.dataset.loading = false;
|
||||||
}, 1000);
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener('change', ({target}) => {
|
document.addEventListener('change', ({target}) => {
|
||||||
|
@ -101,6 +80,29 @@ document.addEventListener('change', ({target}) => {
|
||||||
document.getElementById('ua').dispatchEvent(new Event('input'));
|
document.getElementById('ua').dispatchEvent(new Event('input'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
document.addEventListener('DOMContentLoaded', () => fetch('./map.json').then(r => r.json())
|
||||||
|
.then(o => {
|
||||||
|
Object.assign(map, o);
|
||||||
|
const OSs = new Set();
|
||||||
|
const f1 = document.createDocumentFragment();
|
||||||
|
const f2 = document.createDocumentFragment();
|
||||||
|
Object.keys(map).sort().forEach(s => {
|
||||||
|
Object.keys(map[s]).forEach(s => OSs.add(s));
|
||||||
|
const option = document.createElement('option');
|
||||||
|
option.value = option.textContent = s;
|
||||||
|
f1.appendChild(option);
|
||||||
|
});
|
||||||
|
document.querySelector('#browser optgroup:last-of-type').appendChild(f1);
|
||||||
|
document.getElementById('browser').value = localStorage.getItem('browser') || 'Chrome';
|
||||||
|
for (const os of Array.from(OSs).sort()) {
|
||||||
|
const option = document.createElement('option');
|
||||||
|
option.value = option.textContent = os;
|
||||||
|
f2.appendChild(option);
|
||||||
|
}
|
||||||
|
document.querySelector('#os optgroup:last-of-type').appendChild(f2);
|
||||||
|
document.getElementById('os').value = localStorage.getItem('os') || 'Windows';
|
||||||
|
update();
|
||||||
|
}));
|
||||||
|
|
||||||
document.getElementById('list').addEventListener('click', ({target}) => {
|
document.getElementById('list').addEventListener('click', ({target}) => {
|
||||||
const tr = target.closest('tr');
|
const tr = target.closest('tr');
|
||||||
|
@ -121,9 +123,6 @@ document.getElementById('custom').addEventListener('keyup', ({target}) => {
|
||||||
.forEach(tr => tr.dataset.matched = tr.textContent.toLowerCase().indexOf(value.toLowerCase()) !== -1);
|
.forEach(tr => tr.dataset.matched = tr.textContent.toLowerCase().indexOf(value.toLowerCase()) !== -1);
|
||||||
});
|
});
|
||||||
|
|
||||||
// init
|
|
||||||
document.getElementById('os').value = localStorage.getItem('os') || 'windows';
|
|
||||||
document.getElementById('browser').value = localStorage.getItem('browser') || 'chrome';
|
|
||||||
chrome.storage.local.get({
|
chrome.storage.local.get({
|
||||||
ua: ''
|
ua: ''
|
||||||
}, prefs => document.getElementById('ua').value = prefs.ua || navigator.userAgent);
|
}, prefs => document.getElementById('ua').value = prefs.ua || navigator.userAgent);
|
||||||
|
@ -133,18 +132,6 @@ chrome.storage.onChanged.addListener(prefs => {
|
||||||
document.getElementById('ua').dispatchEvent(new Event('input'));
|
document.getElementById('ua').dispatchEvent(new Event('input'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
window.addEventListener('load', () => {
|
|
||||||
window.setTimeout(() => {
|
|
||||||
const req = new XMLHttpRequest();
|
|
||||||
req.onload = () => {
|
|
||||||
parse(req.response);
|
|
||||||
update();
|
|
||||||
};
|
|
||||||
req.open('GET', 'list.json');
|
|
||||||
req.responseType = 'json';
|
|
||||||
req.send();
|
|
||||||
}, 100);
|
|
||||||
});
|
|
||||||
|
|
||||||
function msg(msg) {
|
function msg(msg) {
|
||||||
const info = document.getElementById('info');
|
const info = document.getElementById('info');
|
Before Width: | Height: | Size: 404 B After Width: | Height: | Size: 404 B |
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB |
1
extension/data/popup/map.json
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../../../node/map.json
|
|
@ -2,7 +2,7 @@
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"name": "User-Agent Switcher and Manager",
|
"name": "User-Agent Switcher and Manager",
|
||||||
"short_name": "useragent-switcher",
|
"short_name": "useragent-switcher",
|
||||||
"version": "0.2.6",
|
"version": "0.2.7",
|
||||||
|
|
||||||
"description": "Spoofs User-Agent strings of your browser with a new one globally, randomly or per hostname",
|
"description": "Spoofs User-Agent strings of your browser with a new one globally, randomly or per hostname",
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
},
|
},
|
||||||
"background":{
|
"background":{
|
||||||
"scripts":[
|
"scripts":[
|
||||||
"data/popup/ua-parser.min.js",
|
"ua-parser.min.js",
|
||||||
"common.js"
|
"common.js"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
"applications": {
|
"applications": {
|
||||||
"gecko": {
|
"gecko": {
|
||||||
"id": "{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}",
|
"id": "{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}",
|
||||||
"strict_min_version": "52.0"
|
"strict_min_version": "57.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
9
extension/ua-parser.min.js
vendored
Executable file
1
node/browsers/Android Browser-Android.json
Normal file
1
node/browsers/Android Browser-Windows.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (Windows; U; Windows CE; Mobile; like Android; ko-kr) AppleWebKit/533.3 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.3 Dorothy","browser":{"name":"Android Browser","version":"4.0","major":"4"},"engine":{"name":"WebKit","version":"533.3"},"os":{"name":"Windows","version":"CE"},"device":{"type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Android 2.2; Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4","browser":{"name":"Android Browser","version":"5.0.3","major":"5"},"engine":{"name":"WebKit","version":"533.19.4"},"os":{"name":"Windows","version":"7"},"device":{},"cpu":{}}]
|
1
node/browsers/Arora-Linux.json
Normal file
1
node/browsers/Arora-Windows.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6 (Change: )","browser":{"name":"Arora","version":"0.6","major":"0"},"engine":{"name":"WebKit","version":"527"},"os":{"name":"Windows","version":"Vista"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6 (Change: )","browser":{"name":"Arora","version":"0.6","major":"0"},"engine":{"name":"WebKit","version":"527"},"os":{"name":"Windows","version":"XP"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.4 (Change: )","browser":{"name":"Arora","version":"0.4","major":"0"},"engine":{"name":"WebKit","version":"527"},"os":{"name":"Windows","version":"Vista"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows; U; Windows NT 6.0; de-DE) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.4 (Change: )","browser":{"name":"Arora","version":"0.4","major":"0"},"engine":{"name":"WebKit","version":"527"},"os":{"name":"Windows","version":"Vista"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows; U; Windows NT 5.2; pt-BR) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.4 (Change: )","browser":{"name":"Arora","version":"0.4","major":"0"},"engine":{"name":"WebKit","version":"527"},"os":{"name":"Windows","version":"XP"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.4 (Change: )","browser":{"name":"Arora","version":"0.4","major":"0"},"engine":{"name":"WebKit","version":"527"},"os":{"name":"Windows","version":"XP"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)","browser":{"name":"Arora","version":"0.3","major":"0"},"engine":{"name":"WebKit","version":"523.15"},"os":{"name":"Windows","version":"XP"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-BE) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)","browser":{"name":"Arora","version":"0.3","major":"0"},"engine":{"name":"WebKit","version":"523.15"},"os":{"name":"Windows","version":"XP"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)","browser":{"name":"Arora","version":"0.3","major":"0"},"engine":{"name":"WebKit","version":"523.15"},"os":{"name":"Windows","version":"XP"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows; U; Windows NT 6.0; de-DE) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.2","browser":{"name":"Arora","version":"0.2","major":"0"},"engine":{"name":"WebKit","version":"523.15"},"os":{"name":"Windows","version":"Vista"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows; U; Windows NT 5.1; nl-NL) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.2","browser":{"name":"Arora","version":"0.2","major":"0"},"engine":{"name":"WebKit","version":"523.15"},"os":{"name":"Windows","version":"XP"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.2","browser":{"name":"Arora","version":"0.2","major":"0"},"engine":{"name":"WebKit","version":"523.15"},"os":{"name":"Windows","version":"XP"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows; U; Windows NT 5.1; de-CH) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.2","browser":{"name":"Arora","version":"0.2","major":"0"},"engine":{"name":"WebKit","version":"523.15"},"os":{"name":"Windows","version":"XP"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.34 (KHTML, like Gecko) Arora/0.11.0 Safari/534.34","browser":{"name":"Arora","version":"0.11.0","major":"0"},"engine":{"name":"WebKit","version":"534.34"},"os":{"name":"Windows","version":"7"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-MY) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.10.0","browser":{"name":"Arora","version":"0.10.0","major":"0"},"engine":{"name":"WebKit","version":"527"},"os":{"name":"Windows","version":"Vista"},"device":{},"cpu":{}}]
|
1
node/browsers/Avant -Windows.json
Normal file
1
node/browsers/BOLT-Windows.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; BOLT/2.340) AppleWebKit/530+ (KHTML, like Gecko) Version/4.0 Safari/530.17 UNTRUSTED/1.0 3gpp-gba","browser":{"name":"BOLT","version":"2.340","major":"2"},"engine":{"name":"WebKit","version":"530"},"os":{"name":"Windows","version":"XP"},"device":{},"cpu":{}}]
|
1
node/browsers/Blazer-Windows.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/4.0 (compatible; MSIE 6.0; Windows 95; PalmSource; Blazer 3.0) 16; 160x160","browser":{"name":"Blazer","version":"3.0","major":"3"},"engine":{},"os":{"name":"Windows","version":"95"},"device":{},"cpu":{}}]
|
1
node/browsers/Camino-Mac OS.json
Normal file
1
node/browsers/Chimera-Mac OS.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pl-PL; rv:1.0.1) Gecko/20021111 Chimera/0.6","browser":{"name":"Chimera","version":"0.6","major":"0"},"engine":{"name":"Gecko","version":"1.0.1"},"os":{"name":"Mac OS"},"device":{},"cpu":{"architecture":"ppc"}},{"ua":"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pl-PL; rv:1.0.1) Gecko/20021111 Chimera/0.6","browser":{"name":"Chimera","version":"0.6","major":"0"},"engine":{"name":"Gecko","version":"1.0.1"},"os":{"name":"Mac OS"},"device":{},"cpu":{"architecture":"ppc"}},{"ua":"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US; rv:1.0.1) Gecko/20021111 Chimera/0.6","browser":{"name":"Chimera","version":"0.6","major":"0"},"engine":{"name":"Gecko","version":"1.0.1"},"os":{"name":"Mac OS"},"device":{},"cpu":{"architecture":"ppc"}},{"ua":"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US; rv:1.0.1) Gecko/20021104 Chimera/0.6","browser":{"name":"Chimera","version":"0.6","major":"0"},"engine":{"name":"Gecko","version":"1.0.1"},"os":{"name":"Mac OS"},"device":{},"cpu":{"architecture":"ppc"}},{"ua":"Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.0.1) Gecko/20030111 Chimera/0.6","browser":{"name":"Chimera","version":"0.6","major":"0"},"engine":{"name":"Gecko","version":"1.0.1"},"os":{"name":"Mac OS","version":"Mach"},"device":{},"cpu":{"architecture":"ppc"}},{"ua":"Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.0.1) Gecko/20030109 Chimera/0.6","browser":{"name":"Chimera","version":"0.6","major":"0"},"engine":{"name":"Gecko","version":"1.0.1"},"os":{"name":"Mac OS","version":"Mach"},"device":{},"cpu":{"architecture":"ppc"}},{"ua":"Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.0.1) Gecko/20021220 Chimera/0.6","browser":{"name":"Chimera","version":"0.6","major":"0"},"engine":{"name":"Gecko","version":"1.0.1"},"os":{"name":"Mac OS","version":"Mach"},"device":{},"cpu":{"architecture":"ppc"}},{"ua":"Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.0.1) Gecko/20021216 Chimera/0.6","browser":{"name":"Chimera","version":"0.6","major":"0"},"engine":{"name":"Gecko","version":"1.0.1"},"os":{"name":"Mac OS","version":"Mach"},"device":{},"cpu":{"architecture":"ppc"}}]
|
1
node/browsers/Chrome WebView-Android.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (Linux; Android 7.1.2; Redmi Note 5A Build/N2G47H; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/63.0.3239.111 Mobile Safari/537.36","browser":{"name":"Chrome WebView","version":"63.0.3239.111","major":"63"},"engine":{"name":"WebKit","version":"537.36"},"os":{"name":"Android","version":"7.1.2"},"device":{"vendor":"Xiaomi","model":"Redmi Note 5A","type":"mobile"},"cpu":{}}]
|
1
node/browsers/Chrome-Android.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (Linux; Android 7.0; SM-G920F Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36","browser":{"name":"Chrome","version":"62.0.3202.84","major":"62"},"engine":{"name":"WebKit","version":"537.36"},"os":{"name":"Android","version":"7.0"},"device":{"vendor":"Samsung","model":"SM-G920F","type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36","browser":{"name":"Chrome","version":"34.0.1847.114","major":"34"},"engine":{"name":"WebKit","version":"537.36"},"os":{"name":"Android","version":"4.4.2"},"device":{"vendor":"LG","model":"Nexus 4","type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Linux; Android 7.0; SM-G930V Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.125 Mobile Safari/537.36","browser":{"name":"Chrome","version":"59.0.3071.125","major":"59"},"engine":{"name":"WebKit","version":"537.36"},"os":{"name":"Android","version":"7.0"},"device":{"vendor":"Samsung","model":"SM-G930V","type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Linux; Android 6.0.1; SM-G920V Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36","browser":{"name":"Chrome","version":"52.0.2743.98","major":"52"},"engine":{"name":"WebKit","version":"537.36"},"os":{"name":"Android","version":"6.0.1"},"device":{"vendor":"Samsung","model":"SM-G920V","type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)","browser":{"name":"Chrome","version":"41.0.2272.96","major":"41"},"engine":{"name":"WebKit","version":"537.36"},"os":{"name":"Android","version":"6.0.1"},"device":{"vendor":"LG","model":"Nexus 5","type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Linux; U; Android-4.0.3; en-us; Xoom Build/IML77) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Safari/535.7","browser":{"name":"Chrome","version":"16.0.912.75","major":"16"},"engine":{"name":"WebKit","version":"535.7"},"os":{"name":"Android","version":"4.0.3"},"device":{"vendor":"Motorola","model":"Xoom","type":"tablet"},"cpu":{}},{"ua":"Mozilla/5.0 (Linux; Android 8.1.0; INE-LX2 Build/HUAWEIINE-LX2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.91 Mobile Safari/537.36","browser":{"name":"Chrome","version":"68.0.3440.91","major":"68"},"engine":{"name":"WebKit","version":"537.36"},"os":{"name":"Android","version":"8.1.0"},"device":{"vendor":"Huawei","model":"INE-LX2","type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Linux; Android 6.0.1; vivo 1603 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.83 Mobile Safari/537.36","browser":{"name":"Chrome","version":"58.0.3029.83","major":"58"},"engine":{"name":"WebKit","version":"537.36"},"os":{"name":"Android","version":"6.0.1"},"device":{"type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Linux; Android 4.4.4; GT-I9060I Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Mobile Safari/537.36","browser":{"name":"Chrome","version":"67.0.3396.87","major":"67"},"engine":{"name":"WebKit","version":"537.36"},"os":{"name":"Android","version":"4.4.4"},"device":{"vendor":"Samsung","model":"GT-I9060I","type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko; googleweblight) Chrome/38.0.1025.166 Mobile Safari/535.19","browser":{"name":"Chrome","version":"38.0.1025.166","major":"38"},"engine":{"name":"WebKit","version":"535.19"},"os":{"name":"Android","version":"4.2.1"},"device":{"vendor":"LG","model":"Nexus 5","type":"mobile"},"cpu":{}}]
|
1
node/browsers/Chrome-Chromium OS.json
Normal file
1
node/browsers/Chrome-Debian.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.4 (KHTML, like Gecko) Chrome/4.0.237.0 Safari/532.4 Debian","browser":{"name":"Chrome","version":"4.0.237.0","major":"4"},"engine":{"name":"WebKit","version":"532.4"},"os":{"name":"Debian"},"device":{},"cpu":{"architecture":"ia32"}}]
|
1
node/browsers/Chrome-Fedora.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36","browser":{"name":"Chrome","version":"63.0.3239.132","major":"63"},"engine":{"name":"WebKit","version":"537.36"},"os":{"name":"Fedora"},"device":{},"cpu":{"architecture":"amd64"}}]
|
1
node/browsers/Chrome-FreeBSD.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; FreeBSD amd64) AppleWebKit/536.5 (KHTML like Gecko) Chrome/19.0.1084.56 Safari/1EA69","browser":{"name":"Chrome","version":"19.0.1084.56","major":"19"},"engine":{"name":"WebKit","version":"536.5"},"os":{"name":"FreeBSD","version":"amd64"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; FreeBSD amd64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.65 Safari/535.11","browser":{"name":"Chrome","version":"17.0.963.65","major":"17"},"engine":{"name":"WebKit","version":"535.11"},"os":{"name":"FreeBSD","version":"amd64"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; FreeBSD i386) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2","browser":{"name":"Chrome","version":"15.0.874.121","major":"15"},"engine":{"name":"WebKit","version":"535.2"},"os":{"name":"FreeBSD","version":"i386"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; FreeBSD x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16","browser":{"name":"Chrome","version":"10.0.648.204","major":"10"},"engine":{"name":"WebKit","version":"534.16"},"os":{"name":"FreeBSD","version":"x86_64"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; U; FreeBSD i386; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16","browser":{"name":"Chrome","version":"10.0.648.204","major":"10"},"engine":{"name":"WebKit","version":"534.16"},"os":{"name":"FreeBSD","version":"i386"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; FreeBSD i386; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.207.0 Safari/532.0","browser":{"name":"Chrome","version":"4.0.207.0","major":"4"},"engine":{"name":"WebKit","version":"532.0"},"os":{"name":"FreeBSD","version":"i386"},"device":{},"cpu":{"architecture":"ia32"}}]
|
1
node/browsers/Chrome-Linux.json
Normal file
1
node/browsers/Chrome-Mac OS.json
Normal file
1
node/browsers/Chrome-NetBSD.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; NetBSD) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36","browser":{"name":"Chrome","version":"27.0.1453.116","major":"27"},"engine":{"name":"WebKit","version":"537.36"},"os":{"name":"NetBSD"},"device":{},"cpu":{}}]
|
1
node/browsers/Chrome-OpenBSD.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36","browser":{"name":"Chrome","version":"36.0.1985.125","major":"36"},"engine":{"name":"WebKit","version":"537.36"},"os":{"name":"OpenBSD","version":"i386"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; OpenBSD i386; en-US) AppleWebKit/533.3 (KHTML, like Gecko) Chrome/5.0.359.0 Safari/533.3","browser":{"name":"Chrome","version":"5.0.359.0","major":"5"},"engine":{"name":"WebKit","version":"533.3"},"os":{"name":"OpenBSD","version":"i386"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.125 Safari/537.36","browser":{"name":"Chrome","version":"43.0.2357.125","major":"43"},"engine":{"name":"WebKit","version":"537.36"},"os":{"name":"OpenBSD","version":"i386"},"device":{},"cpu":{"architecture":"ia32"}}]
|
1
node/browsers/Chrome-SUSE.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 SUSE/10.0.626.0 (KHTML, like Gecko) Chrome/10.0.626.0 Safari/534.16","browser":{"name":"Chrome","version":"10.0.626.0","major":"10"},"engine":{"name":"WebKit","version":"534.16"},"os":{"name":"SUSE","version":"10.0.626.0"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.1 SUSE/6.0.428.0 (KHTML, like Gecko) Chrome/6.0.428.0 Safari/534.1","browser":{"name":"Chrome","version":"6.0.428.0","major":"6"},"engine":{"name":"WebKit","version":"534.1"},"os":{"name":"SUSE","version":"6.0.428.0"},"device":{},"cpu":{"architecture":"ia32"}}]
|
1
node/browsers/Chrome-Slackware.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41","browser":{"name":"Chrome","version":"13.0.782.41","major":"13"},"engine":{"name":"WebKit","version":"535.1"},"os":{"name":"Slackware","version":"13.37"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/12.0.742.91","browser":{"name":"Chrome","version":"12.0.742.91","major":"12"},"engine":{"name":"WebKit","version":"534.16"},"os":{"name":"Slackware","version":"13.37"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Slackware/Chrome/12.0.742.100 Safari/534.30","browser":{"name":"Chrome","version":"12.0.742.100","major":"12"},"engine":{"name":"WebKit","version":"534.30"},"os":{"name":"Slackware"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/11.0.696.50","browser":{"name":"Chrome","version":"11.0.696.50","major":"11"},"engine":{"name":"WebKit","version":"534.16"},"os":{"name":"Slackware","version":"13.37"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; U; Slackware Linux x86_64; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.30 Safari/532.5","browser":{"name":"Chrome","version":"4.0.249.30","major":"4"},"engine":{"name":"WebKit","version":"532.5"},"os":{"name":"Slackware","version":"Linux"},"device":{},"cpu":{"architecture":"amd64"}}]
|
1
node/browsers/Chrome-Ubuntu.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/540.0 (KHTML, like Gecko) Ubuntu/10.10 Chrome/9.1.0.0 Safari/540.0","browser":{"name":"Chrome","version":"9.1.0.0","major":"9"},"engine":{"name":"WebKit","version":"540.0"},"os":{"name":"Ubuntu","version":"10.10"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/540.0 (KHTML, like Gecko) Ubuntu/10.10 Chrome/8.1.0.0 Safari/540.0","browser":{"name":"Chrome","version":"8.1.0.0","major":"8"},"engine":{"name":"WebKit","version":"540.0"},"os":{"name":"Ubuntu","version":"10.10"},"device":{},"cpu":{"architecture":"amd64"}}]
|
1
node/browsers/Chrome-Windows.json
Normal file
1
node/browsers/Chrome-iOS.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/51.0.2704.104 Mobile/13F69 Safari/601.1.46","browser":{"name":"Chrome","version":"51.0.2704.104","major":"51"},"engine":{"name":"WebKit","version":"601.1"},"os":{"name":"iOS","version":"9.3.2"},"device":{"vendor":"Apple","model":"iPhone","type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) CriOS/47.0.2526.70 Mobile/12B436 Safari/600.1.4 (000410)","browser":{"name":"Chrome","version":"47.0.2526.70","major":"47"},"engine":{"name":"WebKit","version":"600.1.4"},"os":{"name":"iOS","version":"8.1.1"},"device":{"vendor":"Apple","model":"iPhone","type":"mobile"},"cpu":{}}]
|
1
node/browsers/Chromium-Linux.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Chromium/12.0.742.91 Safari/534.30","browser":{"name":"Chromium","version":"12.0.742.91","major":"12"},"engine":{"name":"WebKit","version":"534.30"},"os":{"name":"Linux","version":"i686"},"device":{},"cpu":{"architecture":"ia32"}}]
|
1
node/browsers/Chromium-Ubuntu.json
Normal file
1
node/browsers/Comodo Dragon-Linux.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Comodo_Dragon/4.1.1.11 Chrome/4.1.249.1042 Safari/532.5","browser":{"name":"Comodo Dragon","version":"4.1.1.11","major":"4"},"engine":{"name":"WebKit","version":"532.5"},"os":{"name":"Linux","version":"x86_64"},"device":{},"cpu":{"architecture":"amd64"}}]
|
1
node/browsers/Comodo Dragon-Windows.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/535.7 (KHTML, like Gecko) Comodo_Dragon/16.1.1.0 Chrome/16.0.912.63 Safari/535.7","browser":{"name":"Comodo Dragon","version":"16.1.1.0","major":"16"},"engine":{"name":"WebKit","version":"535.7"},"os":{"name":"Windows","version":"8"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Comodo_Dragon/12.1.0.0 Chrome/12.0.742.91 Safari/534.30","browser":{"name":"Comodo Dragon","version":"12.1.0.0","major":"12"},"engine":{"name":"WebKit","version":"534.30"},"os":{"name":"Windows","version":"7"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.30 (KHTML, like Gecko) Comodo_Dragon/12.1.0.0 Chrome/12.0.742.91 Safari/534.30","browser":{"name":"Comodo Dragon","version":"12.1.0.0","major":"12"},"engine":{"name":"WebKit","version":"534.30"},"os":{"name":"Windows","version":"7"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like Gecko) Comodo_Dragon/12.1.0.0 Chrome/12.0.742.91 Safari/534.30","browser":{"name":"Comodo Dragon","version":"12.1.0.0","major":"12"},"engine":{"name":"WebKit","version":"534.30"},"os":{"name":"Windows","version":"XP"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Comodo_Dragon/4.1.1.11 Chrome/4.1.249.1042 Safari/532.5","browser":{"name":"Comodo Dragon","version":"4.1.1.11","major":"4"},"engine":{"name":"WebKit","version":"532.5"},"os":{"name":"Windows","version":"XP"},"device":{},"cpu":{}}]
|
1
node/browsers/Edge-Windows Phone.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (Windows Phone 10.0; Android 6.0.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Mobile Safari/537.36 Edge/15.14977","browser":{"name":"Edge","version":"15.14977","major":"15"},"engine":{"name":"EdgeHTML","version":"15.14977"},"os":{"name":"Windows Phone","version":"10.0"},"device":{"vendor":"Microsoft","model":"Lumia 950","type":"mobile"},"cpu":{}}]
|
1
node/browsers/Edge-Windows.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063","browser":{"name":"Edge","version":"15.15063","major":"15"},"engine":{"name":"EdgeHTML","version":"15.15063"},"os":{"name":"Windows","version":"10"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393","browser":{"name":"Edge","version":"14.14393","major":"14"},"engine":{"name":"EdgeHTML","version":"14.14393"},"os":{"name":"Windows","version":"10"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246","browser":{"name":"Edge","version":"12.246","major":"12"},"engine":{"name":"EdgeHTML","version":"12.246"},"os":{"name":"Windows","version":"10"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134","browser":{"name":"Edge","version":"17.17134","major":"17"},"engine":{"name":"EdgeHTML","version":"17.17134"},"os":{"name":"Windows","version":"10"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299","browser":{"name":"Edge","version":"16.16299","major":"16"},"engine":{"name":"EdgeHTML","version":"16.16299"},"os":{"name":"Windows","version":"10"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299","browser":{"name":"Edge","version":"16.16299","major":"16"},"engine":{"name":"EdgeHTML","version":"16.16299"},"os":{"name":"Windows","version":"10"},"device":{},"cpu":{}}]
|
1
node/browsers/Epiphany-Debian.json
Normal file
1
node/browsers/Epiphany-Fedora.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; Linux x86_64; en; rv:1.9.0.8) Gecko/20080528 Fedora/2.24.3-4.fc10 Epiphany/2.22 Firefox/3.0","browser":{"name":"Epiphany","version":"2.22","major":"2"},"engine":{"name":"Gecko","version":"1.9.0.8"},"os":{"name":"Fedora","version":"2.24.3-4.fc10"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en; rv:1.9.0.5) Gecko/20080528 Fedora/2.24.1-3.fc10 Epiphany/2.22 Firefox/3.0","browser":{"name":"Epiphany","version":"2.22","major":"2"},"engine":{"name":"Gecko","version":"1.9.0.5"},"os":{"name":"Fedora","version":"2.24.1-3.fc10"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux x86_64; en; rv:1.8.1.14) Gecko/20080616 Fedora/2.20.3-4.fc8 Epiphany/2.20 Firefox/2.0.0.14","browser":{"name":"Epiphany","version":"2.20","major":"2"},"engine":{"name":"Gecko","version":"1.8.1.14"},"os":{"name":"Fedora","version":"2.20.3-4.fc8"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en; rv:1.8.1.14) Gecko/20080416 Fedora/2.18.3-9.fc7 Epiphany/2.18 Firefox/2.0.0.14","browser":{"name":"Epiphany","version":"2.18","major":"2"},"engine":{"name":"Gecko","version":"1.8.1.14"},"os":{"name":"Fedora","version":"2.18.3-9.fc7"},"device":{},"cpu":{"architecture":"ia32"}}]
|
1
node/browsers/Epiphany-FreeBSD.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; FreeBSD amd64; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Safari/531.2+ Epiphany/2.30.0","browser":{"name":"Epiphany","version":"2.30.0","major":"2"},"engine":{"name":"WebKit","version":"531.2"},"os":{"name":"FreeBSD","version":"amd64"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; U; FreeBSD i386; pl; rv:1.8.1.12) Gecko/20080213 Epiphany/2.20 Firefox/2.0.0.12","browser":{"name":"Epiphany","version":"2.20","major":"2"},"engine":{"name":"Gecko","version":"1.8.1.12"},"os":{"name":"FreeBSD","version":"i386"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; FreeBSD i386; en; rv:1.8.1.12) Gecko/20080213 Epiphany/2.20 Firefox/2.0.0.12","browser":{"name":"Epiphany","version":"2.20","major":"2"},"engine":{"name":"Gecko","version":"1.8.1.12"},"os":{"name":"FreeBSD","version":"i386"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1) Gecko/20070322 Epiphany/2.18","browser":{"name":"Epiphany","version":"2.18","major":"2"},"engine":{"name":"Gecko","version":"1.8.1"},"os":{"name":"FreeBSD","version":"i386"},"device":{},"cpu":{"architecture":"ia32"}}]
|
1
node/browsers/Epiphany-Gentoo.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; Linux i686; en; rv:1.9) Gecko/20080528 (Gentoo) Epiphany/2.22 Firefox/3.0","browser":{"name":"Epiphany","version":"2.22","major":"2"},"engine":{"name":"Gecko","version":"1.9"},"os":{"name":"Gentoo"},"device":{},"cpu":{"architecture":"ia32"}}]
|
1
node/browsers/Epiphany-Linux.json
Normal file
1
node/browsers/Epiphany-OpenBSD.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; OpenBSD arm; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Safari/531.2+ Epiphany/2.30.0","browser":{"name":"Epiphany","version":"2.30.0","major":"2"},"engine":{"name":"WebKit","version":"531.2"},"os":{"name":"OpenBSD","version":"arm"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (X11; U; OpenBSD amd64; en; rv:1.8.1.6) Gecko/20070817 Epiphany/2.18 Firefox/2.0.0.6","browser":{"name":"Epiphany","version":"2.18","major":"2"},"engine":{"name":"Gecko","version":"1.8.1.6"},"os":{"name":"OpenBSD","version":"amd64"},"device":{},"cpu":{"architecture":"amd64"}}]
|
1
node/browsers/Epiphany-SUSE.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; Linux x86_64; zh-cn) AppleWebKit/531.2+ (KHTML, like Gecko) Safari/531.2+ Epiphany/2.28.2 SUSE/2.28.0-2.4","browser":{"name":"Epiphany","version":"2.28.2","major":"2"},"engine":{"name":"WebKit","version":"531.2"},"os":{"name":"SUSE","version":"2.28.0-2.4"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; U; Linux x86_64; zh-cn) AppleWebKit/531.2+ (KHTML, like Gecko) Safari/531.2+ Epiphany/2.28.0 SUSE/2.28.0-2.4","browser":{"name":"Epiphany","version":"2.28.0","major":"2"},"engine":{"name":"WebKit","version":"531.2"},"os":{"name":"SUSE","version":"2.28.0-2.4"},"device":{},"cpu":{"architecture":"amd64"}}]
|
1
node/browsers/Epiphany-Solaris.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; SunOS 5.11; en-US; rv:1.8.0.2) Gecko/20050405 Epiphany/1.7.1","browser":{"name":"Epiphany","version":"1.7.1","major":"1"},"engine":{"name":"Gecko","version":"1.8.0.2"},"os":{"name":"Solaris","version":"5.11"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.7.5) Gecko/20050105 Epiphany/1.4.8","browser":{"name":"Epiphany","version":"1.4.8","major":"1"},"engine":{"name":"Gecko","version":"1.7.5"},"os":{"name":"Solaris","version":"sun4u"},"device":{},"cpu":{"architecture":"sparc"}}]
|
1
node/browsers/Epiphany-Ubuntu.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; Linux x86_64; it-it) AppleWebKit/534.26+ (KHTML, like Gecko) Ubuntu/11.04 Epiphany/2.30.6","browser":{"name":"Epiphany","version":"2.30.6","major":"2"},"engine":{"name":"WebKit","version":"534.26"},"os":{"name":"Ubuntu","version":"11.04"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; U; Linux x86_64; en; rv:1.9.0.14) Gecko/20080528 Ubuntu/9.10 (karmic) Epiphany/2.22 Firefox/3.0","browser":{"name":"Epiphany","version":"2.22","major":"2"},"engine":{"name":"Gecko","version":"1.9.0.14"},"os":{"name":"Ubuntu","version":"9.10"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; U; Linux x86_64; en; rv:1.8.1.4) Gecko/20061201 Epiphany/2.18 Firefox/2.0.0.4 (Ubuntu-feisty)","browser":{"name":"Epiphany","version":"2.18","major":"2"},"engine":{"name":"Gecko","version":"1.8.1.4"},"os":{"name":"Ubuntu","version":"feisty"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; U; Linux x86_64; en; rv:1.8.1.3) Gecko/20061201 Epiphany/2.18 Firefox/2.0.0.3 (Ubuntu-feisty)","browser":{"name":"Epiphany","version":"2.18","major":"2"},"engine":{"name":"Gecko","version":"1.8.1.3"},"os":{"name":"Ubuntu","version":"feisty"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en; rv:1.8.1.3) Gecko/20061201 Epiphany/2.18 Firefox/2.0.0.3 (Ubuntu-feisty)","browser":{"name":"Epiphany","version":"2.18","major":"2"},"engine":{"name":"Gecko","version":"1.8.1.3"},"os":{"name":"Ubuntu","version":"feisty"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en; rv:1.8.0.7) Gecko/20060928 Epiphany/2.14 (Ubuntu)","browser":{"name":"Epiphany","version":"2.14","major":"2"},"engine":{"name":"Gecko","version":"1.8.0.7"},"os":{"name":"Ubuntu"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.5) Gecko/20060731 Ubuntu/dapper-security Epiphany/2.14 Firefox/1.5.0.5","browser":{"name":"Epiphany","version":"2.14","major":"2"},"engine":{"name":"Gecko","version":"1.8.0.5"},"os":{"name":"Ubuntu","version":"dapper-security"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.4) Gecko/20060608 Ubuntu/dapper-security Epiphany/2.14 Firefox/1.5.0.4","browser":{"name":"Epiphany","version":"2.14","major":"2"},"engine":{"name":"Gecko","version":"1.8.0.4"},"os":{"name":"Ubuntu","version":"dapper-security"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.3) Gecko/20060523 Ubuntu/dapper Epiphany/2.14 Firefox/1.5.0.3","browser":{"name":"Epiphany","version":"2.14","major":"2"},"engine":{"name":"Gecko","version":"1.8.0.3"},"os":{"name":"Ubuntu","version":"dapper"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.7.12) Gecko/20051010 Epiphany/1.8.2 (Ubuntu) (Ubuntu package 1.0.7)","browser":{"name":"Epiphany","version":"1.8.2","major":"1"},"engine":{"name":"Gecko","version":"1.7.12"},"os":{"name":"Ubuntu"},"device":{},"cpu":{"architecture":"amd64"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20051010 Epiphany/1.8.2 (Ubuntu) (Ubuntu package 1.0.7)","browser":{"name":"Epiphany","version":"1.8.2","major":"1"},"engine":{"name":"Gecko","version":"1.7.12"},"os":{"name":"Ubuntu"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20040924 Epiphany/1.4.4 (Ubuntu)","browser":{"name":"Epiphany","version":"1.4.4","major":"1"},"engine":{"name":"Gecko","version":"1.7.3"},"os":{"name":"Ubuntu"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.7.3) Gecko/20040924 Epiphany/1.4.4 (Ubuntu)","browser":{"name":"Epiphany","version":"1.4.4","major":"1"},"engine":{"name":"Gecko","version":"1.7.3"},"os":{"name":"Ubuntu"},"device":{},"cpu":{}}]
|
1
node/browsers/Facebook-Android.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (Linux; Android 7.0; BLL-L22 Build/HUAWEIBLL-L22; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.83 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/196.0.0.41.95;]","browser":{"name":"Facebook","version":"196.0.0.41.95","major":"196"},"engine":{"name":"WebKit","version":"537.36"},"os":{"name":"Android","version":"7.0"},"device":{"vendor":"Huawei","model":"BLL-L22","type":"mobile"},"cpu":{}}]
|
1
node/browsers/Facebook-iOS.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13F69 [FBAN/FBIOS;FBAV/59.0.0.51.142;FBBV/33266808;FBRV/0;FBDV/iPhone7,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/9.3.2;FBSS/3;FBCR/Telkomsel;FBID/phone;FBLC/en_US;FBOP/5]","browser":{"name":"Facebook","version":"59.0.0.51.142","major":"59"},"engine":{"name":"WebKit","version":"601.1.46"},"os":{"name":"iOS","version":"9.3.2"},"device":{"vendor":"Apple","model":"iPhone","type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16D57 [FBAN/FBIOS;FBAV/210.0.0.37.117;FBBV/143754374;FBDV/iPhone10,2;FBMD/iPhone;FBSN/iOS;FBSV/12.1.4;FBSS/3;FBCR/Sprint;FBID/phone;FBLC/en_US;FBOP/5;FBRV/145485529]","browser":{"name":"Facebook","version":"210.0.0.37.117","major":"210"},"engine":{"name":"WebKit","version":"605.1.15"},"os":{"name":"iOS","version":"12.1.4"},"device":{"vendor":"Apple","model":"iPhone","type":"mobile"},"cpu":{}}]
|
1
node/browsers/Fennec-Android.json
Normal file
1
node/browsers/Fennec-Linux.json
Normal file
1
node/browsers/Fennec-Mac OS.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:5.0) Gecko/20110517 Firefox/5.0 Fennec/5.0","browser":{"name":"Fennec","version":"5.0","major":"5"},"engine":{"name":"Gecko","version":"5.0"},"os":{"name":"Mac OS","version":"10.6"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.1) Gecko/20110318 Firefox/4.0b13pre Fennec/4.0","browser":{"name":"Fennec","version":"4.0","major":"4"},"engine":{"name":"Gecko","version":"2.1"},"os":{"name":"Mac OS","version":"10.6"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2a1pre) Gecko/20090626 Fennec/1.0b2","browser":{"name":"Fennec","version":"1.0b2","major":"1"},"engine":{"name":"Gecko","version":"1.9.2a1pr"},"os":{"name":"Mac OS","version":"10.5"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1b2pre) Gecko/20081015 Fennec/1.0a1","browser":{"name":"Fennec","version":"1.0a1","major":"1"},"engine":{"name":"Gecko","version":"1.9.1b2pr"},"os":{"name":"Mac OS","version":"10.6"},"device":{},"cpu":{}}]
|
1
node/browsers/Fennec-Windows.json
Normal file
1
node/browsers/Firebird-Linux.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5a) Gecko/20030728 Mozilla Firebird/0.6.1","browser":{"name":"Firebird","version":"0.6.1","major":"0"},"engine":{"name":"Gecko","version":"1.5a"},"os":{"name":"Linux","version":"i686"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4b) Gecko/20030630 Mozilla Firebird/0.6","browser":{"name":"Firebird","version":"0.6","major":"0"},"engine":{"name":"Gecko","version":"1.4b"},"os":{"name":"Linux","version":"i686"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4b) Gecko/20030607 Mozilla Firebird/0.6","browser":{"name":"Firebird","version":"0.6","major":"0"},"engine":{"name":"Gecko","version":"1.4b"},"os":{"name":"Linux","version":"i686"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4b) Gecko/20030516 Mozilla Firebird/0.6","browser":{"name":"Firebird","version":"0.6","major":"0"},"engine":{"name":"Gecko","version":"1.4b"},"os":{"name":"Linux","version":"i686"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4b) Gecko/20030505 Mozilla Firebird/0.6","browser":{"name":"Firebird","version":"0.6","major":"0"},"engine":{"name":"Gecko","version":"1.4b"},"os":{"name":"Linux","version":"i686"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4a) Gecko/20030425 Mozilla Firebird/0.6","browser":{"name":"Firebird","version":"0.6","major":"0"},"engine":{"name":"Gecko","version":"1.4a"},"os":{"name":"Linux","version":"i686"},"device":{},"cpu":{"architecture":"ia32"}}]
|
1
node/browsers/Firebird-Mac OS.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.5) Gecko/20031026 Firebird/0.7","browser":{"name":"Firebird","version":"0.7","major":"0"},"engine":{"name":"Gecko","version":"1.5"},"os":{"name":"Mac OS","version":"Mach"},"device":{},"cpu":{"architecture":"ppc"}}]
|
1
node/browsers/Firebird-Solaris.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.5a) Gecko/20030729 Mozilla Firebird/0.6.1","browser":{"name":"Firebird","version":"0.6.1","major":"0"},"engine":{"name":"Gecko","version":"1.5a"},"os":{"name":"Solaris","version":"sun4u"},"device":{},"cpu":{"architecture":"sparc"}},{"ua":"Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.4b) Gecko/20030517 Mozilla Firebird/0.6","browser":{"name":"Firebird","version":"0.6","major":"0"},"engine":{"name":"Gecko","version":"1.4b"},"os":{"name":"Solaris","version":"sun4u"},"device":{},"cpu":{"architecture":"sparc"}}]
|
1
node/browsers/Firebird-Windows.json
Normal file
1
node/browsers/Firefox-Android.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (Android 7.0; Mobile; rv:57.0) Gecko/57.0 Firefox/57.0","browser":{"name":"Firefox","version":"57.0","major":"57"},"engine":{"name":"Gecko","version":"57.0"},"os":{"name":"Android","version":"7.0"},"device":{"type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Android 7.0; Mobile; rv:54.0) Gecko/54.0 Firefox/54.0","browser":{"name":"Firefox","version":"54.0","major":"54"},"engine":{"name":"Gecko","version":"54.0"},"os":{"name":"Android","version":"7.0"},"device":{"type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Android; U; Android; pl; rv:1.9.2.8) Gecko/20100202 Firefox/3.5.8","browser":{"name":"Firefox","version":"3.5.8","major":"3"},"engine":{"name":"Gecko","version":"1.9.2.8"},"os":{"name":"Android"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (Android 7.0; Mobile; rv:60.0) Gecko/60.0 Firefox/60.0","browser":{"name":"Firefox","version":"60.0","major":"60"},"engine":{"name":"Gecko","version":"60.0"},"os":{"name":"Android","version":"7.0"},"device":{"type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Android 4.4.2; Mobile; rv:61.0) Gecko/61.0 Firefox/61.0","browser":{"name":"Firefox","version":"61.0","major":"61"},"engine":{"name":"Gecko","version":"61.0"},"os":{"name":"Android","version":"4.4.2"},"device":{"type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Android 7.0; Mobile; rv:61.0) Gecko/61.0 Firefox/61.0","browser":{"name":"Firefox","version":"61.0","major":"61"},"engine":{"name":"Gecko","version":"61.0"},"os":{"name":"Android","version":"7.0"},"device":{"type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Android 5.0.2; Mobile; rv:61.0) Gecko/61.0 Firefox/61.0","browser":{"name":"Firefox","version":"61.0","major":"61"},"engine":{"name":"Gecko","version":"61.0"},"os":{"name":"Android","version":"5.0.2"},"device":{"type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Android 8.0.0; Mobile; rv:65.0) Gecko/65.0 Firefox/65.0","browser":{"name":"Firefox","version":"65.0","major":"65"},"engine":{"name":"Gecko","version":"65.0"},"os":{"name":"Android","version":"8.0.0"},"device":{"type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Android 7.0; Mobile; rv:65.0) Gecko/65.0 Firefox/65.0","browser":{"name":"Firefox","version":"65.0","major":"65"},"engine":{"name":"Gecko","version":"65.0"},"os":{"name":"Android","version":"7.0"},"device":{"type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Android 8.1.0; Mobile; rv:65.0) Gecko/65.0 Firefox/65.0","browser":{"name":"Firefox","version":"65.0","major":"65"},"engine":{"name":"Gecko","version":"65.0"},"os":{"name":"Android","version":"8.1.0"},"device":{"type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Android 9; Mobile; rv:65.0) Gecko/65.0 Firefox/65.0","browser":{"name":"Firefox","version":"65.0","major":"65"},"engine":{"name":"Gecko","version":"65.0"},"os":{"name":"Android","version":"9"},"device":{"type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Android 4.4.4; Mobile; rv:64.0) Gecko/64.0 Firefox/64.0","browser":{"name":"Firefox","version":"64.0","major":"64"},"engine":{"name":"Gecko","version":"64.0"},"os":{"name":"Android","version":"4.4.4"},"device":{"type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Android 6.0.1; Tablet; rv:64.0) Gecko/64.0 Firefox/64.0","browser":{"name":"Firefox","version":"64.0","major":"64"},"engine":{"name":"Gecko","version":"64.0"},"os":{"name":"Android","version":"6.0.1"},"device":{"type":"tablet"},"cpu":{}},{"ua":"Mozilla/5.0 (Android 6.0; Mobile; rv:65.0) Gecko/65.0 Firefox/65.0","browser":{"name":"Firefox","version":"65.0","major":"65"},"engine":{"name":"Gecko","version":"65.0"},"os":{"name":"Android","version":"6.0"},"device":{"type":"mobile"},"cpu":{}},{"ua":"Mozilla/5.0 (Android 7.1.2; Tablet; rv:65.0) Gecko/65.0 Firefox/65.0","browser":{"name":"Firefox","version":"65.0","major":"65"},"engine":{"name":"Gecko","version":"65.0"},"os":{"name":"Android","version":"7.1.2"},"device":{"type":"tablet"},"cpu":{}}]
|
1
node/browsers/Firefox-BeOS.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (BeOS; U; BeOS BePC; en-US; rv:1.8.1b2) Gecko/20060901 Firefox/2.0b2","browser":{"name":"Firefox","version":"2.0b2","major":"2"},"engine":{"name":"Gecko","version":"1.8.1b2"},"os":{"name":"BeOS"},"device":{},"cpu":{}},{"ua":"Mozilla/5.0 (BeOS; U; BeOS BePC; en-US; rv:1.9a1) Gecko/20051002 Firefox/1.6a1","browser":{"name":"Firefox","version":"1.6a1","major":"1"},"engine":{"name":"Gecko","version":"1.9a1"},"os":{"name":"BeOS"},"device":{},"cpu":{}}]
|
1
node/browsers/Firefox-CentOS.json
Normal file
1
node/browsers/Firefox-Debian.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.1) Gecko/20060313 Debian/1.5.dfsg+1.5.0.1-4 Firefox/1.5.0.1","browser":{"name":"Firefox","version":"1.5.0.1","major":"1"},"engine":{"name":"Gecko","version":"1.8.0.1"},"os":{"name":"Debian","version":"1.5.dfsg"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8) Gecko/20060110 Debian/1.5.dfsg-4 Firefox/1.5","browser":{"name":"Firefox","version":"1.5","major":"1"},"engine":{"name":"Gecko","version":"1.8"},"os":{"name":"Debian","version":"1.5.dfsg-4"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8) Gecko/20060119 Debian/1.5.dfsg-4ubuntu3 Firefox/1.5","browser":{"name":"Firefox","version":"1.5","major":"1"},"engine":{"name":"Gecko","version":"1.8"},"os":{"name":"Debian","version":"1.5.dfsg-4ubuntu3"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8) Gecko/20060110 Debian/1.5.dfsg-4 Firefox/1.5","browser":{"name":"Firefox","version":"1.5","major":"1"},"engine":{"name":"Gecko","version":"1.8"},"os":{"name":"Debian","version":"1.5.dfsg-4"},"device":{},"cpu":{"architecture":"ia32"}}]
|
1
node/browsers/Firefox-DragonFly.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; DragonFly i386; de; rv:1.9.1) Gecko/20090720 Firefox/3.5.1","browser":{"name":"Firefox","version":"3.5.1","major":"3"},"engine":{"name":"Gecko","version":"1.9.1"},"os":{"name":"DragonFly","version":"i386"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; DragonFly i386; de; rv:1.9.1b2) Gecko/20081201 Firefox/3.1b2","browser":{"name":"Firefox","version":"3.1b2","major":"3"},"engine":{"name":"Gecko","version":"1.9.1b2"},"os":{"name":"DragonFly","version":"i386"},"device":{},"cpu":{"architecture":"ia32"}}]
|
1
node/browsers/Firefox-Fedora.json
Normal file
1
node/browsers/Firefox-FreeBSD.json
Normal file
1
node/browsers/Firefox-Gentoo.json
Normal file
1
node/browsers/Firefox-Kubuntu.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"ua":"Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.7) Gecko/2009030422 Kubuntu/8.10 (intrepid) Firefox/3.0.9","browser":{"name":"Firefox","version":"3.0.9","major":"3"},"engine":{"name":"Gecko","version":"1.9.0.7"},"os":{"name":"Kubuntu","version":"8.10"},"device":{},"cpu":{"architecture":"ia32"}},{"ua":"Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.1) Gecko/2008072820 Kubuntu/8.04 (hardy) Firefox/3.0.1","browser":{"name":"Firefox","version":"3.0.1","major":"3"},"engine":{"name":"Gecko","version":"1.9.0.1"},"os":{"name":"Kubuntu","version":"8.04"},"device":{},"cpu":{"architecture":"amd64"}}]
|