From a122c0963e5b18ed0ea358c26b5aefbf8e3e81fb Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Sun, 18 Apr 2021 13:51:41 +0700 Subject: [PATCH] Include GPU detection demo --- images/companies/amd.png | Bin 0 -> 25898 bytes images/companies/intel.png | Bin 0 -> 44202 bytes images/companies/qualcomm.png | Bin 0 -> 36698 bytes images/companies/sis.png | Bin 0 -> 75349 bytes index.html | 25 ++ js/script.js | 14 + js/ua-parser.js | 823 +++++++++++++++++----------------- 7 files changed, 452 insertions(+), 410 deletions(-) create mode 100644 images/companies/amd.png create mode 100644 images/companies/intel.png create mode 100644 images/companies/qualcomm.png create mode 100644 images/companies/sis.png diff --git a/images/companies/amd.png b/images/companies/amd.png new file mode 100644 index 0000000000000000000000000000000000000000..88d34143422d692c149b8762621936ae46004100 GIT binary patch literal 25898 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 Q0Kf#~q!izXL8JgkGXQA?EZYFfmW!7a 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 literal 0 HcmV?d00001 diff --git a/images/companies/qualcomm.png b/images/companies/qualcomm.png new file mode 100644 index 0000000000000000000000000000000000000000..f47340c2cbdd88b4880428ef21fcdfaf8ce6fc23 GIT binary patch literal 36698 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 uO(AF}K(KqqC*4CrT2!M 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

EFa>I$zOB$vjDe!LrQ%Mu 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�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 +

