tor-browser

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

dedicated.html (1275B)


      1 <!doctype html>
      2 <title>structured clone to dedicated worker</title>
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 <script src=/common/sab.js></script>
      6 <script src=/html/webappapis/structured-clone/structured-clone-battery-of-tests.js></script>
      7 <script src=/html/webappapis/structured-clone/structured-clone-battery-of-tests-with-transferables.js></script>
      8 <script src=/html/webappapis/structured-clone/structured-clone-battery-of-tests-harness.js></script>
      9 <div id=log></div>
     10 <script>
     11  runStructuredCloneBatteryOfTests({
     12    setup() {
     13      const blob = new Blob([`
     14        onmessage = ev => postMessage(ev.data, ev.data.transfer);
     15      `], {type: 'text/javascript'});
     16      this.blobURL = URL.createObjectURL(blob);
     17      this.worker = new Worker(this.blobURL);
     18    },
     19    structuredClone(data, transfer) {
     20      return new Promise(resolve => {
     21        this.worker.addEventListener('message', function f(ev) {
     22          this.worker.removeEventListener('message', f);
     23          resolve(ev.data.data);
     24        }.bind(this));
     25        this.worker.postMessage({data, transfer}, transfer);
     26      });
     27    },
     28    teardown() {
     29      this.worker.terminate();
     30      URL.revokeObjectURL(this.blobURL);
     31    }
     32  });
     33 </script>