From 53467ca99f18dd151f0adaf5cbaa90d26d2dabfc Mon Sep 17 00:00:00 2001 From: Yoav Weiss Date: Fri, 13 Mar 2020 14:10:21 -0700 Subject: [PATCH] [UA-CH] Add userAgentData worker support This implements PR #80 [1] and exposes userAgentData in workers. [1] https://github.com/WICG/ua-client-hints/pull/80 Change-Id: I1de6067ab6c00855d7bf820e9646eb4e5a8c5fdb --- .../navigator_user_agent.https.html | 1 - .../WorkerNavigator_userAgentData.http.html | 18 ++++++++++++ .../WorkerNavigator_userAgentData.https.html | 29 +++++++++++++++++++ workers/support/WorkerNavigator.js | 26 ++++++++++++----- 4 files changed, 66 insertions(+), 8 deletions(-) create mode 100644 workers/WorkerNavigator_userAgentData.http.html create mode 100644 workers/WorkerNavigator_userAgentData.https.html diff --git a/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html b/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html index 0fb9e372b0dd6f..ae31726b791b0b 100644 --- a/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html +++ b/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html @@ -1,7 +1,6 @@ - + +
+ diff --git a/workers/WorkerNavigator_userAgentData.https.html b/workers/WorkerNavigator_userAgentData.https.html new file mode 100644 index 00000000000000..68420142b33462 --- /dev/null +++ b/workers/WorkerNavigator_userAgentData.https.html @@ -0,0 +1,29 @@ + + WorkerNavigator.userAgentData + + +
+ diff --git a/workers/support/WorkerNavigator.js b/workers/support/WorkerNavigator.js index 084e45b24585b9..0d825f9bbc480a 100644 --- a/workers/support/WorkerNavigator.js +++ b/workers/support/WorkerNavigator.js @@ -1,8 +1,20 @@ -var obj = new Object(); -obj.appName = navigator.appName; -obj.appVersion = navigator.appVersion; -obj.platform = navigator.platform; -obj.userAgent = navigator.userAgent; -obj.onLine = navigator.onLine; +(async () => { + var obj = new Object(); + obj.appName = navigator.appName; + obj.appVersion = navigator.appVersion; + obj.platform = navigator.platform; + obj.userAgent = navigator.userAgent; + obj.onLine = navigator.onLine; + if (navigator.userAgentData) { + obj.uaList = navigator.userAgentData.uaList; + obj.mobile = navigator.userAgentData.mobile; + const highEntropyValues = await navigator.userAgentData.getHighEntropyValues(["platform", "platformVersion", "architecture", "model", "uaFullVersion"]); -postMessage(obj); + obj.platform = highEntropyValues.platform; + obj.platformVersion = highEntropyValues.platformVersion; + obj.architecture = highEntropyValues.architecture; + obj.model = highEntropyValues.model; + obj.uaFullVersion = highEntropyValues.uaFullVersion; + } + postMessage(obj); +})();