diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /testing/web-platform/tests/webmessaging/Channel_postMessage_with_transfer_entangled.any.js | |
parent | Initial commit. (diff) | |
download | thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/webmessaging/Channel_postMessage_with_transfer_entangled.any.js')
-rw-r--r-- | testing/web-platform/tests/webmessaging/Channel_postMessage_with_transfer_entangled.any.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webmessaging/Channel_postMessage_with_transfer_entangled.any.js b/testing/web-platform/tests/webmessaging/Channel_postMessage_with_transfer_entangled.any.js new file mode 100644 index 0000000000..2226b27844 --- /dev/null +++ b/testing/web-platform/tests/webmessaging/Channel_postMessage_with_transfer_entangled.any.js @@ -0,0 +1,36 @@ +async_test(function(t) { + var channel1 = new MessageChannel(); + var channel2 = new MessageChannel(); + + // One, send a message. + channel1.port1.postMessage(1); + + // Two, transfer both ports. + channel2.port1.postMessage("transfer", [channel1.port1]); + channel2.port1.postMessage("transfer", [channel1.port2]); + + var transfer_counter = 0; + var sender; + channel2.port2.onmessage = t.step_func(function (evt) { + if (transfer_counter == 0) { + sender = evt.ports[0]; + transfer_counter = 1; + } else { + sender.postMessage(2); + var counter = 0; + evt.ports[0].onmessage = t.step_func(function (evt) { + if (counter == 0) { + assert_equals(evt.data, 1); + counter = 1; + } else if (counter == 1) { + assert_equals(evt.data, 2); + counter = 2; + } else { + assert_equals(evt.data, 3); + t.done(); + } + }); + sender.postMessage(3); + } + }); +}, "An entangled port transferred to the same origin receives messages in order"); |