From 73c25771dcd152d415bedb5c0569bc06f6ff65f2 Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Wed, 22 Feb 2023 20:52:27 +0700 Subject: [PATCH] Fix #498 - Detect Brave Browser by checking navigator.brave https://github.com/brave/brave-browser/issues/10165#issuecomment-641128278 (cherry picked from commit 03b0a5afa60d472dfff160185c493cb94f1e0298) --- src/ua-parser.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/ua-parser.js b/src/ua-parser.js index ac7cbd3c..d2c3da29 100755 --- a/src/ua-parser.js +++ b/src/ua-parser.js @@ -786,8 +786,9 @@ return new UAParser(ua, extensions).getResult(); } - var _ua = ua || ((typeof window !== UNDEF_TYPE && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY); - var _uach = (typeof window !== UNDEF_TYPE && window.navigator && window.navigator.userAgentData) ? window.navigator.userAgentData : undefined; + var _navigator = (typeof window !== UNDEF_TYPE && window.navigator) ? window.navigator : undefined; + var _ua = ua || ((_navigator && _navigator.userAgent) ? _navigator.userAgent : EMPTY); + var _uach = (_navigator && _navigator.userAgentData) ? _navigator.userAgentData : undefined; var _rgxmap = extensions ? extend(regexes, extensions) : regexes; this.getBrowser = function () { @@ -795,7 +796,11 @@ _browser[NAME] = undefined; _browser[VERSION] = undefined; rgxMapper.call(_browser, _ua, _rgxmap.browser); - _browser.major = majorize(_browser.version); + _browser[MAJOR] = majorize(_browser[VERSION]); + // Brave-specific detection + if (_navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) { + _browser[NAME] = 'Brave'; + } return _browser; }; this.getCPU = function () {