http/tests/eventloop/queue-task-across-cross-site-frames.html is flaky failure on iOS
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 23 Nov 2019 02:14:02 +0000 (02:14 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 23 Nov 2019 02:14:02 +0000 (02:14 +0000)
https://bugs.webkit.org/show_bug.cgi?id=204510

Reviewed by Chris Dumez.

There are two issues with this test. First, queue-task-across-cross-site-frames.html wasn't waiting
for the helper file to post logs, and secondly, eventloop-helper.html was relying on setTimeout(~, 0)
to always happen after queued tasks had run, which is not always true if there had already been
another 0s timer scheduled.

* http/tests/eventloop/queue-task-across-cross-site-frames.html:
* http/tests/eventloop/resources/eventloop-helper.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252821 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/http/tests/eventloop/queue-task-across-cross-site-frames.html
LayoutTests/http/tests/eventloop/resources/eventloop-helper.html

index 3c7996a..7e99eb1 100644 (file)
@@ -1,3 +1,18 @@
+2019-11-22  Ryosuke Niwa  <rniwa@webkit.org>
+
+        http/tests/eventloop/queue-task-across-cross-site-frames.html is flaky failure on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=204510
+
+        Reviewed by Chris Dumez.
+
+        There are two issues with this test. First, queue-task-across-cross-site-frames.html wasn't waiting
+        for the helper file to post logs, and secondly, eventloop-helper.html was relying on setTimeout(~, 0)
+        to always happen after queued tasks had run, which is not always true if there had already been
+        another 0s timer scheduled.
+
+        * http/tests/eventloop/queue-task-across-cross-site-frames.html:
+        * http/tests/eventloop/resources/eventloop-helper.html:
+
 2019-11-22  Eric Carlson  <eric.carlson@apple.com>
 
         ( r251737 ) media/remoteplayback-prompt.html is a flakey timeout
index 2a5ad27..77c56c2 100644 (file)
@@ -52,6 +52,8 @@ async function startTest()
         startingNumber: 10,
     }, '*');
 
+    await new Promise((resolve) => { window.resolveCrossOriginLogs = resolve; });
+
     setTimeout(() => {
         shouldBeEqualToString('logs.join(", ")', '1, 2, 3, 4, 5');
         shouldBeEqualToString('crossOriginLogs.join(", ")', '10, 11, 12');
@@ -67,8 +69,10 @@ onmessage = (event) => {
             resolve();
         else
             loadedFrames.set(event.source, null);
-    } else if (event.data.type == 'logs')
+    } else if (event.data.type == 'logs') {
         crossOriginLogs = event.data.logs;
+        resolveCrossOriginLogs();
+    }
 }
 
 function waitForLoad(frame)
index e26197b..41b53f8 100644 (file)
@@ -17,7 +17,7 @@ onmessage = (event) => {
 
     setTimeout(() => {
         top.postMessage({'type': 'logs', logs}, '*');
-    }, 0);
+    }, 20);
 }
 
 </script>