mirror of
https://github.com/lancedikson/bowser
synced 2026-10-07 19:31:44 +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',
|
'Internet Explorer': 'ie',
|
||||||
InternetArchiveCrawler: 'internetarchivecrawler',
|
InternetArchiveCrawler: 'internetarchivecrawler',
|
||||||
'K-Meleon': 'k_meleon',
|
'K-Meleon': 'k_meleon',
|
||||||
|
Ladybird: 'ladybird',
|
||||||
LibreWolf: 'librewolf',
|
LibreWolf: 'librewolf',
|
||||||
Linespider: 'linespider',
|
Linespider: 'linespider',
|
||||||
Maxthon: 'maxthon',
|
Maxthon: 'maxthon',
|
||||||
@@ -103,6 +104,7 @@ export const BROWSER_MAP = {
|
|||||||
ie: 'Internet Explorer',
|
ie: 'Internet Explorer',
|
||||||
internetarchivecrawler: 'InternetArchiveCrawler',
|
internetarchivecrawler: 'InternetArchiveCrawler',
|
||||||
k_meleon: 'K-Meleon',
|
k_meleon: 'K-Meleon',
|
||||||
|
ladybird: 'Ladybird',
|
||||||
librewolf: 'LibreWolf',
|
librewolf: 'LibreWolf',
|
||||||
linespider: 'Linespider',
|
linespider: 'Linespider',
|
||||||
maxthon: 'Maxthon',
|
maxthon: 'Maxthon',
|
||||||
@@ -175,6 +177,7 @@ export const ENGINE_MAP = {
|
|||||||
Blink: 'Blink',
|
Blink: 'Blink',
|
||||||
EdgeHTML: 'EdgeHTML',
|
EdgeHTML: 'EdgeHTML',
|
||||||
Gecko: 'Gecko',
|
Gecko: 'Gecko',
|
||||||
|
LibWeb: 'LibWeb',
|
||||||
Presto: 'Presto',
|
Presto: 'Presto',
|
||||||
Trident: 'Trident',
|
Trident: 'Trident',
|
||||||
WebKit: 'WebKit',
|
WebKit: 'WebKit',
|
||||||
|
|||||||
@@ -1122,6 +1122,22 @@ const browsersList = [
|
|||||||
return browser;
|
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],
|
test: [/chrome|crios|crmo/i],
|
||||||
describe(ua) {
|
describe(ua) {
|
||||||
|
|||||||
@@ -30,6 +30,18 @@ export default [
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/* LibWeb */
|
||||||
|
{
|
||||||
|
test(parser) {
|
||||||
|
return parser.getBrowserName(true) === 'ladybird';
|
||||||
|
},
|
||||||
|
describe() {
|
||||||
|
return {
|
||||||
|
name: ENGINE_MAP.LibWeb,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
/* Trident */
|
/* Trident */
|
||||||
{
|
{
|
||||||
test: [/trident/i],
|
test: [/trident/i],
|
||||||
|
|||||||
@@ -68,7 +68,8 @@ class Parser {
|
|||||||
* like `"iPhone"` or `"Kindle Fire HD 7"`
|
* like `"iPhone"` or `"Kindle Fire HD 7"`
|
||||||
* @property {Object} engine
|
* @property {Object} engine
|
||||||
* @property {String|undefined} [engine.name]
|
* @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
|
* @property {String|undefined} [engine.version] String version of the engine
|
||||||
*/
|
*/
|
||||||
this.parsedResult = {};
|
this.parsedResult = {};
|
||||||
|
|||||||
@@ -3478,6 +3478,22 @@
|
|||||||
engine:
|
engine:
|
||||||
name: "WebKit"
|
name: "WebKit"
|
||||||
version: "537.42"
|
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:
|
SlimerJS:
|
||||||
-
|
-
|
||||||
ua: "Mozilla/5.0 (X11; Linux x86_64; rv:21.0) Gecko/20100101 SlimerJS/0.7"
|
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');
|
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) => {
|
test('Skip parsing shouldn\'t parse', (t) => {
|
||||||
t.deepEqual((new Parser(UA, true)).getResult(), {});
|
t.deepEqual((new Parser(UA, true)).getResult(), {});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user