From fe15f115f9c5b811e72836cb68a8497004976d64 Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Tue, 22 Oct 2024 21:36:46 +0700 Subject: [PATCH] Fix #754: Add new Engine: ArkWeb & new OS: OpenHarmony --- src/enums/ua-parser-enums.js | 2 ++ src/main/ua-parser.js | 7 +++++-- test/specs/engine-all.json | 9 +++++++++ test/specs/os-all.json | 9 +++++++++ 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/enums/ua-parser-enums.js b/src/enums/ua-parser-enums.js index 9f58b6158..e80a0d57a 100644 --- a/src/enums/ua-parser-enums.js +++ b/src/enums/ua-parser-enums.js @@ -255,6 +255,7 @@ const Vendor = Object.freeze({ const Engine = Object.freeze({ AMAYA: 'Amaya', + ARKWEB: 'ArkWeb', BLINK: 'Blink', EDGEHTML: 'EdgeHTML', FLOW: 'Flow', @@ -321,6 +322,7 @@ const OS = Object.freeze({ NETRANGE: 'NetRange', NETTV: 'NetTV', NINTENDO: 'Nintendo', + OPENHARMONY: 'OpenHarmony', OPENBSD: 'OpenBSD', OPENVMS: 'OpenVMS', OS2: 'OS/2', diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index 59ac6553d..0eb24efd1 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -794,6 +794,9 @@ /windows.+ edge\/([\w\.]+)/i // EdgeHTML ], [VERSION, [NAME, EDGE+'HTML']], [ + /(arkweb)\/([\w\.]+)/i // ArkWeb + ], [NAME, VERSION], [ + /webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i // Blink ], [VERSION, [NAME, 'Blink']], [ @@ -844,8 +847,8 @@ // Mobile OSes /droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS - ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS - /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i, + ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS/OpenHarmony + /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish|openharmony)[-\/ ]?([\w\.]*)/i, /(blackberry)\w*\/([\w\.]*)/i, // Blackberry /(tizen|kaios)[\/ ]([\w\.]+)/i, // Tizen/KaiOS /\((series40);/i // Series 40 diff --git a/test/specs/engine-all.json b/test/specs/engine-all.json index e75e539cc..67fdd3381 100644 --- a/test/specs/engine-all.json +++ b/test/specs/engine-all.json @@ -1,4 +1,13 @@ [ + { + "desc" : "ArkWeb", + "ua" : "Mozilla/5.0 (Phone; OpenHarmony 4.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 ArkWeb/4.1.6.1 Mobile", + "expect" : + { + "name" : "ArkWeb", + "version" : "4.1.6.1" + } + }, { "desc" : "Blink", "ua" : "Mozilla/5.0 (Linux; Android 7.0; SM-G920I Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/3.4.9 SamsungBrowser/4.0 Chrome/57.0.2987.146 Mobile VR Safari/537.36", diff --git a/test/specs/os-all.json b/test/specs/os-all.json index 6fc03ecdd..b93dc33bd 100644 --- a/test/specs/os-all.json +++ b/test/specs/os-all.json @@ -1309,5 +1309,14 @@ "name" : "SerenityOS", "version" : "undefined" } + }, + { + "desc" : "OpenHarmony", + "ua" : "Mozilla/5.0 (Phone; OpenHarmony 4.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 ArkWeb/4.1.6.1 Mobile", + "expect" : + { + "name" : "OpenHarmony", + "version" : "4.1" + } } ]