mirror of
https://github.com/lancedikson/bowser
synced 2026-09-22 12:05:23 +00:00
feat: add Ladybird browser support (#627)
This commit is contained in:
committed by
GitHub
parent
92b5639733
commit
a37b8be8a7
@@ -29,6 +29,7 @@ export const BROWSER_ALIASES_MAP = {
|
||||
'Internet Explorer': 'ie',
|
||||
InternetArchiveCrawler: 'internetarchivecrawler',
|
||||
'K-Meleon': 'k_meleon',
|
||||
Ladybird: 'ladybird',
|
||||
LibreWolf: 'librewolf',
|
||||
Linespider: 'linespider',
|
||||
Maxthon: 'maxthon',
|
||||
@@ -103,6 +104,7 @@ export const BROWSER_MAP = {
|
||||
ie: 'Internet Explorer',
|
||||
internetarchivecrawler: 'InternetArchiveCrawler',
|
||||
k_meleon: 'K-Meleon',
|
||||
ladybird: 'Ladybird',
|
||||
librewolf: 'LibreWolf',
|
||||
linespider: 'Linespider',
|
||||
maxthon: 'Maxthon',
|
||||
@@ -175,6 +177,7 @@ export const ENGINE_MAP = {
|
||||
Blink: 'Blink',
|
||||
EdgeHTML: 'EdgeHTML',
|
||||
Gecko: 'Gecko',
|
||||
LibWeb: 'LibWeb',
|
||||
Presto: 'Presto',
|
||||
Trident: 'Trident',
|
||||
WebKit: 'WebKit',
|
||||
|
||||
@@ -1122,6 +1122,22 @@ const browsersList = [
|
||||
return browser;
|
||||
},
|
||||
},
|
||||
/* Ladybird */
|
||||
{
|
||||
test: [/ladybird/i],
|
||||
describe(ua) {
|
||||
const browser = {
|
||||
name: 'Ladybird',
|
||||
};
|
||||
const version = Utils.getFirstMatch(/ladybird\/(\d+(\.?_?\d+)+)/i, ua);
|
||||
|
||||
if (version) {
|
||||
browser.version = version;
|
||||
}
|
||||
|
||||
return browser;
|
||||
},
|
||||
},
|
||||
{
|
||||
test: [/chrome|crios|crmo/i],
|
||||
describe(ua) {
|
||||
|
||||
@@ -30,6 +30,18 @@ export default [
|
||||
},
|
||||
},
|
||||
|
||||
/* LibWeb */
|
||||
{
|
||||
test(parser) {
|
||||
return parser.getBrowserName(true) === 'ladybird';
|
||||
},
|
||||
describe() {
|
||||
return {
|
||||
name: ENGINE_MAP.LibWeb,
|
||||
};
|
||||
},
|
||||
},
|
||||
|
||||
/* Trident */
|
||||
{
|
||||
test: [/trident/i],
|
||||
|
||||
@@ -68,7 +68,8 @@ class Parser {
|
||||
* like `"iPhone"` or `"Kindle Fire HD 7"`
|
||||
* @property {Object} engine
|
||||
* @property {String|undefined} [engine.name]
|
||||
* Can be any of this: `WebKit`, `Blink`, `Gecko`, `Trident`, `Presto`, `EdgeHTML`
|
||||
* Can be any of this: `WebKit`, `Blink`, `Gecko`, `Trident`, `Presto`, `EdgeHTML`,
|
||||
* `LibWeb`
|
||||
* @property {String|undefined} [engine.version] String version of the engine
|
||||
*/
|
||||
this.parsedResult = {};
|
||||
|
||||
@@ -3478,6 +3478,22 @@
|
||||
engine:
|
||||
name: "WebKit"
|
||||
version: "537.42"
|
||||
Ladybird:
|
||||
-
|
||||
ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Ladybird/1.0 Chrome/146.0.0.0 AppleWebKit/537.36 Safari/537.36"
|
||||
spec:
|
||||
browser:
|
||||
name: "Ladybird"
|
||||
version: "1.0"
|
||||
os:
|
||||
name: "macOS"
|
||||
version: "10.15.7"
|
||||
versionName: "Catalina"
|
||||
platform:
|
||||
type: "desktop"
|
||||
vendor: "Apple"
|
||||
engine:
|
||||
name: "LibWeb"
|
||||
SlimerJS:
|
||||
-
|
||||
ua: "Mozilla/5.0 (X11; Linux x86_64; rv:21.0) Gecko/20100101 SlimerJS/0.7"
|
||||
|
||||
@@ -75,6 +75,14 @@ test('Parser.getEngineName gives a lower-cased name of the engine', (t) => {
|
||||
t.is(parser.getEngineName(true), 'blink');
|
||||
});
|
||||
|
||||
test('Parser prioritizes browser-specific engines over generic UA tokens', (t) => {
|
||||
const ladybirdUA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Ladybird/1.0 Gecko/20100101 Chrome/146.0.0.0 AppleWebKit/537.36 Safari/537.36';
|
||||
const ladybirdParser = new Parser(ladybirdUA);
|
||||
|
||||
t.is(ladybirdParser.getBrowserName(), 'Ladybird');
|
||||
t.is(ladybirdParser.getEngineName(), 'LibWeb');
|
||||
});
|
||||
|
||||
test('Skip parsing shouldn\'t parse', (t) => {
|
||||
t.deepEqual((new Parser(UA, true)).getResult(), {});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user