From 7a754ef227cbee03d1da1fd1e518a10978cbc27a Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Sat, 2 Nov 2024 12:27:42 +0700 Subject: [PATCH] Update browser.type="inapp" for InApp browsers --- src/main/ua-parser.js | 19 ++++++---- test/mocha-test.js | 2 +- test/specs/browser-all.json | 69 ++++++++++++++++++++++++------------- 3 files changed, 59 insertions(+), 31 deletions(-) diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index 07d5908..8290e5c 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -40,6 +40,7 @@ WEARABLE = 'wearable', XR = 'xr', EMBEDDED = 'embedded', + INAPP = 'inapp', USER_AGENT = 'user-agent', UA_MAX_LENGTH = 500, BRANDS = 'brands', @@ -385,13 +386,12 @@ /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, // Tesla /m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i // QQBrowser/2345 Browser ], [NAME, VERSION], [ - /(lbbrowser|rekonq)/i, // LieBao Browser/Rekonq - /\[(linkedin)app\]/i // LinkedIn App for iOS & Android + /(lbbrowser|rekonq)/i // LieBao Browser/Rekonq ], [NAME], [ // WebView /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i // Facebook App for iOS & Android - ], [[NAME, FACEBOOK], VERSION], [ + ], [[NAME, FACEBOOK], VERSION, [TYPE, INAPP]], [ /(Klarna)\/([\w\.]+)/i, // Klarna Shopping Browser for iOS & Android /(kakao(?:talk|story))[\/ ]([\w\.]+)/i, // Kakao App /(naver)\(.*?(\d+\.[\w\.]+).*\)/i, // Naver InApp @@ -399,12 +399,17 @@ /\b(line)\/([\w\.]+)\/iab/i, // Line App for Android /(alipay)client\/([\w\.]+)/i, // Alipay /(twitter)(?:and| f.+e\/([\w\.]+))/i, // Twitter - /(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i // Chromium/Instagram/Snapchat - ], [NAME, VERSION], [ + /(instagram|snapchat)[\/ ]([-\w\.]+)/i // Instagram/Snapchat + ], [NAME, VERSION, [TYPE, INAPP]], [ /\bgsa\/([\w\.]+) .*safari\//i // Google Search Appliance on iOS - ], [VERSION, [NAME, 'GSA']], [ + ], [VERSION, [NAME, 'GSA'], [TYPE, INAPP]], [ /musical_ly(?:.+app_?version\/|_)([\w\.]+)/i // TikTok - ], [VERSION, [NAME, 'TikTok']], [ + ], [VERSION, [NAME, 'TikTok'], [TYPE, INAPP]], [ + /\[(linkedin)app\]/i // LinkedIn App for iOS & Android + ], [NAME, [TYPE, INAPP]], [ + + /(chromium)[\/ ]([-\w\.]+)/i // Chromium + ], [NAME, VERSION], [ /headlesschrome(?:\/([\w\.]+)| )/i // Chrome Headless ], [VERSION, [NAME, CHROME+' Headless']], [ diff --git a/test/mocha-test.js b/test/mocha-test.js index 7b5e711..68213ac 100644 --- a/test/mocha-test.js +++ b/test/mocha-test.js @@ -17,7 +17,7 @@ var methods = [ title : 'getBrowser', label : 'browser', list : browsers, - properties : ['name', 'major', 'version'] + properties : ['name', 'major', 'version', 'type'] }, { title : 'getCPU', diff --git a/test/specs/browser-all.json b/test/specs/browser-all.json index d8638b0..a69e848 100644 --- a/test/specs/browser-all.json +++ b/test/specs/browser-all.json @@ -16,7 +16,8 @@ { "name" : "Alipay", "version" : "10.2.51.7100", - "major" : "10" + "major" : "10", + "type" : "inapp" } }, { @@ -26,7 +27,8 @@ { "name" : "Alipay", "version" : "10.3.50.9999", - "major" : "10" + "major" : "10", + "type" : "inapp" } }, { @@ -536,7 +538,8 @@ { "name" : "Facebook", "version" : "35.0.0.48.273", - "major" : "35" + "major" : "35", + "type" : "inapp" } }, { @@ -546,7 +549,8 @@ { "name" : "Facebook", "version" : "91.0.0.41.73", - "major" : "91" + "major" : "91", + "type" : "inapp" } }, { @@ -556,7 +560,8 @@ { "name" : "Facebook", "version" : "undefined", - "major" : "undefined" + "major" : "undefined", + "type" : "inapp" } }, { @@ -566,7 +571,8 @@ { "name" : "Klarna", "version" : "23.36.223", - "major" : "23" + "major" : "23", + "type" : "inapp" } }, { @@ -576,7 +582,8 @@ { "name" : "Klarna", "version" : "23.36.215", - "major" : "23" + "major" : "23", + "type" : "inapp" } }, { @@ -586,7 +593,8 @@ { "name" : "Instagram", "version" : "142.0.0.22.109", - "major" : "142" + "major" : "142", + "type" : "inapp" } }, { @@ -975,7 +983,8 @@ { "name" : "Line", "version" : "6.5.1", - "major" : "6" + "major" : "6", + "type" : "inapp" } }, { @@ -985,7 +994,8 @@ { "name" : "Line", "version" : "8.4.1", - "major" : "8" + "major" : "8", + "type" : "inapp" } }, { @@ -2056,7 +2066,8 @@ { "name" : "GSA", "version" : "30.1.161623614", - "major" : "30" + "major" : "30", + "type" : "inapp" } }, { @@ -2152,7 +2163,8 @@ "ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [LinkedInApp]", "expect" : { - "name" : "LinkedIn" + "name" : "LinkedIn", + "type" : "inapp" } }, { @@ -2257,7 +2269,8 @@ "expect" : { "name" : "KAKAOTALK", "version": "2409760", - "major" : "2409760" + "major" : "2409760", + "type" : "inapp" } }, { @@ -2266,7 +2279,8 @@ "expect" : { "name" : "KAKAOSTORY", "version": "6.8.3_21046", - "major" : "6" + "major" : "6", + "type" : "inapp" } }, { @@ -2275,7 +2289,8 @@ "expect" : { "name" : "KAKAOTALK", "version": "9.7.6", - "major" : "9" + "major" : "9", + "type" : "inapp" } }, { @@ -2284,7 +2299,8 @@ "expect" : { "name" : "NAVER", "version": "11.11.2", - "major" : "11" + "major" : "11", + "type" : "inapp" } }, { @@ -2293,7 +2309,8 @@ "expect" : { "name" : "NAVER", "version": "10.25.0", - "major" : "10" + "major" : "10", + "type" : "inapp" } }, { @@ -2302,7 +2319,8 @@ "expect" : { "name" : "TikTok", "version": "21.9.4", - "major" : "21" + "major" : "21", + "type" : "inapp" } }, { @@ -2311,7 +2329,8 @@ "expect" : { "name" : "TikTok", "version": "21.1.0", - "major" : "21" + "major" : "21", + "type" : "inapp" } }, { @@ -2320,7 +2339,8 @@ "expect" : { "name" : "TikTok", "version": "28.3.4", - "major" : "28" + "major" : "28", + "type" : "inapp" } }, { @@ -2360,7 +2380,8 @@ { "name" : "Snapchat", "version" : "12.33.0.36", - "major" : "12" + "major" : "12", + "type" : "inapp" } }, { @@ -2370,7 +2391,8 @@ { "name" : "Twitter", "version" : "undefined", - "major" : "undefined" + "major" : "undefined", + "type" : "inapp" } }, { @@ -2380,7 +2402,8 @@ { "name" : "Twitter", "version" : "10.34", - "major" : "10" + "major" : "10", + "type" : "inapp" } } ] \ No newline at end of file