tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

no-transferring.html (1407B)


      1 <!DOCTYPE html>
      2 <!-- Based on similar tests in html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/ -->
      3 <meta charset="utf-8">
      4 <title>WebAssembly.Modules cannot be transferred</title>
      5 <script src="/resources/testharness.js"></script>
      6 <script src="/resources/testharnessreport.js"></script>
      7 <script src="./resources/create-empty-wasm-module.js"></script>
      8 
      9 <script>
     10 "use strict";
     11 
     12 test(() => {
     13  const module = createEmptyWasmModule();
     14  assert_throws_dom("DataCloneError", () => window.postMessage(module, "*", [module]));
     15  assert_throws_dom("DataCloneError", () => window.postMessage("test", "*", [module]));
     16 }, "Trying to transfer a WebAssembly.Module to this window throws");
     17 
     18 test(() => {
     19  const module = createEmptyWasmModule();
     20  const worker = new Worker("resources/echo-worker.js");
     21  assert_throws_dom("DataCloneError", () => worker.postMessage(module, [module]));
     22  assert_throws_dom("DataCloneError", () => worker.postMessage("test", [module]));
     23 }, "Trying to transfer a WebAssembly.Module to a worker throws");
     24 
     25 test(() => {
     26  const module = createEmptyWasmModule();
     27  const channel = new MessageChannel();
     28  assert_throws_dom("DataCloneError", () => channel.port1.postMessage(module, [module]));
     29  assert_throws_dom("DataCloneError", () => channel.port1.postMessage("test", [module]));
     30 }, "Trying to transfer a WebAssembly.Module through a MessagePort throws");
     31 </script>