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;
|
var brands = uaCH[FULLVERLIST] || uaCH[BRANDS], prevName;
|
||||||
if (brands) {
|
if (brands) {
|
||||||
for (var i in 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;
|
brandVersion = brands[i].version;
|
||||||
if (this.itemType == UA_BROWSER && !/not.a.brand/i.test(brandName) && (!prevName || (/chrom/i.test(prevName) && brandName != CHROMIUM))) {
|
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)
|
this.set(NAME, brandName)
|
||||||
.set(VERSION, brandVersion)
|
.set(VERSION, brandVersion)
|
||||||
.set(MAJOR, majorize(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