mirror of
https://github.com/lancedikson/bowser
synced 2026-02-10 01:50:10 +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',
|
BaiduSpider: 'baiduspider',
|
||||||
Bada: 'bada',
|
Bada: 'bada',
|
||||||
BingCrawler: 'bingcrawler',
|
BingCrawler: 'bingcrawler',
|
||||||
|
Brave: 'brave',
|
||||||
BlackBerry: 'blackberry',
|
BlackBerry: 'blackberry',
|
||||||
'ChatGPT-User': 'chatgpt_user',
|
'ChatGPT-User': 'chatgpt_user',
|
||||||
Chrome: 'chrome',
|
Chrome: 'chrome',
|
||||||
@ -78,6 +79,7 @@ export const BROWSER_MAP = {
|
|||||||
bada: 'Bada',
|
bada: 'Bada',
|
||||||
bingcrawler: 'BingCrawler',
|
bingcrawler: 'BingCrawler',
|
||||||
blackberry: 'BlackBerry',
|
blackberry: 'BlackBerry',
|
||||||
|
brave: 'Brave',
|
||||||
chatgpt_user: 'ChatGPT-User',
|
chatgpt_user: 'ChatGPT-User',
|
||||||
chrome: 'Chrome',
|
chrome: 'Chrome',
|
||||||
claudebot: 'ClaudeBot',
|
claudebot: 'ClaudeBot',
|
||||||
|
|||||||
@ -1037,6 +1037,28 @@ const browsersList = [
|
|||||||
return browser;
|
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],
|
test: [/chromium/i],
|
||||||
describe(ua) {
|
describe(ua) {
|
||||||
|
|||||||
@ -383,3 +383,33 @@ test('Parser with Edge client hints', (t) => {
|
|||||||
t.true(p.hasBrand('Chromium'));
|
t.true(p.hasBrand('Chromium'));
|
||||||
t.is(p.getBrandVersion('Microsoft Edge'), '131');
|
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