Title: [221589] trunk/Tools
- Revision
- 221589
- Author
- [email protected]
- Date
- 2017-09-04 09:27:38 -0700 (Mon, 04 Sep 2017)
Log Message
REGRESSION (r220052): [Sierra] API test VideoControlsManager.VideoControlsManagerFullSizeVideoInWideMainFrame is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=175329
Reviewed by Wenson Hsieh.
These tests rely on using setTimeout to wait a run loop iteration for the
video controls to appear. With changes to how loading occurs, it can now
take two run loop iterations. The concept here is inherently a bit flaky
and racy -- end users will not be able to tell how many run loop cycles it
takes for controls to come up, and websites can't tell either -- but for now
changing the tests to wait one more run loop should get rid of the flakiness.
* TestWebKitAPI/Tests/WebKitCocoa/VideoControlsManager.mm: Re-enable test.
* TestWebKitAPI/Tests/WebKitCocoa/full-size-autoplaying-video-with-audio.html: Add a
second setTimeout and a comment.
* TestWebKitAPI/Tests/WebKitCocoa/skinny-autoplaying-video-with-audio.html: Ditto.
* TestWebKitAPI/Tests/WebKitCocoa/wide-autoplaying-video-with-audio.html: Ditto.
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (221588 => 221589)
--- trunk/Tools/ChangeLog 2017-09-04 14:01:04 UTC (rev 221588)
+++ trunk/Tools/ChangeLog 2017-09-04 16:27:38 UTC (rev 221589)
@@ -1,3 +1,24 @@
+2017-09-03 Darin Adler <[email protected]>
+
+ REGRESSION (r220052): [Sierra] API test VideoControlsManager.VideoControlsManagerFullSizeVideoInWideMainFrame is a flaky failure
+ https://bugs.webkit.org/show_bug.cgi?id=175329
+
+ Reviewed by Wenson Hsieh.
+
+ These tests rely on using setTimeout to wait a run loop iteration for the
+ video controls to appear. With changes to how loading occurs, it can now
+ take two run loop iterations. The concept here is inherently a bit flaky
+ and racy -- end users will not be able to tell how many run loop cycles it
+ takes for controls to come up, and websites can't tell either -- but for now
+ changing the tests to wait one more run loop should get rid of the flakiness.
+
+ * TestWebKitAPI/Tests/WebKitCocoa/VideoControlsManager.mm: Re-enable test.
+
+ * TestWebKitAPI/Tests/WebKitCocoa/full-size-autoplaying-video-with-audio.html: Add a
+ second setTimeout and a comment.
+ * TestWebKitAPI/Tests/WebKitCocoa/skinny-autoplaying-video-with-audio.html: Ditto.
+ * TestWebKitAPI/Tests/WebKitCocoa/wide-autoplaying-video-with-audio.html: Ditto.
+
2017-09-03 Sam Weinig <[email protected]>
Make webkit-patch post --no-review enable EWS just like webkit-patch post-commits --no-review
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/VideoControlsManager.mm (221588 => 221589)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/VideoControlsManager.mm 2017-09-04 14:01:04 UTC (rev 221588)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/VideoControlsManager.mm 2017-09-04 16:27:38 UTC (rev 221589)
@@ -432,8 +432,7 @@
[webView expectControlsManager:NO afterReceivingMessage:@"playing"];
}
-// FIXME: Re-enable this test once <webkit.org/b/175329> is resolved.
-TEST(VideoControlsManager, DISABLED_VideoControlsManagerWideMediumSizedVideoInWideMainFrame)
+TEST(VideoControlsManager, VideoControlsManagerWideMediumSizedVideoInWideMainFrame)
{
RetainPtr<VideoControlsManagerTestWebView*> webView = setUpWebViewForTestingVideoControlsManager(NSMakeRect(0, 0, 1600, 800));
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/full-size-autoplaying-video-with-audio.html (221588 => 221589)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/full-size-autoplaying-video-with-audio.html 2017-09-04 14:01:04 UTC (rev 221588)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/full-size-autoplaying-video-with-audio.html 2017-09-04 16:27:38 UTC (rev 221589)
@@ -8,14 +8,18 @@
}
</style>
<script>
- function finishTest() {
- setTimeout(function() {
- try {
- window.webkit.messageHandlers.testHandler.postMessage("playing");
- } catch(e) { }
- }, 0);
- }
- </script>
+ function finishTest()
+ {
+ // As of this writing, two times through the run loop is long enough for the controls to come up.
+ // There's no guarantee; whether the controls are visible is not web exposed, so it doesn't have
+ // to happen in a certain number of timeouts.
+ setTimeout(function() {
+ setTimeout(function() {
+ webkit.messageHandlers.testHandler.postMessage("playing");
+ }, 0);
+ }, 0);
+ }
+ </script>
</head>
<body>
<video autoplay src="" webkit-playsinline _onplaying_=finishTest()></video>
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/skinny-autoplaying-video-with-audio.html (221588 => 221589)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/skinny-autoplaying-video-with-audio.html 2017-09-04 14:01:04 UTC (rev 221588)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/skinny-autoplaying-video-with-audio.html 2017-09-04 16:27:38 UTC (rev 221589)
@@ -8,14 +8,18 @@
}
</style>
<script>
- function finishTest() {
- setTimeout(function() {
- try {
- window.webkit.messageHandlers.testHandler.postMessage("playing");
- } catch(e) { }
- }, 0);
- }
- </script>
+ function finishTest()
+ {
+ // As of this writing, two times through the run loop is long enough for the controls to come up.
+ // There's no guarantee; whether the controls are visible is not web exposed, so it doesn't have
+ // to happen in a certain number of timeouts.
+ setTimeout(function() {
+ setTimeout(function() {
+ webkit.messageHandlers.testHandler.postMessage("playing");
+ }, 0);
+ }, 0);
+ }
+ </script>
</head>
<body>
<video autoplay src="" webkit-playsinline _onplaying_=finishTest()></video>
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/wide-autoplaying-video-with-audio.html (221588 => 221589)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/wide-autoplaying-video-with-audio.html 2017-09-04 14:01:04 UTC (rev 221588)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/wide-autoplaying-video-with-audio.html 2017-09-04 16:27:38 UTC (rev 221589)
@@ -8,14 +8,18 @@
}
</style>
<script>
- function finishTest() {
- setTimeout(function() {
- try {
- window.webkit.messageHandlers.testHandler.postMessage("playing");
- } catch(e) { }
- }, 0);
- }
- </script>
+ function finishTest()
+ {
+ // As of this writing, two times through the run loop is long enough for the controls to come up.
+ // There's no guarantee; whether the controls are visible is not web exposed, so it doesn't have
+ // to happen in a certain number of timeouts.
+ setTimeout(function() {
+ setTimeout(function() {
+ webkit.messageHandlers.testHandler.postMessage("playing");
+ }, 0);
+ }, 0);
+ }
+ </script>
</head>
<body>
<video autoplay src="" webkit-playsinline _onplaying_=finishTest()></video>
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes