Title: [211132] trunk/LayoutTests
- Revision
- 211132
- Author
- [email protected]
- Date
- 2017-01-24 18:59:59 -0800 (Tue, 24 Jan 2017)
Log Message
LayoutTest media/modern-media-controls/placard-support/placard-support-airplay.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=164298
Patch by Antoine Quint <[email protected]> on 2017-01-24
Reviewed by Jon Lee.
Make media/modern-media-controls/placard-support/placard-support-airplay.html more robust by
following the same pattern used in media/airplay-target-availability.html which proved to be robust.
* media/modern-media-controls/placard-support/placard-support-airplay-expected.txt:
* media/modern-media-controls/placard-support/placard-support-airplay.html:
* platform/mac/TestExpectations:
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (211131 => 211132)
--- trunk/LayoutTests/ChangeLog 2017-01-25 02:59:11 UTC (rev 211131)
+++ trunk/LayoutTests/ChangeLog 2017-01-25 02:59:59 UTC (rev 211132)
@@ -1,5 +1,19 @@
2017-01-24 Antoine Quint <[email protected]>
+ LayoutTest media/modern-media-controls/placard-support/placard-support-airplay.html is flaky
+ https://bugs.webkit.org/show_bug.cgi?id=164298
+
+ Reviewed by Jon Lee.
+
+ Make media/modern-media-controls/placard-support/placard-support-airplay.html more robust by
+ following the same pattern used in media/airplay-target-availability.html which proved to be robust.
+
+ * media/modern-media-controls/placard-support/placard-support-airplay-expected.txt:
+ * media/modern-media-controls/placard-support/placard-support-airplay.html:
+ * platform/mac/TestExpectations:
+
+2017-01-24 Antoine Quint <[email protected]>
+
LayoutTest media/modern-media-controls/tracks-panel/tracks-panel-hide.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=167311
Modified: trunk/LayoutTests/media/modern-media-controls/placard-support/placard-support-airplay-expected.txt (211131 => 211132)
--- trunk/LayoutTests/media/modern-media-controls/placard-support/placard-support-airplay-expected.txt 2017-01-25 02:59:11 UTC (rev 211131)
+++ trunk/LayoutTests/media/modern-media-controls/placard-support/placard-support-airplay-expected.txt 2017-01-25 02:59:59 UTC (rev 211132)
@@ -3,10 +3,9 @@
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-got event false
-got event true
PASS mediaController.controls.showsPlacard is true
PASS mediaController.controls.children.includes(mediaController.controls.airplayPlacard) is true
+
PASS successfullyParsed is true
TEST COMPLETE
Modified: trunk/LayoutTests/media/modern-media-controls/placard-support/placard-support-airplay.html (211131 => 211132)
--- trunk/LayoutTests/media/modern-media-controls/placard-support/placard-support-airplay.html 2017-01-25 02:59:11 UTC (rev 211131)
+++ trunk/LayoutTests/media/modern-media-controls/placard-support/placard-support-airplay.html 2017-01-25 02:59:59 UTC (rev 211132)
@@ -23,34 +23,57 @@
description("Testing the <code>PlacardSupport</code> behavior when playing media through AirPlay.");
-iconService.directoryPath = "../../../../Source/WebCore/Modules/modern-media-controls/images";
-
const container = document.querySelector("div#host");
const media = document.querySelector("video");
const mediaController = createControls(container, media, null);
-if (window.internals) {
- window.internals.settings.setAllowsAirPlayForMediaPlayback(true);
- window.internals.setMediaElementRestrictions(media, "norestrictions");
+(function makeAirPlayAvailable()
+{
+ media.addEventListener("webkitplaybacktargetavailabilitychanged", playbackTargetAvailabilityChangedOnce, true);
+ window.internals.setMockMediaPlaybackTargetPickerEnabled(true);
+})();
+
+function playbackTargetAvailabilityChangedOnce(event)
+{
+ media.removeEventListener('webkitplaybacktargetavailabilitychanged', playbackTargetAvailabilityChangedOnce, true);
+ media.addEventListener('webkitplaybacktargetavailabilitychanged', playbackTargetAvailabilityChangedAgain, true);
+
+ window.internals.setMockMediaPlaybackTargetPickerState('Sleepy TV', 'DeviceAvailable');
}
+
+function playbackTargetAvailabilityChangedAgain(event)
+{
+ // setMockMediaPlaybackTargetPickerState happens asynchronously in WK2 and a
+ // "webkitplaybacktargetavailabilitychanged" is always sent when an event listener
+ // is added, so we may get a "not available" event first.
+ if (event.availability == 'not-available')
+ return;
-media.addEventListener("webkitcurrentplaybacktargetiswirelesschanged", () => {
- if (!media.paused && media.webkitCurrentPlaybackTargetIsWireless) {
- shouldBeTrue("mediaController.controls.showsPlacard");
- shouldBeTrue("mediaController.controls.children.includes(mediaController.controls.airplayPlacard)");
+ media.removeEventListener('webkitplaybacktargetavailabilitychanged', playbackTargetAvailabilityChangedAgain, true);
- container.remove();
- media.remove();
- finishJSTest();
- }
-});
+ window.setTimeout(enterAirPlay, 100);
+}
-media.addEventListener("play", () => {
+function enterAirPlay()
+{
+ media.addEventListener("webkitcurrentplaybacktargetiswirelesschanged", currentPlaybackTargetIsWirelessChanged);
media.webkitShowPlaybackTargetPicker();
- if (window.internals)
- window.internals.setMockMediaPlaybackTargetPickerState("Sleepy TV", "DeviceAvailable");
-});
+}
+function currentPlaybackTargetIsWirelessChanged(event)
+{
+ if (!media.webkitCurrentPlaybackTargetIsWireless)
+ return;
+
+ shouldBeTrue("mediaController.controls.showsPlacard");
+ shouldBeTrue("mediaController.controls.children.includes(mediaController.controls.airplayPlacard)");
+
+ debug("");
+ container.remove();
+ media.remove();
+ finishJSTest();
+}
+
</script>
<script src=""
</body>
Modified: trunk/LayoutTests/platform/mac/TestExpectations (211131 => 211132)
--- trunk/LayoutTests/platform/mac/TestExpectations 2017-01-25 02:59:11 UTC (rev 211131)
+++ trunk/LayoutTests/platform/mac/TestExpectations 2017-01-25 02:59:59 UTC (rev 211132)
@@ -1480,7 +1480,6 @@
# These sometimes work but more often than not don't
webkit.org/b/164323 media/modern-media-controls/airplay-support/airplay-support.html [ Pass Failure ]
-webkit.org/b/164298 media/modern-media-controls/placard-support/placard-support-airplay.html [ Pass Failure Timeout ]
# This one always times out on the bots, cannot reproduce locally.
webkit.org/b/165234 media/modern-media-controls/audio/audio-controls-buttons.html [ Pass Timeout ]
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes