tor-browser

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

Channel_postMessage_with_transfer_outgoing_messages.any.js (1112B)


      1 async_test(function(t) {
      2  var channel1 = new MessageChannel();
      3  var channel2 = new MessageChannel();
      4  var channel3 = new MessageChannel();
      5  channel2.port2.onmessage = t.step_func(function (evt) {
      6    evt.ports[0].postMessage("Second");
      7    evt.ports[0].postMessage("Third");
      8    channel3.port1.onmessage = t.step_func(function (evt) {
      9      evt.ports[0].postMessage("Fourth");
     10    });
     11    channel3.port2.postMessage("2", evt.ports);
     12  });
     13  channel1.port1.postMessage("First");
     14  channel2.port1.postMessage("1", [channel1.port1]);
     15  var counter = 0;
     16  channel1.port2.onmessage = t.step_func(function (evt) {
     17    if (counter == 0) {
     18      assert_equals(evt.data, "First");
     19      counter = 1;
     20    } else if (counter == 1) {
     21      assert_equals(evt.data, "Second");
     22      counter = 2;
     23    }
     24    else if (counter == 2) {
     25      assert_equals(evt.data, "Third");
     26      counter = 3;
     27    }
     28    else if (counter == 3) {
     29      assert_equals(evt.data, "Fourth");
     30      t.done();
     31    }
     32  });
     33 }, `When transferring a port,
     34    outgoing messages sent at each transfer step are received in order by the entangled port.`);