From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../broadcastchannel/resources/worker.js | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 testing/web-platform/tests/webmessaging/broadcastchannel/resources/worker.js (limited to 'testing/web-platform/tests/webmessaging/broadcastchannel/resources/worker.js') diff --git a/testing/web-platform/tests/webmessaging/broadcastchannel/resources/worker.js b/testing/web-platform/tests/webmessaging/broadcastchannel/resources/worker.js new file mode 100644 index 0000000000..ee2d51a254 --- /dev/null +++ b/testing/web-platform/tests/webmessaging/broadcastchannel/resources/worker.js @@ -0,0 +1,37 @@ +importScripts("/common/gc.js"); + +var c; + +async function handler(e, reply) { + if (e.data.ping) { + c.postMessage(e.data.ping); + return; + } + if (e.data.blob) { + (() => { + c.postMessage({blob: new Blob(e.data.blob)}); + })(); + await garbageCollect(); + } + c = new BroadcastChannel(e.data.channel); + let messages = []; + c.onmessage = e => { + if (e.data === 'ready') { + // Ignore any 'ready' messages from the other thread since there could + // be some race conditions between this BroadcastChannel instance + // being created / ready to receive messages and the message being sent. + return; + } + messages.push(e.data); + if (e.data == 'done') + reply(messages); + }; + c.postMessage('from worker'); +} + +onmessage = e => handler(e, postMessage); + +onconnect = e => { + let port = e.ports[0]; + port.onmessage = e => handler(e, msg => port.postMessage(msg)); +}; -- cgit v1.2.3