+ DETECT GPU FROM WEBGL DATA (EXPERIMENTAL FEATURE) +
+
+
+
+
+
+
+ + GPU +
+
+
+
+ +
+
+
+
+
+
+
+
+
LESS IS MORE
diff --git a/js/script.js b/js/script.js index 4225a0f..3bc0377 100644 --- a/js/script.js +++ b/js/script.js @@ -1,5 +1,6 @@ $(document) .ready(function() { + var uaparser = new UAParser(); var labels = ['browser.name', 'os.version', 'device.type', 'cpu.arch', 'device.model', 'browser.version', 'device.vendor', 'engine.name', 'engine.version']; var counter = 0; var rotateLabel = function () { @@ -79,6 +80,16 @@ $(document) $('#device-txt').text('-'); $('#device-img').attr('src', 'images/companies/default.png'); } + if (result.gpu.vendor) { + var vendor = result.gpu.vendor!=undefined?result.gpu.vendor:'-'; + var model = result.gpu.model!==undefined?result.gpu.model:'-'; + $('#gpu-txt').html('' + vendor + '' + model + ''); + $('#gpu-img').attr('src', 'images/companies/' + result.gpu.vendor.toLowerCase() + '.png').on('error', function () { + $(this).attr('src', 'images/companies/default.png'); + }); + } else { + $('#gpu-txt').text('-'); + } $(this).transition('fly up', function () { $(this).transition('pulse'); }); @@ -109,6 +120,9 @@ $(document) return false; } }); + if (!uaparser.getGPU().vendor) { + $('#gpu-divider,#gpu-segment').hide(); + } $('.ui.rating').rating(); $('#showcase img').popup({ diff --git a/js/ua-parser.js b/js/ua-parser.js index ac7112d..d6db459 100755 --- a/js/ua-parser.js +++ b/js/ua-parser.js @@ -1,11 +1,12 @@ -/*!@license - * UAParser.js v0.7.28 - * Lightweight JavaScript-based User-Agent string parser - * https://github.com/faisalman/ua-parser-js - * - * Copyright © 2012-2021 Faisal Salman - * Licensed under MIT License - */ +///////////////////////////////////////////////////////////////////////////////// +/* UAParser.js v0.7.28-gpu-experimental + Copyright © 2012-2021 Faisal Salman + MIT License *//* + Detect Browser, Engine, OS, CPU, GPU, and Device type/model from User-Agent data. + Supports browser & node.js environment. + Demo : https://faisalman.github.io/ua-parser-js + Source : https://github.com/faisalman/ua-parser-js */ +///////////////////////////////////////////////////////////////////////////////// (function (window, undefined) { @@ -16,14 +17,14 @@ ///////////// - var LIBVERSION = '0.7.28', + var LIBVERSION = '0.7.28-gpu-experimental', EMPTY = '', UNKNOWN = '?', FUNC_TYPE = 'function', UNDEF_TYPE = 'undefined', OBJ_TYPE = 'object', STR_TYPE = 'string', - MAJOR = 'major', // deprecated + MAJOR = 'major', MODEL = 'model', NAME = 'name', TYPE = 'type', @@ -38,14 +39,30 @@ EMBEDDED = 'embedded', UA_MAX_LENGTH = 255; + var AMAZON = 'Amazon', + APPLE = 'Apple', + ASUS = 'ASUS', + BLACKBERRY = 'BlackBerry', + BROWSER = 'Browser', + CHROME = 'Chrome', + EDGE = 'Edge', + FIREFOX = 'Firefox', + GOOGLE = 'Google', + HUAWEI = 'Huawei', + LG = 'LG', + MICROSOFT = 'Microsoft', + MOTOROLA = 'Motorola', + OPERA = 'Opera', + SAMSUNG = 'Samsung', + SONY = 'Sony', + XIAOMI = 'Xiaomi', + ZEBRA = 'Zebra'; /////////// // Helper ////////// - - var util = { - extend : function (regexes, extensions) { + var extend = function (regexes, extensions) { var mergedRegexes = {}; for (var i in regexes) { if (extensions[i] && extensions[i].length % 2 === 0) { @@ -56,30 +73,34 @@ } return mergedRegexes; }, - has : function (str1, str2) { - return typeof str1 === STR_TYPE ? str2.toLowerCase().indexOf(str1.toLowerCase()) !== -1 : false; + enumerize = function (arr) { + var enums = {}; + for (var i in arr) { + enums[arr[i].toUpperCase()] = arr[i]; + } + return enums; }, - lowerize : function (str) { + has = function (str1, str2) { + return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false; + }, + lowerize = function (str) { return str.toLowerCase(); }, - major : function (version) { - return typeof(version) === STR_TYPE ? version.replace(/[^\d\.]/g,'').split(".")[0] : undefined; + majorize = function (version) { + return typeof(version) === STR_TYPE ? version.replace(/[^\d\.]/g, EMPTY).split('.')[0] : undefined; }, - trim : function (str, len) { - str = str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); - return typeof(len) === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH); - } + trim = function (str, len) { + if (typeof(str) === STR_TYPE) { + str = str.replace(/^\s+|\s+$/g, EMPTY); + return typeof(len) === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH); + } }; - /////////////// // Map helper ////////////// - - var mapper = { - - rgx : function (ua, arrays) { + var rgxMapper = function (ua, arrays) { var i = 0, j, k, p, q, matches, match; @@ -131,84 +152,62 @@ } }, - str : function (str, map) { + strMapper = function (str, map) { for (var i in map) { - // check if array + // check if current value is array if (typeof map[i] === OBJ_TYPE && map[i].length > 0) { for (var j = 0; j < map[i].length; j++) { - if (util.has(map[i][j], str)) { + if (has(map[i][j], str)) { return (i === UNKNOWN) ? undefined : i; } } - } else if (util.has(map[i], str)) { + } else if (has(map[i], str)) { return (i === UNKNOWN) ? undefined : i; } } return str; - } }; - /////////////// // String map ////////////// - - var maps = { - - browser : { - // Safari < 3.0 - oldSafari : { - version : { - '1.0' : '/8', - '1.2' : '/1', - '1.3' : '/3', - '2.0' : '/412', - '2.0.2' : '/416', - '2.0.3' : '/417', - '2.0.4' : '/419', - '?' : '/' - } - }, - oldEdge : { - version : { - '0.1' : '12.', - '21' : '13.', - '31' : '14.', - '39' : '15.', - '41' : '16.', - '42' : '17.', - '44' : '18.' - } - } + var gpuVendorMap = { + 'AMD' : 'Radeon', + 'ARM' : 'Mali', + 'NVIDIA' : 'GeForce', + 'Qualcomm' : 'Adreno' }, - - os : { - windows : { - version : { - 'ME' : '4.90', - 'NT 3.11' : 'NT3.51', - 'NT 4.0' : 'NT4.0', - '2000' : 'NT 5.0', - 'XP' : ['NT 5.1', 'NT 5.2'], - 'Vista' : 'NT 6.0', - '7' : 'NT 6.1', - '8' : 'NT 6.2', - '8.1' : 'NT 6.3', - '10' : ['NT 6.4', 'NT 10.0'], - 'RT' : 'ARM' - } - } - } + // Safari < 3.0 + oldSafariMap = { + '1.0' : '/8', + '1.2' : '/1', + '1.3' : '/3', + '2.0' : '/412', + '2.0.2' : '/416', + '2.0.3' : '/417', + '2.0.4' : '/419', + '?' : '/' + }, + windowsVersionMap = { + 'ME' : '4.90', + 'NT 3.11' : 'NT3.51', + 'NT 4.0' : 'NT4.0', + '2000' : 'NT 5.0', + 'XP' : ['NT 5.1', 'NT 5.2'], + 'Vista' : 'NT 6.0', + '7' : 'NT 6.1', + '8' : 'NT 6.2', + '8.1' : 'NT 6.3', + '10' : ['NT 6.4', 'NT 10.0'], + 'RT' : 'ARM' }; - ////////////// // Regex map ///////////// - var regexes = { browser : [[ @@ -217,141 +216,132 @@ ], [VERSION, [NAME, 'Chrome']], [ /edg(?:e|ios|a)?\/([\w\.]+)/i // Microsoft Edge ], [VERSION, [NAME, 'Edge']], [ - // breaking change (reserved for next major release): - ///edge\/([\w\.]+)/i // Old Edge (Trident) - //], [[VERSION, mapper.str, maps.browser.oldEdge.version], [NAME, 'Edge']], [ // Presto based - /(opera\smini)\/([\w\.-]+)/i, // Opera Mini - /(opera\s[mobiletab]{3,6})\b.+version\/([\w\.-]+)/i, // Opera Mobi/Tablet - /(opera)(?:.+version\/|[\/\s]+)([\w\.]+)/i, // Opera + /(opera mini)\/([-\w\.]+)/i, // Opera Mini + /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i, // Opera Mobi/Tablet + /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i, // Opera ], [NAME, VERSION], [ - /opios[\/\s]+([\w\.]+)/i // Opera mini on iphone >= 8.0 - ], [VERSION, [NAME, 'Opera Mini']], [ - /\sopr\/([\w\.]+)/i // Opera Webkit - ], [VERSION, [NAME, 'Opera']], [ + /opios[\/ ]+([\w\.]+)/i // Opera mini on iphone >= 8.0 + ], [VERSION, [NAME, OPERA+' Mini']], [ + /\bopr\/([\w\.]+)/i // Opera Webkit + ], [VERSION, [NAME, OPERA]], [ // Mixed /(kindle)\/([\w\.]+)/i, // Kindle - /(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?([\w\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer + /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer // Trident based - /(avant\s|iemobile|slim)(?:browser)?[\/\s]?([\w\.]*)/i, // Avant/IEMobile/SlimBrowser - /(ba?idubrowser)[\/\s]?([\w\.]+)/i, // Baidu Browser - /(?:ms|\()(ie)\s([\w\.]+)/i, // Internet Explorer + /(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i, // Avant/IEMobile/SlimBrowser + /(ba?idubrowser)[\/ ]?([\w\.]+)/i, // Baidu Browser + /(?:ms|\()(ie) ([\w\.]+)/i, // Internet Explorer - // Webkit/KHTML based - /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon)\/([\w\.-]+)/i, - // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon - /(rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([\w\.]+)/i, // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ + // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon + /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i, + // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ /(weibo)__([\d\.]+)/i // Weibo ], [NAME, VERSION], [ - /(?:[\s\/]uc?\s?browser|(?:juc.+)ucweb)[\/\s]?([\w\.]+)/i // UCBrowser - ], [VERSION, [NAME, 'UCBrowser']], [ - /(?:windowswechat)?\sqbcore\/([\w\.]+)\b.*(?:windowswechat)?/i // WeChat Desktop for Windows Built-in Browser + /(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i // UCBrowser + ], [VERSION, [NAME, 'UC'+BROWSER]], [ + /\bqbcore\/([\w\.]+)/i // WeChat Desktop for Windows Built-in Browser ], [VERSION, [NAME, 'WeChat(Win) Desktop']], [ /micromessenger\/([\w\.]+)/i // WeChat ], [VERSION, [NAME, 'WeChat']], [ /konqueror\/([\w\.]+)/i // Konqueror ], [VERSION, [NAME, 'Konqueror']], [ - /trident.+rv[:\s]([\w\.]{1,9})\b.+like\sgecko/i // IE11 + /trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i // IE11 ], [VERSION, [NAME, 'IE']], [ /yabrowser\/([\w\.]+)/i // Yandex ], [VERSION, [NAME, 'Yandex']], [ /(avast|avg)\/([\w\.]+)/i // Avast/AVG Secure Browser - ], [[NAME, /(.+)/, '$1 Secure Browser'], VERSION], [ - /focus\/([\w\.]+)/i // Firefox Focus - ], [VERSION, [NAME, 'Firefox Focus']], [ - /opt\/([\w\.]+)/i // Opera Touch - ], [VERSION, [NAME, 'Opera Touch']], [ - /coc_coc_browser\/([\w\.]+)/i // Coc Coc Browser + ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [ + /\bfocus\/([\w\.]+)/i // Firefox Focus + ], [VERSION, [NAME, FIREFOX+' Focus']], [ + /\bopt\/([\w\.]+)/i // Opera Touch + ], [VERSION, [NAME, OPERA+' Touch']], [ + /coc_coc\w+\/([\w\.]+)/i // Coc Coc Browser ], [VERSION, [NAME, 'Coc Coc']], [ /dolfin\/([\w\.]+)/i // Dolphin ], [VERSION, [NAME, 'Dolphin']], [ /coast\/([\w\.]+)/i // Opera Coast - ], [VERSION, [NAME, 'Opera Coast']], - [/xiaomi\/miuibrowser\/([\w\.]+)/i // MIUI Browser - ], [VERSION, [NAME, 'MIUI Browser']], [ - /fxios\/([\w\.-]+)/i // Firefox for iOS - ], [VERSION, [NAME, 'Firefox']], [ - /(qihu|qhbrowser|qihoobrowser|360browser)/i // 360 - ], [[NAME, '360 Browser']], [ + ], [VERSION, [NAME, OPERA+' Coast']], [ + /miuibrowser\/([\w\.]+)/i // MIUI Browser + ], [VERSION, [NAME, 'MIUI '+BROWSER]], [ + /fxios\/([-\w\.]+)/i // Firefox for iOS + ], [VERSION, [NAME, FIREFOX]], [ + /\bqihu|(qi?ho?o?|360)browser/i // 360 + ], [[NAME, '360 '+BROWSER]], [ /(oculus|samsung|sailfish)browser\/([\w\.]+)/i - ], [[NAME, /(.+)/, '$1 Browser'], VERSION], [ // Oculus/Samsung/Sailfish Browser + ], [[NAME, /(.+)/, '$1 '+BROWSER], VERSION], [ // Oculus/Samsung/Sailfish Browser /(comodo_dragon)\/([\w\.]+)/i // Comodo Dragon ], [[NAME, /_/g, ' '], VERSION], [ - /\s(electron)\/([\w\.]+)\ssafari/i, // Electron-based App - /(tesla)(?:\sqtcarbrowser|\/(20[12]\d\.[\w\.-]+))/i, // Tesla - /m?(qqbrowser|baiduboxapp|2345Explorer)[\/\s]?([\w\.]+)/i // QQBrowser/Baidu App/2345 Browser + /(electron)\/([\w\.]+) safari/i, // Electron-based App + /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, // Tesla + /m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i // QQBrowser/Baidu App/2345 Browser ], [NAME, VERSION], [ - /(MetaSr)[\/\s]?([\w\.]+)/i, // SouGouBrowser - /(LBBROWSER)/i // LieBao Browser + /(metasr)[\/ ]?([\w\.]+)/i, // SouGouBrowser + /(lbbrowser)/i // LieBao Browser ], [NAME], [ // WebView - /;fbav\/([\w\.]+);/i // Facebook App for iOS & Android with version - ], [VERSION, [NAME, 'Facebook']], [ - /FBAN\/FBIOS|FB_IAB\/FB4A/i // Facebook App for iOS & Android without version - ], [[NAME, 'Facebook']], [ - /safari\s(line)\/([\w\.]+)/i, // Line App for iOS + /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i // Facebook App for iOS & Android + ], [[NAME, 'Facebook'], VERSION], [ + /safari (line)\/([\w\.]+)/i, // Line App for iOS /\b(line)\/([\w\.]+)\/iab/i, // Line App for Android - /(chromium|instagram)[\/\s]([\w\.-]+)/i // Chromium/Instagram + /(chromium|instagram)[\/ ]([-\w\.]+)/i // Chromium/Instagram ], [NAME, VERSION], [ - /\bgsa\/([\w\.]+)\s.*safari\//i // Google Search Appliance on iOS + /\bgsa\/([\w\.]+) .*safari\//i // Google Search Appliance on iOS ], [VERSION, [NAME, 'GSA']], [ - /headlesschrome(?:\/([\w\.]+)|\s)/i // Chrome Headless - ], [VERSION, [NAME, 'Chrome Headless']], [ + /headlesschrome(?:\/([\w\.]+)| )/i // Chrome Headless + ], [VERSION, [NAME, CHROME+' Headless']], [ - /\swv\).+(chrome)\/([\w\.]+)/i // Chrome WebView - ], [[NAME, 'Chrome WebView'], VERSION], [ + / wv\).+(chrome)\/([\w\.]+)/i // Chrome WebView + ], [[NAME, CHROME+' WebView'], VERSION], [ - /droid.+\sversion\/([\w\.]+)\b.+(?:mobile\ssafari|safari)/i // Android Browser - ], [VERSION, [NAME, 'Android Browser']], [ + /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i // Android Browser + ], [VERSION, [NAME, 'Android '+BROWSER]], [ - /(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia + /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia ], [NAME, VERSION], [ - /version\/([\w\.]+)\s.*mobile\/\w+\s(safari)/i // Mobile Safari + /version\/([\w\.]+) .*mobile\/\w+ (safari)/i // Mobile Safari ], [VERSION, [NAME, 'Mobile Safari']], [ - /version\/([\w\.]+)\s.*(mobile\s?safari|safari)/i // Safari & Safari Mobile + /version\/([\w\.]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile ], [VERSION, NAME], [ - /webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i // Safari < 3.0 - ], [NAME, [VERSION, mapper.str, maps.browser.oldSafari.version]], [ + /webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i // Safari < 3.0 + ], [NAME, [VERSION, strMapper, oldSafariMap]], [ /(webkit|khtml)\/([\w\.]+)/i ], [NAME, VERSION], [ // Gecko based - /(navigator|netscape)\/([\w\.-]+)/i // Netscape + /(navigator|netscape\d?)\/([-\w\.]+)/i // Netscape ], [[NAME, 'Netscape'], VERSION], [ - /ile\svr;\srv:([\w\.]+)\).+firefox/i // Firefox Reality - ], [VERSION, [NAME, 'Firefox Reality']], [ + /mobile vr; rv:([\w\.]+)\).+firefox/i // Firefox Reality + ], [VERSION, [NAME, FIREFOX+' Reality']], [ /ekiohf.+(flow)\/([\w\.]+)/i, // Flow /(swiftfox)/i, // Swiftfox - /(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i, - // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror - /(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([\w\.-]+)$/i, + /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i, + // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar + /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i, // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix - /(firefox)\/([\w\.]+)\s[\w\s\-]+\/[\w\.]+$/i, // Other Firefox-based - /(mozilla)\/([\w\.]+)\s.+rv\:.+gecko\/\d+/i, // Mozilla + /(firefox)\/([\w\.]+)/i, // Other Firefox-based + /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, // Mozilla // Other - /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\/\s]?([\w\.]+)/i, - // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir - /(links)\s\(([\w\.]+)/i, // Links - /(gobrowser)\/?([\w\.]*)/i, // GoBrowser - /(ice\s?browser)\/v?([\w\._]+)/i, // ICE Browser - /(mosaic)[\/\s]([\w\.]+)/i // Mosaic + /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i, + // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser + /(links) \(([\w\.]+)/i // Links ], [NAME, VERSION] ], cpu : [[ - /(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i // AMD64 (x64) + /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i // AMD64 (x64) ], [[ARCHITECTURE, 'amd64']], [ /(ia32(?=;))/i // IA32 (quicktime) - ], [[ARCHITECTURE, util.lowerize]], [ + ], [[ARCHITECTURE, lowerize]], [ /((?:i[346]|x)86)[;\)]/i // IA32 (x86) ], [[ARCHITECTURE, 'ia32']], [ @@ -363,18 +353,18 @@ ], [[ARCHITECTURE, 'armhf']], [ // PocketPC mistakenly identified as PowerPC - /windows\s(ce|mobile);\sppc;/i + /windows (ce|mobile); ppc;/i ], [[ARCHITECTURE, 'arm']], [ - /((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i // PowerPC - ], [[ARCHITECTURE, /ower/, '', util.lowerize]], [ + /((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i // PowerPC + ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [ /(sun4\w)[;\)]/i // SPARC ], [[ARCHITECTURE, 'sparc']], [ - /((?:avr32|ia64(?=;))|68k(?=\))|\barm(?:64|(?=v(?:[1-7]|[5-7]1)l?|;|eabi))|(?=atmel\s)avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i + /((?:avr32|ia64(?=;))|68k(?=\))|\barm(?:64|(?=v(?:[1-7]|[5-7]1)l?|;|eabi))|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC - ], [[ARCHITECTURE, util.lowerize]] + ], [[ARCHITECTURE, lowerize]] ], device : [[ @@ -385,231 +375,231 @@ ///////////////////////// // Samsung - /\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus\s10)/i - ], [MODEL, [VENDOR, 'Samsung'], [TYPE, TABLET]], [ - /\b((?:s[cgp]h|gt|sm)-\w+|galaxy\snexus)/i, - /\ssamsung[\s-]([\w-]+)/i, + /\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i + ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [ + /\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i, + /samsung[- ]([-\w]+)/i, /sec-(sgh\w+)/i - ], [MODEL, [VENDOR, 'Samsung'], [TYPE, MOBILE]], [ + ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [ // Apple - /\((ip(?:hone|od)[\s\w]*);/i // iPod/iPhone - ], [MODEL, [VENDOR, 'Apple'], [TYPE, MOBILE]], [ - /\((ipad);[\w\s\),;-]+apple/i, // iPad - /applecoremedia\/[\w\.]+\s\((ipad)/i, + /\((ip(?:hone|od)[\w ]*);/i // iPod/iPhone + ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [ + /\((ipad);[-\w\),; ]+apple/i, // iPad + /applecoremedia\/[\w\.]+ \((ipad)/i, /\b(ipad)\d\d?,\d\d?[;\]].+ios/i - ], [MODEL, [VENDOR, 'Apple'], [TYPE, TABLET]], [ + ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [ // Huawei /\b((?:agr|ags[23]|bah2?|sht?)-a?[lw]\d{2})/i, - ], [MODEL, [VENDOR, 'Huawei'], [TYPE, TABLET]], [ - /d\/huawei([\w\s-]+)[;\)]/i, - /\b(nexus\s6p|vog-[at]?l\d\d|ane-[at]?l[x\d]\d|eml-a?l\d\da?|lya-[at]?l\d[\dc]|clt-a?l\d\di?|ele-l\d\d)/i, - /\b(\w{2,4}-[atu][ln][01259][019])[;\)\s]/i - ], [MODEL, [VENDOR, 'Huawei'], [TYPE, MOBILE]], [ + ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [ + /huawei([-\w ]+)[;\)]/i, + /\b(nexus 6p|vog-[at]?l\d\d|ane-[at]?l[x\d]\d|eml-a?l\d\da?|lya-[at]?l\d[\dc]|clt-a?l\d\di?|ele-l\d\d)/i, + /\b(\w{2,4}-[atu][ln][01259][019])[;\) ]/i + ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [ // Xiaomi - /\b(poco[\s\w]+)(?:\sbuild|\))/i, // Xiaomi POCO - /\b;\s(\w+)\sbuild\/hm\1/i, // Xiaomi Hongmi 'numeric' models - /\b(hm[\s\-_]?note?[\s_]?(?:\d\w)?)\sbuild/i, // Xiaomi Hongmi - /\b(redmi[\s\-_]?(?:note|k)?[\w\s_]+)(?:\sbuild|\))/i, // Xiaomi Redmi - /\b(mi[\s\-_]?(?:a\d|one|one[\s_]plus|note lte)?[\s_]?(?:\d?\w?)[\s_]?(?:plus)?)\sbuild/i // Xiaomi Mi - ], [[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, MOBILE]], [ - /\b(mi[\s\-_]?(?:pad)(?:[\w\s_]+))(?:\sbuild|\))/i // Mi Pad tablets - ],[[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, TABLET]], [ + /\b(poco[\w ]+)(?: bui|\))/i, // Xiaomi POCO + /\b; (\w+) build\/hm\1/i, // Xiaomi Hongmi 'numeric' models + /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, // Xiaomi Hongmi + /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, // Xiaomi Redmi + /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte)?[_ ]?(?:\d?\w?)[_ ]?(?:plus)?) bui/i // Xiaomi Mi + ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [ + /\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i // Mi Pad tablets + ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [ // OPPO - /;\s(\w+)\sbuild.+\soppo/i, - /\s(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007)\b/i + /; (\w+) bui.+ oppo/i, + /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007)\b/i ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [ // Vivo - /\svivo\s(\w+)(?:\sbuild|\))/i, - /\s(v[12]\d{3}\w?[at])(?:\sbuild|;)/i + /vivo (\w+)(?: bui|\))/i, + /\b(v[12]\d{3}\w?[at])(?: bui|;)/i ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [ // Realme - /\s(rmx[12]\d{3})(?:\sbuild|;)/i + /\b(rmx[12]\d{3})(?: bui|;)/i ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [ // Motorola - /\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?:?(\s4g)?)\b[\w\s]+build\//i, - /\smot(?:orola)?[\s-](\w*)/i, - /((?:moto[\s\w\(\)]+|xt\d{3,4}|nexus\s6)(?=\sbuild|\)))/i - ], [MODEL, [VENDOR, 'Motorola'], [TYPE, MOBILE]], [ - /\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i - ], [MODEL, [VENDOR, 'Motorola'], [TYPE, TABLET]], [ + /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i, + /\bmot(?:orola)?[- ](\w*)/i, + /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i + ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [ + /\b(mz60\d|xoom[2 ]{0,2}) build\//i + ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [ // LG - /((?=lg)?[vl]k\-?\d{3})\sbuild|\s3\.[\s\w;-]{10}lg?-([06cv9]{3,4})/i - ], [MODEL, [VENDOR, 'LG'], [TYPE, TABLET]], [ - /(lm-?f100[nv]?|nexus\s[45])/i, - /lg[e;\s\/-]+((?!browser|netcast)\w+)/i, - /\blg(\-?[\d\w]+)\sbuild/i - ], [MODEL, [VENDOR, 'LG'], [TYPE, MOBILE]], [ + /((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i + ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [ + /(lm-?f100[nv]?|nexus [45])/i, + /\blg[-e;\/ ]+((?!browser|netcast)\w+)/i, + /\blg(\-?[\d\w]+) bui/i + ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [ // Lenovo - /(ideatab[\w\-\s]+)/i, - /lenovo\s?(s(?:5000|6000)(?:[\w-]+)|tab(?:[\s\w]+)|yt[\d\w-]{6}|tb[\d\w-]{6})/i // Lenovo tablets + /(ideatab[-\w ]+)/i, + /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [ // Nokia - /(?:maemo|nokia).*(n900|lumia\s\d+)/i, - /nokia[\s_-]?([\w\.-]*)/i + /(?:maemo|nokia).*(n900|lumia \d+)/i, + /nokia[-_ ]?([-\w\.]*)/i ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [ // Google - /droid.+;\s(pixel\sc)[\s)]/i // Google Pixel C - ], [MODEL, [VENDOR, 'Google'], [TYPE, TABLET]], [ - /droid.+;\s(pixel[\s\daxl]{0,6})(?:\sbuild|\))/i // Google Pixel - ], [MODEL, [VENDOR, 'Google'], [TYPE, MOBILE]], [ + /(pixel c)\b/i // Google Pixel C + ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [ + /droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i // Google Pixel + ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [ // Sony - /droid.+\s([c-g]\d{4}|so[-l]\w+|xq-a\w[4-7][12])(?=\sbuild\/|\).+chrome\/(?![1-6]{0,1}\d\.))/i - ], [MODEL, [VENDOR, 'Sony'], [TYPE, MOBILE]], [ - /sony\stablet\s[ps]\sbuild\//i, - /(?:sony)?sgp\w+(?:\sbuild\/|\))/i - ], [[MODEL, 'Xperia Tablet'], [VENDOR, 'Sony'], [TYPE, TABLET]], [ + /droid.+ ([c-g]\d{4}|so[-l]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i + ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [ + /sony tablet [ps]/i, + /\b(?:sony)?sgp\w+(?: bui|\))/i + ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [ // OnePlus - /\s(kb2005|in20[12]5|be20[12][59])\b/i, - /\ba000(1)\sbuild/i, // OnePlus - /\boneplus\s(a\d{4})[\s)]/i + / (kb2005|in20[12]5|be20[12][59])\b/i, + /\ba000(1) bui/i, + /oneplus (a\d{4})[) ]/i ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [ // Amazon /(alexa)webm/i, - /(kf[a-z]{2}wi)(\sbuild\/|\))/i, // Kindle Fire without Silk - /(kf[a-z]+)(\sbuild\/|\)).+silk\//i // Kindle Fire HD - ], [MODEL, [VENDOR, 'Amazon'], [TYPE, TABLET]], [ - /(sd|kf)[0349hijorstuw]+(\sbuild\/|\)).+silk\//i // Fire Phone - ], [[MODEL, 'Fire Phone'], [VENDOR, 'Amazon'], [TYPE, MOBILE]], [ + /(kf[a-z]{2}wi)( bui|\))/i, // Kindle Fire without Silk + /(kf[a-z]+)( bui|\)).+silk\//i // Kindle Fire HD + ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [ + /((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i // Fire Phone + ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [ // BlackBerry - /\((playbook);[\w\s\),;-]+(rim)/i // BlackBerry PlayBook + /(playbook);[-\w\),; ]+(rim)/i // BlackBerry PlayBook ], [MODEL, VENDOR, [TYPE, TABLET]], [ - /((?:bb[a-f]|st[hv])100-\d)/i, - /\(bb10;\s(\w+)/i // BlackBerry 10 - ], [MODEL, [VENDOR, 'BlackBerry'], [TYPE, MOBILE]], [ + /\b((?:bb[a-f]|st[hv])100-\d)/i, + /\(bb10; (\w+)/i // BlackBerry 10 + ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [ // Asus - /(?:\b|asus_)(transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+|nexus\s7|padfone|p00[cj])/i - ], [MODEL, [VENDOR, 'ASUS'], [TYPE, TABLET]], [ - /\s(z[es]6[027][01][km][ls]|zenfone\s\d\w?)\b/i - ], [MODEL, [VENDOR, 'ASUS'], [TYPE, MOBILE]], [ + /(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i + ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [ + / (z[es]6[027][01][km][ls]|zenfone \d\w?)\b/i + ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [ // HTC - /(nexus\s9)/i // HTC Nexus 9 + /(nexus 9)/i // HTC Nexus 9 ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [ - /(htc)[;_\s-]{1,2}([\w\s]+(?=\)|\sbuild)|\w+)/i, // HTC + /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i, // HTC // ZTE /(zte)-(\w*)/i, - /(alcatel|geeksphone|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony + /(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [ // Acer - /droid[x\d\.\s;]+\s([ab][1-7]\-?[0178a]\d\d?)/i + /droid.+; ([ab][1-7]-?[0178a]\d\d?)/i ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [ // Meizu - /droid.+;\s(m[1-5]\snote)\sbuild/i, - /\bmz-([\w-]{2,})/i + /droid.+; (m[1-5] note) bui/i, + /\bmz-([-\w]{2,})/i ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [ // MIXED - /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[\s_-]?([\w-]*)/i, + /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i, // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron - /(hp)\s([\w\s]+\w)/i, // HP iPAQ + /(hp) ([\w ]+\w)/i, // HP iPAQ /(asus)-?(\w+)/i, // Asus - /(microsoft);\s(lumia[\s\w]+)/i, // Microsoft Lumia - /(lenovo)[_\s-]?([\w-]+)/i, // Lenovo - /linux;.+(jolla);/i, // Jolla - /droid.+;\s(oppo)\s?([\w\s]+)\sbuild/i // OPPO + /(microsoft); (lumia[\w ]+)/i, // Microsoft Lumia + /(lenovo)[-_ ]?([-\w]+)/i, // Lenovo + /(jolla)/i, // Jolla + /(oppo) ?([\w ]+) bui/i // OPPO ], [VENDOR, MODEL, [TYPE, MOBILE]], [ - /(archos)\s(gamepad2?)/i, // Archos + /(archos) (gamepad2?)/i, // Archos /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad /(kindle)\/([\w\.]+)/i, // Kindle - /\s(nook)[\w\s]+build\/(\w+)/i, // Nook - /(dell)\s(strea[kpr\s\d]*[\dko])/i, // Dell Streak - /[;\/]\s?(le[\s\-]+pan)[\s\-]+(\w{1,9})\sbuild/i, // Le Pan Tablets - /[;\/]\s?(trinity)[\-\s]*(t\d{3})\sbuild/i, // Trinity Tablets - /\b(gigaset)[\s\-]+(q\w{1,9})\sbuild/i, // Gigaset Tablets - /\b(vodafone)\s([\w\s]+)(?:\)|\sbuild)/i // Vodafone + /(nook)[\w ]+build\/(\w+)/i, // Nook + /(dell) (strea[kpr\d ]*[\dko])/i, // Dell Streak + /(le[- ]+pan)[- ]+(\w{1,9}) bui/i, // Le Pan Tablets + /(trinity)[- ]*(t\d{3}) bui/i, // Trinity Tablets + /(gigaset)[- ]+(q\w{1,9}) bui/i, // Gigaset Tablets + /(vodafone) ([\w ]+)(?:\)| bui)/i // Vodafone ], [VENDOR, MODEL, [TYPE, TABLET]], [ - /\s(surface\sduo)\s/i // Surface Duo - ], [MODEL, [VENDOR, 'Microsoft'], [TYPE, TABLET]], [ - /droid\s[\d\.]+;\s(fp\du?)\sbuild/i + /(surface duo)/i // Surface Duo + ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [ + /droid [\d\.]+; (fp\du?) b/i // Fairphone ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [ - /\s(u304aa)\sbuild/i // AT&T + /(u304aa)/i // AT&T ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [ - /sie-(\w*)/i // Siemens + /\bsie-(\w*)/i // Siemens ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [ - /[;\/]\s?(rct\w+)\sbuild/i // RCA Tablets + /\b(rct\w+) b/i // RCA Tablets ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [ - /[;\/\s](venue[\d\s]{2,7})\sbuild/i // Dell Venue Tablets + /\b(venue[\d ]{2,7}) b/i // Dell Venue Tablets ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [ - /[;\/]\s?(q(?:mv|ta)\w+)\sbuild/i // Verizon Tablet + /\b(q(?:mv|ta)\w+) b/i // Verizon Tablet ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [ - /[;\/]\s(?:barnes[&\s]+noble\s|bn[rt])([\w\s\+]*)\sbuild/i // Barnes & Noble Tablet + /\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i // Barnes & Noble Tablet ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [ - /[;\/]\s(tm\d{3}\w+)\sbuild/i + /\b(tm\d{3}\w+) b/i ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [ - /;\s(k88)\sbuild/i // ZTE K Series Tablet + /\b(k88) b/i // ZTE K Series Tablet ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [ - /;\s(nx\d{3}j)\sbuild/i // ZTE Nubia + /\b(nx\d{3}j) b/i // ZTE Nubia ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [ - /[;\/]\s?(gen\d{3})\sbuild.*49h/i // Swiss GEN Mobile + /\b(gen\d{3}) b.+49h/i // Swiss GEN Mobile ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [ - /[;\/]\s?(zur\d{3})\sbuild/i // Swiss ZUR Tablet + /\b(zur\d{3}) b/i // Swiss ZUR Tablet ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [ - /[;\/]\s?((zeki)?tb.*\b)\sbuild/i // Zeki Tablets + /\b((zeki)?tb.*\b) b/i // Zeki Tablets ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [ - /[;\/]\s([yr]\d{2})\sbuild/i, - /[;\/]\s(dragon[\-\s]+touch\s|dt)(\w{5})\sbuild/i // Dragon Touch Tablet + /\b([yr]\d{2}) b/i, + /\b(dragon[- ]+touch |dt)(\w{5}) b/i // Dragon Touch Tablet ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [ - /[;\/]\s?(ns-?\w{0,9})\sbuild/i // Insignia Tablets + /\b(ns-?\w{0,9}) b/i // Insignia Tablets ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [ - /[;\/]\s?((nxa|Next)-?\w{0,9})\sbuild/i // NextBook Tablets + /\b((nxa|next)-?\w{0,9}) b/i // NextBook Tablets ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [ - /[;\/]\s?(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05]))\sbuild/i - ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [ // Voice Xtreme Phones - /[;\/]\s?(lvtel\-)?(v1[12])\sbuild/i // LvTel Phones + /\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones + ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [ + /\b(lvtel\-)?(v1[12]) b/i // LvTel Phones ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [ - /;\s(ph-1)\s/i - ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [ // Essential PH-1 - /[;\/]\s?(v(100md|700na|7011|917g).*\b)\sbuild/i // Envizen Tablets + /\b(ph-1) /i // Essential PH-1 + ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [ + /\b(v(100md|700na|7011|917g).*\b) b/i // Envizen Tablets ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [ - /[;\/]\s?(trio[\s\w\-\.]+)\sbuild/i // MachSpeed Tablets + /\b(trio[-\w\. ]+) b/i // MachSpeed Tablets ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [ - /[;\/]\s?tu_(1491)\sbuild/i // Rotor Tablets + /\btu_(1491) b/i // Rotor Tablets ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [ - /(shield[\w\s]+)\sbuild/i // Nvidia Shield Tablets + /(shield[\w ]+) b/i // Nvidia Shield Tablets ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [ - /(sprint)\s(\w+)/i // Sprint Phones + /(sprint) (\w+)/i // Sprint Phones ], [VENDOR, MODEL, [TYPE, MOBILE]], [ /(kin\.[onetw]{3})/i // Microsoft Kin - ], [[MODEL, /\./g, ' '], [VENDOR, 'Microsoft'], [TYPE, MOBILE]], [ - /droid\s[\d\.]+;\s(cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i // Zebra - ], [MODEL, [VENDOR, 'Zebra'], [TYPE, TABLET]], [ - /droid\s[\d\.]+;\s(ec30|ps20|tc[2-8]\d[kx])\)/i - ], [MODEL, [VENDOR, 'Zebra'], [TYPE, MOBILE]], [ + ], [[MODEL, /\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [ + /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i // Zebra + ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [ + /droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i + ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [ /////////////////// // CONSOLES /////////////////// - /\s(ouya)\s/i, // Ouya - /(nintendo)\s([wids3utch]+)/i // Nintendo + /(ouya)/i, // Ouya + /(nintendo) ([wids3utch]+)/i // Nintendo ], [VENDOR, MODEL, [TYPE, CONSOLE]], [ - /droid.+;\s(shield)\sbuild/i // Nvidia + /droid.+; (shield) bui/i // Nvidia ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [ - /(playstation\s[345portablevi]+)/i // Playstation - ], [MODEL, [VENDOR, 'Sony'], [TYPE, CONSOLE]], [ - /[\s\(;](xbox(?:\sone)?(?!;\sxbox))[\s\);]/i // Microsoft Xbox - ], [MODEL, [VENDOR, 'Microsoft'], [TYPE, CONSOLE]], [ + /(playstation [345portablevi]+)/i // Playstation + ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [ + /\b(xbox(?: one)?(?!; xbox))[\); ]/i // Microsoft Xbox + ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [ /////////////////// // SMARTTVS @@ -618,61 +608,61 @@ /smart-tv.+(samsung)/i // Samsung ], [VENDOR, [TYPE, SMARTTV]], [ /hbbtv.+maple;(\d+)/i - ], [[MODEL, /^/, 'SmartTV'], [VENDOR, 'Samsung'], [TYPE, SMARTTV]], [ - /(?:linux;\snetcast.+smarttv|lg\snetcast\.tv-201\d)/i, // LG SmartTV - ], [[VENDOR, 'LG'], [TYPE, SMARTTV]], [ - /(apple)\s?tv/i // Apple TV - ], [VENDOR, [MODEL, 'Apple TV'], [TYPE, SMARTTV]], [ + ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [ + /(?:nux; netcast.+smarttv|lg netcast\.tv-201\d)/i, // LG SmartTV + ], [[VENDOR, LG], [TYPE, SMARTTV]], [ + /(apple) ?tv/i // Apple TV + ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [ /crkey/i // Google Chromecast - ], [[MODEL, 'Chromecast'], [VENDOR, 'Google'], [TYPE, SMARTTV]], [ - /droid.+aft([\w])(\sbuild\/|\))/i // Fire TV - ], [MODEL, [VENDOR, 'Amazon'], [TYPE, SMARTTV]], [ + ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [ + /droid.+aft(\w)( bui|\))/i // Fire TV + ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [ /\(dtv[\);].+(aquos)/i // Sharp ], [MODEL, [VENDOR, 'Sharp'], [TYPE, SMARTTV]], [ - /hbbtv\/\d+\.\d+\.\d+\s+\([\w\s]*;\s*(\w[^;]*);([^;]*)/i // HbbTV devices - ], [[VENDOR, util.trim], [MODEL, util.trim], [TYPE, SMARTTV]], [ - /[\s\/\(](android\s|smart[-\s]?|opera\s)tv[;\)\s]/i // SmartTV from Unidentified Vendors + /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, // Roku + /hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i // HbbTV devices + ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [ + /\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i // SmartTV from Unidentified Vendors ], [[TYPE, SMARTTV]], [ /////////////////// // WEARABLES /////////////////// - /((pebble))app\/[\d\.]+\s/i // Pebble + /((pebble))app/i // Pebble ], [VENDOR, MODEL, [TYPE, WEARABLE]], [ - /droid.+;\s(glass)\s\d/i // Google Glass - ], [MODEL, [VENDOR, 'Google'], [TYPE, WEARABLE]], [ - /droid\s[\d\.]+;\s(wt63?0{2,3})\)/i - ], [MODEL, [VENDOR, 'Zebra'], [TYPE, WEARABLE]], [ + /droid.+; (glass) \d/i // Google Glass + ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [ + /droid.+; (wt63?0{2,3})\)/i + ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [ /////////////////// // EMBEDDED /////////////////// - /(tesla)(?:\sqtcarbrowser|\/20[12]\d\.[\w\.-]+)/i // Tesla + /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i // Tesla ], [VENDOR, [TYPE, EMBEDDED]], [ //////////////////// // MIXED (GENERIC) /////////////////// - /droid .+?; ([^;]+?)(?: build|\) applewebkit).+? mobile safari/i // Android Phones from Unidentified Vendors + /droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors ], [MODEL, [TYPE, MOBILE]], [ - /droid .+?;\s([^;]+?)(?: build|\) applewebkit).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors + /droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors ], [MODEL, [TYPE, TABLET]], [ - /\s(tablet|tab)[;\/]/i, // Unidentifiable Tablet - /\s(mobile)(?:[;\/]|\ssafari)/i // Unidentifiable Mobile - ], [[TYPE, util.lowerize]], [ - /(android[\w\.\s\-]{0,9});.+build/i // Generic Android Device - ], [MODEL, [VENDOR, 'Generic']], [ - /(phone)/i - ], [[TYPE, MOBILE]] + /\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i, // Unidentifiable Tablet + ], [[TYPE, TABLET]], [ + /(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile + ], [[TYPE, MOBILE]], [ + /(android[-\w\. ]{0,9});.+buil/i // Generic Android Device + ], [MODEL, [VENDOR, 'Generic']] ], engine : [[ - /windows.+\sedge\/([\w\.]+)/i // EdgeHTML - ], [VERSION, [NAME, 'EdgeHTML']], [ + /windows.+ edge\/([\w\.]+)/i // EdgeHTML + ], [VERSION, [NAME, EDGE+'HTML']], [ /webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i // Blink ], [VERSION, [NAME, 'Blink']], [ @@ -680,92 +670,95 @@ /(presto)\/([\w\.]+)/i, // Presto /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna /ekioh(flow)\/([\w\.]+)/i, // Flow - /(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i, // KHTML/Tasman/Links - /(icab)[\/\s]([23]\.[\d\.]+)/i // iCab + /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i, // KHTML/Tasman/Links + /(icab)[\/ ]([23]\.[\d\.]+)/i // iCab ], [NAME, VERSION], [ /rv\:([\w\.]{1,9})\b.+(gecko)/i // Gecko ], [VERSION, NAME] ], + gpu : [[ + + /(intel|nvidia|sis|amd|apple|powervr)\W? (.+)/i, // Intel/NVIDIA/SiS/AMD/Apple/PowerVR + /(((?:radeon|adreno|geforce|mali).+))/i, // AMD Radeon/NVIDIA GeForce/Qualcomm Adreno/ARM Mali + ], [[VENDOR, strMapper, gpuVendorMap], [MODEL, / ?(\(.+?\)| direct3d.+| opengl.+|\/.+$| gpu$)/gi, EMPTY]] + ], + os : [[ // Windows - /microsoft\s(windows)\s(vista|xp)/i // Windows (iTunes) + /microsoft (windows) (vista|xp)/i // Windows (iTunes) ], [NAME, VERSION], [ - /(windows)\snt\s6\.2;\s(arm)/i, // Windows RT - /(windows\sphone(?:\sos)*)[\s\/]?([\d\.\s\w]*)/i, // Windows Phone - /(windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)(?!.+xbox)/i - ], [NAME, [VERSION, mapper.str, maps.os.windows.version]], [ - /(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i - ], [[NAME, 'Windows'], [VERSION, mapper.str, maps.os.windows.version]], [ + /(windows) nt 6\.2; (arm)/i, // Windows RT + /(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i, // Windows Phone + /(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i + ], [NAME, [VERSION, strMapper, windowsVersionMap]], [ + /(win(?=3|9|n)|win 9x )([nt\d\.]+)/i + ], [[NAME, 'Windows'], [VERSION, strMapper, windowsVersionMap]], [ // iOS/macOS - /ip[honead]{2,4}\b(?:.*os\s([\w]+)\slike\smac|;\sopera)/i, // iOS + /ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i, // iOS /cfnetwork\/.+darwin/i ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [ - /(mac\sos\sx)\s?([\w\s\.]*)/i, - /(macintosh|mac(?=_powerpc)\s)(?!.+haiku)/i // Mac OS + /(mac os x) ?([\w\. ]*)/i, + /(macintosh|mac_powerpc\b)(?!.+haiku)/i // Mac OS ], [[NAME, 'Mac OS'], [VERSION, /_/g, '.']], [ - // Mobile OSes // Android/WebOS/Palm/QNX/Bada/RIM/MeeGo/Contiki/Sailfish OS - /(android|webos|palm\sos|qnx|bada|rim\stablet\sos|meego|sailfish|contiki)[\/\s-]?([\w\.]*)/i, + // Mobile OSes // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS + /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i, /(blackberry)\w*\/([\w\.]*)/i, // Blackberry - /(tizen|kaios)[\/\s]([\w\.]+)/i, // Tizen/KaiOS + /(tizen|kaios)[\/ ]([\w\.]+)/i, // Tizen/KaiOS /\((series40);/i // Series 40 ], [NAME, VERSION], [ /\(bb(10);/i // BlackBerry 10 - ], [VERSION, [NAME, 'BlackBerry']], [ - /(?:symbian\s?os|symbos|s60(?=;)|series60)[\/\s-]?([\w\.]*)/i // Symbian + ], [VERSION, [NAME, BLACKBERRY]], [ + /(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i // Symbian ], [VERSION, [NAME, 'Symbian']], [ - /mozilla.+\(mobile;.+gecko.+firefox/i // Firefox OS - ], [[NAME, 'Firefox OS']], [ + /mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i // Firefox OS + ], [VERSION, [NAME, FIREFOX+' OS']], [ /web0s;.+rt(tv)/i, /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i // WebOS ], [VERSION, [NAME, 'webOS']], [ // Google Chromecast /crkey\/([\d\.]+)/i // Google Chromecast - ], [VERSION, [NAME, 'Chromecast']], [ - /(cros)\s[\w]+\s([\w\.]+\w)/i // Chromium OS + ], [VERSION, [NAME, CHROME+'cast']], [ + /(cros) [\w]+ ([\w\.]+\w)/i // Chromium OS ], [[NAME, 'Chromium OS'], VERSION],[ // Console - /(nintendo|playstation)\s([wids345portablevuch]+)/i, // Nintendo/Playstation - /(xbox);\s+xbox\s([^\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S) - - // GNU/Linux based - /(mint)[\/\s\(\)]?(\w*)/i, // Mint - /(mageia|vectorlinux)[;\s]/i, // Mageia/VectorLinux - /(joli|[kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?=\slinux)|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus|raspbian)(?:\sgnu\/linux)?(?:\slinux)?[\/\s-]?(?!chrom|package)([\w\.-]*)/i, - // Joli/Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware - // Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus - /(hurd|linux)\s?([\w\.]*)/i, // Hurd/Linux - /(gnu)\s?([\w\.]*)/i, // GNU - - // BSD based - /\s([frentopc-]{0,4}bsd|dragonfly)\s?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/DragonFly - /(haiku)\s(\w+)/i // Haiku - ], [NAME, VERSION], [ + /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation + /(xbox); +xbox ([^\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S) // Other - /(sunos)\s?([\w\.\d]*)/i // Solaris + /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i, // Joli/Palm + /(mint)[\/\(\) ]?(\w*)/i, // Mint + /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux + /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i, + // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki + /(hurd|linux) ?([\w\.]*)/i, // Hurd/Linux + /(gnu) ?([\w\.]*)/i, // GNU + /\b([-frentopc]{0,4}bsd|dragonfly) ?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/DragonFly + /(haiku) (\w+)/i // Haiku + ], [NAME, VERSION], [ + /(sunos) ?([\w\.\d]*)/i // Solaris ], [[NAME, 'Solaris'], VERSION], [ - /((?:open)?solaris)[\/\s-]?([\w\.]*)/i, // Solaris - /(aix)\s((\d)(?=\.|\)|\s)[\w\.])*/i, // AIX - /(plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos|openvms|fuchsia)/i, // Plan9/Minix/BeOS/OS2/AmigaOS/MorphOS/RISCOS/OpenVMS/Fuchsia - /(unix)\s?([\w\.]*)/i // UNIX + /((?:open)?solaris)[-\/ ]?([\w\.]*)/i, // Solaris + /(aix) ((\d)(?=\.|\)| )[\w\.])*/i, // AIX + /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX + /(unix) ?([\w\.]*)/i // UNIX ], [NAME, VERSION] ] }; - ///////////////// // Constructor //////////////// + var UAParser = function (ua, extensions) { - if (typeof ua === 'object') { + if (typeof ua === OBJ_TYPE) { extensions = ua; ua = undefined; } @@ -774,33 +767,53 @@ return new UAParser(ua, extensions).getResult(); } - var _ua = ua || ((typeof window !== 'undefined' && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY); - var _rgxmap = extensions ? util.extend(regexes, extensions) : regexes; + var _ua = ua || ((typeof window !== UNDEF_TYPE && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY); + var _rgxmap = extensions ? extend(regexes, extensions) : regexes; + var _renderer; this.getBrowser = function () { - var _browser = { name: undefined, version: undefined }; - mapper.rgx.call(_browser, _ua, _rgxmap.browser); - _browser.major = util.major(_browser.version); // deprecated + var _browser = {}; + _browser[NAME] = undefined; + _browser[VERSION] = undefined; + rgxMapper.call(_browser, _ua, _rgxmap.browser); + _browser.major = majorize(_browser.version); return _browser; }; this.getCPU = function () { - var _cpu = { architecture: undefined }; - mapper.rgx.call(_cpu, _ua, _rgxmap.cpu); + var _cpu = {}; + _cpu[ARCHITECTURE] = undefined; + rgxMapper.call(_cpu, _ua, _rgxmap.cpu); return _cpu; }; this.getDevice = function () { - var _device = { vendor: undefined, model: undefined, type: undefined }; - mapper.rgx.call(_device, _ua, _rgxmap.device); + var _device = {}; + _device[VENDOR] = undefined; + _device[MODEL] = undefined; + _device[TYPE] = undefined; + rgxMapper.call(_device, _ua, _rgxmap.device); return _device; }; this.getEngine = function () { - var _engine = { name: undefined, version: undefined }; - mapper.rgx.call(_engine, _ua, _rgxmap.engine); + var _engine = {}; + _engine[NAME] = undefined; + _engine[VERSION] = undefined; + rgxMapper.call(_engine, _ua, _rgxmap.engine); return _engine; }; + this.getGPU = function () { + var _gpu = {}; + _gpu[VENDOR] = undefined; + _gpu[MODEL] = undefined; + if (_renderer) { + rgxMapper.call(_gpu, _renderer, _rgxmap.gpu); + } + return _gpu; + }; this.getOS = function () { - var _os = { name: undefined, version: undefined }; - mapper.rgx.call(_os, _ua, _rgxmap.os); + var _os = {}; + _os[NAME] = undefined; + _os[VERSION] = undefined; + rgxMapper.call(_os, _ua, _rgxmap.os); return _os; }; this.getResult = function () { @@ -810,54 +823,44 @@ engine : this.getEngine(), os : this.getOS(), device : this.getDevice(), - cpu : this.getCPU() + cpu : this.getCPU(), + gpu : this.getGPU() }; }; + this.getRenderer = function () { + return _renderer; + }; + this.setRenderer = function (renderer) { + _renderer = renderer; + return this; + }; this.getUA = function () { return _ua; }; this.setUA = function (ua) { - _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? util.trim(ua, UA_MAX_LENGTH) : ua; + _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua; return this; }; this.setUA(_ua); + // browser only + if (typeof window !== UNDEF_TYPE && window.document) { + var canvas = document.createElement('canvas'); + var gl = canvas.getContext ? canvas.getContext('webgl2') || canvas.getContext('webgl') || canvas.getContext('experimental-webgl') : undefined; + this.setRenderer(gl && gl.getParameter && gl.getExtension && gl.getExtension('WEBGL_debug_renderer_info') ? gl.getParameter(gl.getExtension('WEBGL_debug_renderer_info').UNMASKED_RENDERER_WEBGL) : undefined); + } return this; }; UAParser.VERSION = LIBVERSION; - UAParser.BROWSER = { - NAME : NAME, - MAJOR : MAJOR, // deprecated - VERSION : VERSION - }; - UAParser.CPU = { - ARCHITECTURE : ARCHITECTURE - }; - UAParser.DEVICE = { - MODEL : MODEL, - VENDOR : VENDOR, - TYPE : TYPE, - CONSOLE : CONSOLE, - MOBILE : MOBILE, - SMARTTV : SMARTTV, - TABLET : TABLET, - WEARABLE: WEARABLE, - EMBEDDED: EMBEDDED - }; - UAParser.ENGINE = { - NAME : NAME, - VERSION : VERSION - }; - UAParser.OS = { - NAME : NAME, - VERSION : VERSION - }; + UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]); + UAParser.CPU = enumerize([ARCHITECTURE]); + UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]); + UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]); /////////// // Export ////////// - // check js environment if (typeof(exports) !== UNDEF_TYPE) { // nodejs env @@ -867,11 +870,11 @@ exports.UAParser = UAParser; } else { // requirejs env (optional) - if (typeof(define) === 'function' && define.amd) { + if (typeof(define) === FUNC_TYPE && define.amd) { define(function () { return UAParser; }); - } else if (typeof window !== 'undefined') { + } else if (typeof window !== UNDEF_TYPE) { // browser env window.UAParser = UAParser; } @@ -882,15 +885,15 @@ // 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, // and we should catch that. - var $ = typeof window !== 'undefined' && (window.jQuery || window.Zepto); + var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto); if ($ && !$.ua) { var parser = new UAParser(); $.ua = parser.getResult(); $.ua.get = function () { return parser.getUA(); }; - $.ua.set = function (uastring) { - parser.setUA(uastring); + $.ua.set = function (ua) { + parser.setUA(ua); var result = parser.getResult(); for (var prop in result) { $.ua[prop] = result[prop];