tor-browser

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

no-transferring.https.html (1340B)


      1 <!DOCTYPE html>
      2 <meta charset="utf-8">
      3 <title>SharedArrayBuffers cannot be transferred</title>
      4 <link rel="help" href="https://html.spec.whatwg.org/#structuredclone">
      5 <link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">
      6 <script src="/resources/testharness.js"></script>
      7 <script src="/resources/testharnessreport.js"></script>
      8 
      9 <script>
     10 "use strict";
     11 
     12 test(() => {
     13  const sab = new SharedArrayBuffer();
     14  assert_throws_dom("DataCloneError", () => window.postMessage(sab, "*", [sab]));
     15  assert_throws_dom("DataCloneError", () => window.postMessage("test", "*", [sab]));
     16 }, "Trying to transfer a SharedArrayBuffer to this window throws");
     17 
     18 test(() => {
     19  const sab = new SharedArrayBuffer();
     20  const worker = new Worker("../resources/echo-worker.js");
     21  assert_throws_dom("DataCloneError", () => worker.postMessage(sab, [sab]));
     22  assert_throws_dom("DataCloneError", () => worker.postMessage("test", [sab]));
     23 }, "Trying to transfer a SharedArrayBuffer to a worker throws");
     24 
     25 test(() => {
     26  const sab = new SharedArrayBuffer();
     27  const channel = new MessageChannel();
     28  assert_throws_dom("DataCloneError", () => channel.port1.postMessage(sab, [sab]));
     29  assert_throws_dom("DataCloneError", () => channel.port1.postMessage("test", [sab]));
     30 }, "Trying to transfer a SharedArrayBuffer through a MessagePort throws");
     31 </script>