From 2c0a380266eb0fb12b167d356249892b675627f5 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 --- src/ua-parser.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ua-parser.js b/src/ua-parser.js index 18ac0f6f..9b8d7493 100755 --- a/src/ua-parser.js +++ b/src/ua-parser.js @@ -860,8 +860,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 _hasNavigator = typeof window !== UNDEF_TYPE && window.navigator; + var _ua = ua || ((_hasNavigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY); + var _uach = (_hasNavigator && window.navigator.userAgentData) ? window.navigator.userAgentData : undefined; var _rgxmap = extensions ? extend(regexes, extensions) : regexes; // public methods @@ -869,6 +870,10 @@ var _browser = new UABrowser(); rgxMapper.call(_browser, _ua, _rgxmap.browser); _browser[MAJOR] = majorize(_browser[VERSION]); + // Brave-specific detection + if (_hasNavigator && window.navigator.brave && typeof window.navigator.brave.isBrave == FUNC_TYPE) { + _browser[NAME] = 'Brave'; + } return _browser; }; this.getCPU = function () {