mirror of
https://github.com/lancedikson/bowser
synced 2026-02-09 17:40:09 +00:00
feat: add Brave browser support via clientHints (#597)
This commit is contained in:
parent
fa08e7c6f3
commit
227f5ecd4b
@ -7,6 +7,7 @@ export const BROWSER_ALIASES_MAP = {
|
||||
BaiduSpider: 'baiduspider',
|
||||
Bada: 'bada',
|
||||
BingCrawler: 'bingcrawler',
|
||||
Brave: 'brave',
|
||||
BlackBerry: 'blackberry',
|
||||
'ChatGPT-User': 'chatgpt_user',
|
||||
Chrome: 'chrome',
|
||||
@ -78,6 +79,7 @@ export const BROWSER_MAP = {
|
||||
bada: 'Bada',
|
||||
bingcrawler: 'BingCrawler',
|
||||
blackberry: 'BlackBerry',
|
||||
brave: 'Brave',
|
||||
chatgpt_user: 'ChatGPT-User',
|
||||
chrome: 'Chrome',
|
||||
claudebot: 'ClaudeBot',
|
||||
|
||||
@ -1037,6 +1037,28 @@ const browsersList = [
|
||||
return browser;
|
||||
},
|
||||
},
|
||||
/* Brave Browser */
|
||||
{
|
||||
test(parser) {
|
||||
// Check Client Hints brands for Brave
|
||||
return parser.hasBrand('Brave');
|
||||
},
|
||||
describe(ua, parser) {
|
||||
const browser = {
|
||||
name: 'Brave',
|
||||
};
|
||||
|
||||
if (parser) {
|
||||
const hintsVersion = parser.getBrandVersion('Brave');
|
||||
if (hintsVersion) {
|
||||
browser.version = hintsVersion;
|
||||
return browser;
|
||||
}
|
||||
}
|
||||
|
||||
return browser;
|
||||
},
|
||||
},
|
||||
{
|
||||
test: [/chromium/i],
|
||||
describe(ua) {
|
||||
|
||||
@ -383,3 +383,33 @@ test('Parser with Edge client hints', (t) => {
|
||||
t.true(p.hasBrand('Chromium'));
|
||||
t.is(p.getBrandVersion('Microsoft Edge'), '131');
|
||||
});
|
||||
|
||||
const BRAVE_HINTS = {
|
||||
brands: [
|
||||
{ brand: 'Brave', version: '144' },
|
||||
{ brand: 'Chromium', version: '131' },
|
||||
{ brand: 'Not_A Brand', version: '24' },
|
||||
],
|
||||
mobile: false,
|
||||
platform: 'Windows',
|
||||
platformVersion: '15.0.0',
|
||||
};
|
||||
|
||||
const BRAVE_UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36';
|
||||
|
||||
test('Parser detects Brave from client hints brands', (t) => {
|
||||
const p = new Parser(BRAVE_UA, false, BRAVE_HINTS);
|
||||
t.is(p.getBrowserName(), 'Brave');
|
||||
t.is(p.getBrowserVersion(), '144');
|
||||
});
|
||||
|
||||
test('Parser.hasBrand detects Brave', (t) => {
|
||||
const p = new Parser(BRAVE_UA, false, BRAVE_HINTS);
|
||||
t.true(p.hasBrand('Brave'));
|
||||
t.true(p.hasBrand('brave'));
|
||||
});
|
||||
|
||||
test('Parser.getBrandVersion returns version for Brave', (t) => {
|
||||
const p = new Parser(BRAVE_UA, false, BRAVE_HINTS);
|
||||
t.is(p.getBrandVersion('Brave'), '144');
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user