Index: LayoutTests/fast/events/message-port-start-and-close-same-microtask.html |
diff --git a/LayoutTests/fast/events/message-port-close.html b/LayoutTests/fast/events/message-port-start-and-close-same-microtask.html |
similarity index 62% |
copy from LayoutTests/fast/events/message-port-close.html |
copy to LayoutTests/fast/events/message-port-start-and-close-same-microtask.html |
index 0dabcd830f60b1ba2cd64a5034db250616fb1fd5..5f08ab3fa45ad7bdf46f1f1c99451b76a25a5c89 100644 |
--- a/LayoutTests/fast/events/message-port-close.html |
+++ b/LayoutTests/fast/events/message-port-start-and-close-same-microtask.html |
@@ -1,5 +1,5 @@ |
<body> |
-<p>Test Closed MessagePort Whether Receive Message Or Not.</p> |
+<p>Test whether opening and closing a messageport in the same microtask correctly discards an in-flight message.</p> |
<p>Should be a START message, followed with DONE.</p> |
<pre id=log></pre> |
<script> |
@@ -16,13 +16,19 @@ if (window.testRunner) { |
log("START"); |
var channel = new MessageChannel; |
-channel.port1.onmessage = function(evt) { |
- log("Closed port receiving: FAIL. Got Message: " + evt.data + " after close"); |
-} |
-channel.port1.close(); |
channel.port2.postMessage("This message can't be received"); |
+openThenClose(); |
done(); |
+function openThenClose() { |
+ setTimeout(function() { |
+ channel.port1.onmessage = function(evt) { |
+ log("Closed port receiving: FAIL. Got Message: " + evt.data + " after close"); |
+ } |
+ channel.port1.close(); |
+ }, 0); |
+} |
+ |
function done() { |
// Wait a short period of time to ensure no messages come in from previous tests. |
setTimeout(function() { |