From d66c971090281558706a48118c4db570ebf0ed73 Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Thu, 12 Dec 2024 20:01:58 +0700 Subject: [PATCH] Backport - Improve detection for Nvidia devices (cherry picked from commit 9cdf560e60c62ccd968b03bfe95b05b696a0a114) --- src/ua-parser.js | 13 ++++++++----- test/device-test.json | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/src/ua-parser.js b/src/ua-parser.js index ce9db1a..6e5fddb 100755 --- a/src/ua-parser.js +++ b/src/ua-parser.js @@ -54,6 +54,7 @@ LG = 'LG', MICROSOFT = 'Microsoft', MOTOROLA = 'Motorola', + NVIDIA = 'Nvidia', ONEPLUS = 'OnePlus', OPERA = 'Opera', OPPO = 'OPPO', @@ -671,8 +672,8 @@ ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [ /\btu_(1491) b/i // Rotor Tablets ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [ - /(shield[\w ]+) b/i // Nvidia Shield Tablets - ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [ + /((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i // Nvidia Tablets + ], [MODEL, [VENDOR, NVIDIA], [TYPE, TABLET]], [ /(sprint) (\w+)/i // Sprint Phones ], [VENDOR, MODEL, [TYPE, MOBILE]], [ /(kin\.[onetw]{3})/i // Microsoft Kin @@ -698,6 +699,8 @@ ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [ /droid.+aft(\w+)( bui|\))/i // Fire TV ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [ + /(shield \w+ tv)/i // Nvidia Shield TV + ], [MODEL, [VENDOR, NVIDIA], [TYPE, SMARTTV]], [ /\(dtv[\);].+(aquos)/i, /(aquos-tv[\w ]+)\)/i // Sharp ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[ @@ -720,9 +723,9 @@ /(ouya)/i, // Ouya /(nintendo) ([wids3utch]+)/i // Nintendo ], [VENDOR, MODEL, [TYPE, CONSOLE]], [ - /droid.+; (shield) bui/i // Nvidia - ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [ - /(playstation [345portablevi]+)/i // Playstation + /droid.+; (shield)( bui|\))/i // Nvidia Portable + ], [MODEL, [VENDOR, NVIDIA], [TYPE, CONSOLE]], [ + /(playstation \w+)/i // Playstation ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [ /\b(xbox(?: one)?(?!; xbox))[\); ]/i // Microsoft Xbox ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [ diff --git a/test/device-test.json b/test/device-test.json index 0a8afb6..ecfed56 100644 --- a/test/device-test.json +++ b/test/device-test.json @@ -6483,6 +6483,23 @@ "model": "Xbox", "type": "console" } + },{ + "desc": "Tegra Note 7", + "ua": "Mozilla/5.0 (Linux; Android 5.1; TegraNote-P1640 Build/LMY47D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Safari/537.36", + "expect": { + "vendor": "Nvidia", + "model": "TegraNote-P1640", + "type": "tablet" + } + }, + { + "desc": "Nvidia Shield", + "ua": "Mozilla/5.0 (Linux; Android 5.1; SHIELD) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Mobile Safari/537.36", + "expect": { + "vendor": "Nvidia", + "model": "SHIELD", + "type": "console" + } }, { "desc": "Nvidia Shield Tablet", @@ -6493,6 +6510,24 @@ "type": "tablet" } }, + { + "desc": "Nvidia Shield Tablet K1", + "ua": "Mozilla/5.0 (Linux; Android 7.0; SHIELD Tablet K1 Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.98 Safari/537.36", + "expect": { + "vendor": "Nvidia", + "model": "SHIELD Tablet K1", + "type": "tablet" + } + }, + { + "desc": "Nvidia Shield TV", + "ua": "Mozilla/5.0 (Linux; Android 11; SHIELD Android TV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Mobile Safari/537.36 ", + "expect": { + "vendor": "Nvidia", + "model": "SHIELD Android TV", + "type": "smarttv" + } + }, { "desc": "Ouya", "ua": "Mozilla/5.0 (Linux; Android 4.1.2; OUYA Console Build/JZO54L-OUYA) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.84 Safari/537.36",