diff options
Diffstat (limited to 'testing/web-platform/tests/wasm/serialization/module/broadcastchannel-success-and-failure.html')
-rw-r--r-- | testing/web-platform/tests/wasm/serialization/module/broadcastchannel-success-and-failure.html | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/testing/web-platform/tests/wasm/serialization/module/broadcastchannel-success-and-failure.html b/testing/web-platform/tests/wasm/serialization/module/broadcastchannel-success-and-failure.html new file mode 100644 index 0000000000..0d11cc595b --- /dev/null +++ b/testing/web-platform/tests/wasm/serialization/module/broadcastchannel-success-and-failure.html @@ -0,0 +1,38 @@ +<!doctype html> +<!-- Based on similar tests in html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/ --> +<title>WebAssembly.Module cannot cross agent clusters, BroadcastChannel edition</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="./resources/test-incrementer.js"></script> +<script> +async_test(t => { + const channel = new BroadcastChannel("anne was here"), + dw = new Worker("resources/broadcastchannel-worker.js"), + sw = new SharedWorker("resources/broadcastchannel-sharedworker.js"); + let startCounter = 0, + dwStatus = "unknown", + swStatus = "unknown"; + + channel.onmessage = t.step_func(({ data }) => { + if(data === "hi") { + startCounter++; + if(startCounter === 2) { + createWasmModule().then(module => { + channel.postMessage(module); + }); + } else if(startCounter > 2) { + assert_unreached(); + } + } else if(data === "dw-success") { + dwStatus = "success"; + } else if(data === "sw-success") { + swStatus = "success"; + } else { + assert_unreached(); + } + if(dwStatus === "success" && swStatus === "success") { + t.done(); + } + }); +}); +</script> |