Bug 1735858 [wpt PR 31247] - App history: make it mostly nonfunctional for opaque...
[gecko.git] / testing / web-platform / tests / webmessaging / Channel_postMessage_with_transfer_outgoing_messages.any.js
blobaa80b7589cffa58da6f1d790e7cdbeb95642c6e3
2 async_test(function(t) {
3   var channel1 = new MessageChannel();
4   var channel2 = new MessageChannel();
5   var channel3 = new MessageChannel();
6   channel2.port2.onmessage = t.step_func(function (evt) {
7     evt.ports[0].postMessage("Second");
8     evt.ports[0].postMessage("Third");
9     channel3.port1.onmessage = t.step_func(function (evt) {
10       evt.ports[0].postMessage("Fourth");
11     });
12     channel3.port2.postMessage("2", evt.ports);
13   });
14   channel1.port1.postMessage("First");
15   channel2.port1.postMessage("1", [channel1.port1]);
16   var counter = 0;
17   channel1.port2.onmessage = t.step_func(function (evt) {
18     if (counter == 0) {
19       assert_equals(evt.data, "First");
20       counter = 1;
21     } else if (counter == 1) {
22       assert_equals(evt.data, "Second");
23       counter = 2;
24     }
25     else if (counter == 2) {
26       assert_equals(evt.data, "Third");
27       counter = 3;
28     }
29     else if (counter == 3) {
30       assert_equals(evt.data, "Fourth");
31       t.done();
32     }
33   });
34 }, `When transferring a port,
35     outgoing messages sent at each transfer step are received in order by the entangled port.`);