From a260c9ef9dfeb7044e6618d3acdd9d7db3d8d9a5 Mon Sep 17 00:00:00 2001 From: Cris Barreiro Date: Thu, 30 Oct 2025 10:27:00 +0100 Subject: [PATCH 1/3] Add base script for de-risking new WebViewCompat APIs --- .../main/res/raw/webviewcompat_test_script.js | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 app/src/main/res/raw/webviewcompat_test_script.js diff --git a/app/src/main/res/raw/webviewcompat_test_script.js b/app/src/main/res/raw/webviewcompat_test_script.js new file mode 100644 index 000000000000..a12fee70645f --- /dev/null +++ b/app/src/main/res/raw/webviewcompat_test_script.js @@ -0,0 +1,29 @@ +let supportedMessages = ["ContextMenuOpened", "PageStarted"]; + +const delay = $DELAY$; +const postInitialPing = $POST_INITIAL_PING$; +const replyToNativeMessages = $REPLY_TO_NATIVE_MESSAGES$; + + const pingMessage = 'Ping:' + window.location.href + ' ' + delay + 'ms' + + +if (postInitialPing) { + setTimeout(() => { + webViewCompatTestObj.postMessage(pingMessage) + }, delay) +} + + +webViewCompatTestObj.onmessage = function(event) { + console.log("webViewCompatTestObj received", event.data) + if (replyToNativeMessages && supportedMessages.includes(event.data)) { + webViewCompatTestObj.postMessage(event.data + " from webViewCompatTestObj") + } +} + +window.onmessage = function(event) { + console.log("window received", event.data) + if (replyToNativeMessages && supportedMessages.includes(event.data)) { + webViewCompatTestObj.postMessage(event.data + " from window") + } +} From 89236789fc8ceba32b581c7dbe1b7dc61c249664 Mon Sep 17 00:00:00 2001 From: Cris Barreiro Date: Thu, 30 Oct 2025 15:47:30 +0100 Subject: [PATCH 2/3] Don't re-define pingMessage --- app/src/main/res/raw/webviewcompat_test_script.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/raw/webviewcompat_test_script.js b/app/src/main/res/raw/webviewcompat_test_script.js index a12fee70645f..756a06aece3d 100644 --- a/app/src/main/res/raw/webviewcompat_test_script.js +++ b/app/src/main/res/raw/webviewcompat_test_script.js @@ -1,15 +1,15 @@ -let supportedMessages = ["ContextMenuOpened", "PageStarted"]; +const supportedMessages = ["ContextMenuOpened", "PageStarted"]; const delay = $DELAY$; const postInitialPing = $POST_INITIAL_PING$; const replyToNativeMessages = $REPLY_TO_NATIVE_MESSAGES$; - const pingMessage = 'Ping:' + window.location.href + ' ' + delay + 'ms' +const webViewCompatPingMessage = 'Ping:' + window.location.href + ' ' + delay + 'ms' if (postInitialPing) { setTimeout(() => { - webViewCompatTestObj.postMessage(pingMessage) + webViewCompatTestObj.postMessage(webViewCompatPingMessage) }, delay) } From 31f03cfbcecc888b45aba49f2c9e92b57c310da2 Mon Sep 17 00:00:00 2001 From: Cris Barreiro Date: Mon, 3 Nov 2025 12:27:25 +0100 Subject: [PATCH 3/3] Only add timeout if delay > 0 --- app/src/main/res/raw/webviewcompat_test_script.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/raw/webviewcompat_test_script.js b/app/src/main/res/raw/webviewcompat_test_script.js index 756a06aece3d..1537501473c2 100644 --- a/app/src/main/res/raw/webviewcompat_test_script.js +++ b/app/src/main/res/raw/webviewcompat_test_script.js @@ -8,9 +8,13 @@ const webViewCompatPingMessage = 'Ping:' + window.location.href + ' ' + delay + if (postInitialPing) { - setTimeout(() => { + if (delay > 0) { + setTimeout(() => { + webViewCompatTestObj.postMessage(webViewCompatPingMessage) + }, delay) + } else { webViewCompatTestObj.postMessage(webViewCompatPingMessage) - }, delay) + } }