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

Reply via email to