tor-browser

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

test_messageChannel.js (874B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 add_task(async function() {
      5  let sb = new Cu.Sandbox('http://www.example.com',
      6                          { wantGlobalProperties: ["MessageChannel"] });
      7  sb.ok = ok;
      8  Cu.evalInSandbox('ok((new MessageChannel()) instanceof MessageChannel);',
      9                   sb);
     10  Cu.evalInSandbox('ok((new MessageChannel()).port1 instanceof MessagePort);',
     11                   sb);
     12 
     13  Cu.importGlobalProperties(["MessageChannel"]);
     14 
     15  let mc = new MessageChannel();
     16  Assert.ok(mc instanceof MessageChannel);
     17  Assert.ok(mc.port1 instanceof MessagePort);
     18  Assert.ok(mc.port2 instanceof MessagePort);
     19 
     20  mc.port1.postMessage(42);
     21 
     22  let result = await new Promise(resolve => {
     23    mc.port2.onmessage = e => {
     24      resolve(e.data);
     25    }
     26  });
     27 
     28  Assert.equal(result, 42);
     29 });