mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-27 07:58:45 +03:00
Browser naming adjustments for Client Hints:
- `Google Chrome` => `Chrome` - `Microsoft Edge` => `Edge` - `Android WebView` => `Chrome WebView` - `HeadlessChrome` => `Chrome Headless`
This commit is contained in:
parent
fc851b40c5
commit
dbd24a579f
@ -1167,9 +1167,15 @@
|
||||
var brands = uaCH[FULLVERLIST] || uaCH[BRANDS], prevName;
|
||||
if (brands) {
|
||||
for (var i in brands) {
|
||||
var brandName = strip(/(Google|Microsoft) /, brands[i].brand || brands[i]),
|
||||
var brandName = brands[i].brand || brands[i],
|
||||
brandVersion = brands[i].version;
|
||||
if (this.itemType == UA_BROWSER && !/not.a.brand/i.test(brandName) && (!prevName || (/chrom/i.test(prevName) && brandName != CHROMIUM))) {
|
||||
brandName = strMapper(brandName, {
|
||||
'Chrome' : 'Google Chrome',
|
||||
'Edge' : 'Microsoft Edge',
|
||||
'Chrome WebView' : 'Android WebView',
|
||||
'Chrome Headless' : 'HeadlessChrome'
|
||||
});
|
||||
this.set(NAME, brandName)
|
||||
.set(VERSION, brandVersion)
|
||||
.set(MAJOR, majorize(brandVersion));
|
||||
|
37
test/unit/ua-ch.js
Normal file
37
test/unit/ua-ch.js
Normal file
@ -0,0 +1,37 @@
|
||||
const assert = require('assert');
|
||||
const { UAParser } = require('../../src/main/ua-parser');
|
||||
|
||||
describe('Browser naming adjustments', () => {
|
||||
|
||||
it('Google Chrome => Chrome', () => {
|
||||
const headers = {
|
||||
'sec-ch-ua' : '"Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"',
|
||||
};
|
||||
const { browser } = UAParser(headers).withClientHints();
|
||||
assert.strictEqual(browser.name, 'Chrome');
|
||||
});
|
||||
|
||||
it('Microsoft Edge => Edge', () => {
|
||||
const headers = {
|
||||
'sec-ch-ua' : '"Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"',
|
||||
};
|
||||
const { browser } = UAParser(headers).withClientHints();
|
||||
assert.strictEqual(browser.name, 'Edge');
|
||||
});
|
||||
|
||||
it('Android WebView => Chrome WebView', () => {
|
||||
const headers = {
|
||||
'sec-ch-ua' : '"Android WebView";v="123", "Not:A-Brand";v="8", "Chromium";v="123"',
|
||||
};
|
||||
const { browser } = UAParser(headers).withClientHints();
|
||||
assert.strictEqual(browser.name, 'Chrome WebView');
|
||||
});
|
||||
|
||||
it('HeadlessChrome => Chrome Headless', () => {
|
||||
const headers = {
|
||||
'sec-ch-ua' : '"Chromium";v="124", "HeadlessChrome";v="124", "Not-A.Brand";v="99"',
|
||||
};
|
||||
const { browser } = UAParser(headers).withClientHints();
|
||||
assert.strictEqual(browser.name, 'Chrome Headless');
|
||||
});
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user