Skip to content

Commit 8a05328

Browse files
committed
[extensions] Improve inapp browser detection: Slack, Yahoo! Japan
1 parent baeac63 commit 8a05328

File tree

3 files changed

+39
-3
lines changed

3 files changed

+39
-3
lines changed

src/extensions/ua-parser-extensions.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -253,10 +253,12 @@ const Fetchers = Object.freeze({
253253
const InApps = Object.freeze({
254254
browser : [
255255
// Slack
256-
[/chatlyio\/([\d\.]+)/i], [VERSION, 'Slack', [TYPE, INAPP]],
256+
[/(?:slack(?=.+electron|.+ios)|chatlyio)\/([\d\.]+)/i],
257+
[VERSION, [NAME, 'Slack'], [TYPE, INAPP]],
257258

258259
// Yahoo! Japan
259-
[/jp\.co\.yahoo\.android\.yjtop\/([\d\.]+)/i], [VERSION, 'Yahoo! Japan', [TYPE, INAPP]]
260+
[/jp\.co\.yahoo\.(?:android\.yjtop|ipn\.appli)\/([\d\.]+)/i],
261+
[VERSION, [NAME, 'Yahoo! Japan'], [TYPE, INAPP]]
260262
]
261263
});
262264

test/data/ua/extension/inapp.json

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
[
2+
{
3+
"desc" : "Slack on mac",
4+
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Slack/4.39.90 Chrome/127.0.6533.72 Electron/13.1.9 Safari/537.36",
5+
"expect" :
6+
{
7+
"name" : "Slack",
8+
"version" : "4.39.90",
9+
"type" : "inapp"
10+
}
11+
},
12+
{
13+
"desc" : "Yahoo! Japan on Android",
14+
"ua" : "Mozilla/5.0 (Linux; Android 13; SH-M20 Build/TKQ1.220915.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/132.0.6834.163 Mobile Safari/537.36 YJApp-ANDROID jp.co.yahoo.android.yjtop/3.187.0",
15+
"expect" :
16+
{
17+
"name" : "Yahoo! Japan",
18+
"version" : "3.187.0",
19+
"type" : "inapp"
20+
}
21+
},
22+
{
23+
"desc" : "Yahoo! Japan on iOS",
24+
"ua" : "Mozilla/5.0 (iPad; CPU OS 18_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 YJApp-IOS jp.co.yahoo.ipn.appli/4.131.0",
25+
"expect" :
26+
{
27+
"name" : "Yahoo! Japan",
28+
"version" : "4.131.0",
29+
"type" : "inapp"
30+
}
31+
}
32+
]

test/unit/extensions.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,17 @@ const clis = require('../data/ua/extension/cli.json');
88
const crawlers = require('../data/ua/extension/crawler.json');
99
const emails = require('../data/ua/extension/email.json');
1010
const fetchers = require('../data/ua/extension/fetcher.json');
11+
const inapps = require('../data/ua/extension/inapp.json');
1112
const libraries = require('../data/ua/extension/library.json');
12-
const { Bots, CLIs, Crawlers, Emails, Fetchers, Libraries } = require('../../src/extensions/ua-parser-extensions');
13+
const { Bots, CLIs, Crawlers, Emails, Fetchers, InApps, Libraries } = require('../../src/extensions/ua-parser-extensions');
1314

1415
describe('Extensions', () => {
1516
[
1617
['CLIs', clis, CLIs],
1718
['Crawlers', crawlers, Crawlers],
1819
['Emails', emails, Emails],
1920
['Fetchers', fetchers, Fetchers],
21+
['InApps', inapps, InApps],
2022
['Libraries', libraries, Libraries]
2123
]
2224
.forEach((list) => {

0 commit comments

Comments
 (0)