tor-browser

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

test_readableStream_when_closing.html (1456B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <meta charset="utf-8">
      5  <title>Test for ReadableStream+fetch when the worker is closing</title>
      6  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
      7  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
      8 </head>
      9 <body>
     10  <script>
     11 
     12 function workerCode() {
     13  onmessage = () => {
     14    const BIG_BUFFER_SIZE = 1000000;
     15    const fibStream = new ReadableStream({
     16        start(controller) {},
     17 
     18        pull(controller) {
     19          const buffer = new Uint8Array(BIG_BUFFER_SIZE);
     20          buffer.fill(42);
     21          controller.enqueue(buffer);
     22        }
     23    });
     24 
     25    const r = new Response(fibStream);
     26 
     27    const p = r.blob();
     28    self.postMessage("reading");
     29 
     30    p.then(() => {
     31      // really?
     32    });
     33  }
     34 }
     35 
     36 SimpleTest.waitForExplicitFinish();
     37 
     38 const b = new Blob([workerCode+'workerCode();']);
     39 const url = URL.createObjectURL(b);
     40 const w = new Worker(url);
     41 w.onmessage = function(e) {
     42  ok(true, 'Worker is reading');
     43 
     44  const wdm = Cc["@mozilla.org/dom/workers/workerdebuggermanager;1"].
     45              getService(Ci.nsIWorkerDebuggerManager);
     46  wdm.addListener({
     47    onUnregister (dbg) {
     48      if (dbg.url == url) {
     49        ok(true, "Debugger with url " + url + " should be unregistered.");
     50        wdm.removeListener(this);
     51        SimpleTest.finish();
     52      }
     53    }
     54  });
     55 
     56  w.terminate();
     57 }
     58 w.postMessage("start");
     59  </script>
     60 </body>
     61 </html>