From b20d09655cf01657d00e38e334a757c25b176175 Mon Sep 17 00:00:00 2001 From: Runar Heggset Date: Wed, 3 May 2023 11:28:54 +0200 Subject: [PATCH 1/4] Fix Amazon Fire TV device detection --- src/main/ua-parser.js | 2 +- test/specs/device-all.json | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index 65bab02..45dddb0 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -627,7 +627,7 @@ ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [ /crkey/i // Google Chromecast ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [ - /droid.+aft(\w)( bui|\))/i // Fire TV + /droid.+aft(\w+)( bui|\))/i // Fire TV ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [ /\(dtv[\);].+(aquos)/i, /(aquos-tv[\w ]+)\)/i // Sharp diff --git a/test/specs/device-all.json b/test/specs/device-all.json index 1c54884..b43969c 100644 --- a/test/specs/device-all.json +++ b/test/specs/device-all.json @@ -2772,6 +2772,15 @@ "type": "smarttv" } }, + { + "desc": "Amazon Fire TV", + "ua": "Mozilla/5.0 (Linux; Android 9; AFTKA Build/PS7633.3445N; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/108.0.5359.160 Mobile Safari/537.36", + "expect": { + "vendor": "Amazon", + "model": "KA", + "type": "smarttv" + } + }, { "desc": "Android TV", "ua": "Mozilla/5.0 (Linux; Android 10; 2020/2021 UHD Android TV Build/QTG3.201102.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) version/4.0 Chrome/83.0.4103.101 Mobile Safari/537.36", From 420bf1066c02bcf9d4243a9e0c9da8acf00b9811 Mon Sep 17 00:00:00 2001 From: chenyuan-new <53860479+chenyuan-new@users.noreply.github.com> Date: Tue, 8 Aug 2023 16:22:10 +0800 Subject: [PATCH 2/4] fix: remove duplicated BRANDS input when call setProps in UACHData func (#663) --- src/main/ua-parser.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index 45dddb0..a8ed359 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -925,7 +925,6 @@ setProps.call(this, [ [BRANDS, itemListToArray(uach[CH_HEADER])], [FULLVERLIST, itemListToArray(uach[CH_HEADER_FULL_VER_LIST])], - [BRANDS, itemListToArray(uach[CH_HEADER])], [MOBILE, /\?1/.test(uach[CH_HEADER_MOBILE])], [MODEL, stripQuotes(uach[CH_HEADER_MODEL])], [PLATFORM, stripQuotes(uach[CH_HEADER_PLATFORM])], From 594806072930fa88966e02640f81b775fe57e71d Mon Sep 17 00:00:00 2001 From: Andreas Kogler Date: Sun, 20 Aug 2023 09:25:56 +0200 Subject: [PATCH 3/4] Implement PlayStation app `WebMAF` detection (#649) * Add support for `WebMAF` detection on Playstation * Extend `WebMAF` support for PlayStation 5 * Update changelog --- changelog.md | 1 + src/main/ua-parser.js | 1 + test/specs/browser-all.json | 20 ++++++++++++++++++++ 3 files changed, 22 insertions(+) diff --git a/changelog.md b/changelog.md index ac8e493..3baed6c 100644 --- a/changelog.md +++ b/changelog.md @@ -4,6 +4,7 @@ - What's breaking: - Browser detection on mobile device: `"Chrome" => "Mobile Chrome"`, `"Firefox" => "Mobile Firefox"` - OS detection: `"Mac OS" => "macOS"`, `"Chromium OS" => "Chrome OS"` + - Apps on PlayStation 4/5 now report `WebMAF` instead of `WebKit` for `browser.name` and the `WebMAF`-version in `browser.version` - What's new: - Add some new methods in result object: - Add support for client hints: `withClientHints()` diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index a8ed359..c2b736d 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -285,6 +285,7 @@ // Mixed /(kindle)\/([\w\.]+)/i, // Kindle /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer + /(webmaf)\/([a-z0-9\.-]+)/i, // Sony/Playstation WebMAF // Trident based /(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i, // Avant/IEMobile/SlimBrowser /(ba?idubrowser)[\/ ]?([\w\.]+)/i, // Baidu Browser diff --git a/test/specs/browser-all.json b/test/specs/browser-all.json index 9ca190c..d876d55 100644 --- a/test/specs/browser-all.json +++ b/test/specs/browser-all.json @@ -1148,6 +1148,26 @@ "major" : "undefined" } }, + { + "desc" : "Sony WebMAF SDK (Playstation)", + "ua" : "Mozilla/5.0 (PlayStation 4 WebMAF) AppleWebKit/601.2 (KHTML, like Gecko) WebMAF/v3.1.0-0-ge5873ba4 SDK: (0x09508001u), Built: Nov 1 2022 14:36:14", + "expect" : + { + "name" : "WebMAF", + "version" : "v3.1.0-0-ge5873ba4", + "major" : "3" + } + }, + { + "desc" : "Sony WebMAF SDK (Playstation)", + "ua" : "Mozilla/5.0 (PlayStation 5; WebMAF/1.0.0) AppleWebKit/537.73 (KHTML, like Gecko)", + "expect" : + { + "name" : "WebMAF", + "version" : "1.0.0", + "major" : "1" + } + }, { "desc" : "Swiftfox", "ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061024 Firefox/2.0 (Swiftfox)", From be2f167f9074ea633d7df34cb952721ee68e0e63 Mon Sep 17 00:00:00 2001 From: Aiyush Date: Sat, 9 Nov 2024 08:50:45 +0530 Subject: [PATCH 4/4] Added support for honor separated from Huawei (#749) * Added support for honor separated from Huawei * Revert "Added support for honor separated from Huawei" This reverts commit 28bde1c0b4da2aa14082a8d036914761e00ca750. * Added changes wrt comments * Added another change --- src/enums/ua-parser-enums.js | 1 + src/main/ua-parser.js | 7 ++++++- test/specs/device-all.json | 6 +++--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/enums/ua-parser-enums.js b/src/enums/ua-parser-enums.js index 6d88e81..85820f9 100644 --- a/src/enums/ua-parser-enums.js +++ b/src/enums/ua-parser-enums.js @@ -52,6 +52,7 @@ const DeviceVendor = Object.freeze({ APPLE : 'Apple', SAMSUNG : 'Samsung', HUAWEI : 'Huawei', + HONOR : 'Honor', XIAOMI : 'Xiaomi', OPPO : 'OPPO', VIVO : 'Vivo', diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index c2b736d..5d4f80d 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -68,6 +68,7 @@ BLACKBERRY = 'BlackBerry', GOOGLE = 'Google', HUAWEI = 'Huawei', + HONOR = 'Honor', LG = 'LG', MICROSOFT = 'Microsoft', MOTOROLA = 'Motorola', @@ -467,10 +468,14 @@ /\b(sh-?[altvz]?\d\d[a-ekm]?)/i ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [ + // Honor + /(?:honor)([-\w ]+)[;\)]/i + ], [MODEL, [VENDOR, HONOR], [TYPE, MOBILE]], [ + // Huawei /\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [ - /(?:huawei|honor)([-\w ]+)[;\)]/i, + /(?:huawei)([-\w ]+)[;\)]/i, /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [ diff --git a/test/specs/device-all.json b/test/specs/device-all.json index b43969c..6f2dc51 100644 --- a/test/specs/device-all.json +++ b/test/specs/device-all.json @@ -632,7 +632,7 @@ "desc": "Huawei Honor 6A", "ua": "Mozilla/5.0 (Linux; Android 7.0; DLI-L22 Build/HONORDLI-L22; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.116 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/252.0.0.22.355;]", "expect": { - "vendor": "Huawei", + "vendor": "Honor", "model": "DLI-L22", "type": "mobile" } @@ -641,7 +641,7 @@ "desc": "Huawei Honor 7", "ua": "Mozilla/5.0 (Linux; Android 6.0; PLK-L01 Build/HONORPLK-L01; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.116 Mobile Safari/537.36", "expect": { - "vendor": "Huawei", + "vendor": "Honor", "model": "PLK-L01", "type": "mobile" } @@ -650,7 +650,7 @@ "desc": "Huawei 10 Lite", "ua": "Mozilla/5.0 (Linux; Android 9; HRY-LX1 Build/HONORHRY-LX1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.91 Mobile Safari/537.36", "expect": { - "vendor": "Huawei", + "vendor": "Honor", "model": "HRY-LX1", "type": "mobile" }