Changeset 211132 in webkit


Ignore:
Timestamp:
Jan 24, 2017 6:59:59 PM (7 years ago)
Author:
commit-queue@webkit.org
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 <Antoine Quint> 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:
Location:
trunk/LayoutTests
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r211131 r211132  
     12017-01-24  Antoine Quint  <graouts@apple.com>
     2
     3        LayoutTest media/modern-media-controls/placard-support/placard-support-airplay.html is flaky
     4        https://bugs.webkit.org/show_bug.cgi?id=164298
     5
     6        Reviewed by Jon Lee.
     7
     8        Make media/modern-media-controls/placard-support/placard-support-airplay.html more robust by
     9        following the same pattern used in media/airplay-target-availability.html which proved to be robust.
     10
     11        * media/modern-media-controls/placard-support/placard-support-airplay-expected.txt:
     12        * media/modern-media-controls/placard-support/placard-support-airplay.html:
     13        * platform/mac/TestExpectations:
     14
    1152017-01-24  Antoine Quint  <graouts@apple.com>
    216
  • trunk/LayoutTests/media/modern-media-controls/placard-support/placard-support-airplay-expected.txt

    r210959 r211132  
    44
    55
    6 got event false
    7 got event true
    86PASS mediaController.controls.showsPlacard is true
    97PASS mediaController.controls.children.includes(mediaController.controls.airplayPlacard) is true
     8
    109PASS successfullyParsed is true
    1110
  • trunk/LayoutTests/media/modern-media-controls/placard-support/placard-support-airplay.html

    r209108 r211132  
    2424description("Testing the <code>PlacardSupport</code> behavior when playing media through AirPlay.");
    2525
    26 iconService.directoryPath = "../../../../Source/WebCore/Modules/modern-media-controls/images";
    27 
    2826const container = document.querySelector("div#host");
    2927const media = document.querySelector("video");
    3028const mediaController = createControls(container, media, null);
    3129
    32 if (window.internals) {
    33     window.internals.settings.setAllowsAirPlayForMediaPlayback(true);
    34     window.internals.setMediaElementRestrictions(media, "norestrictions");
     30(function makeAirPlayAvailable()
     31{
     32    media.addEventListener("webkitplaybacktargetavailabilitychanged", playbackTargetAvailabilityChangedOnce, true);
     33    window.internals.setMockMediaPlaybackTargetPickerEnabled(true);
     34})();
     35
     36function playbackTargetAvailabilityChangedOnce(event)
     37{
     38    media.removeEventListener('webkitplaybacktargetavailabilitychanged', playbackTargetAvailabilityChangedOnce, true);
     39    media.addEventListener('webkitplaybacktargetavailabilitychanged', playbackTargetAvailabilityChangedAgain, true);
     40
     41    window.internals.setMockMediaPlaybackTargetPickerState('Sleepy TV', 'DeviceAvailable');
     42}
     43   
     44function playbackTargetAvailabilityChangedAgain(event)
     45{
     46    // setMockMediaPlaybackTargetPickerState happens asynchronously in WK2 and a
     47    // "webkitplaybacktargetavailabilitychanged" is always sent when an event listener
     48    // is added, so we may get a "not available" event first.
     49    if (event.availability == 'not-available')
     50        return;
     51
     52    media.removeEventListener('webkitplaybacktargetavailabilitychanged', playbackTargetAvailabilityChangedAgain, true);
     53
     54    window.setTimeout(enterAirPlay, 100);
    3555}
    3656
    37 media.addEventListener("webkitcurrentplaybacktargetiswirelesschanged", () => {
    38     if (!media.paused && media.webkitCurrentPlaybackTargetIsWireless) {
    39         shouldBeTrue("mediaController.controls.showsPlacard");
    40         shouldBeTrue("mediaController.controls.children.includes(mediaController.controls.airplayPlacard)");
     57function enterAirPlay()
     58{
     59    media.addEventListener("webkitcurrentplaybacktargetiswirelesschanged", currentPlaybackTargetIsWirelessChanged);
     60    media.webkitShowPlaybackTargetPicker();
     61}
    4162
    42         container.remove();
    43         media.remove();
    44         finishJSTest();
    45     }
    46 });
     63function currentPlaybackTargetIsWirelessChanged(event)
     64{
     65    if (!media.webkitCurrentPlaybackTargetIsWireless)
     66        return;
    4767
    48 media.addEventListener("play", () => {
    49     media.webkitShowPlaybackTargetPicker();
    50     if (window.internals)
    51         window.internals.setMockMediaPlaybackTargetPickerState("Sleepy TV", "DeviceAvailable");
    52 });
     68    shouldBeTrue("mediaController.controls.showsPlacard");
     69    shouldBeTrue("mediaController.controls.children.includes(mediaController.controls.airplayPlacard)");
     70
     71    debug("");
     72    container.remove();
     73    media.remove();
     74    finishJSTest();
     75}
    5376
    5477</script>
  • trunk/LayoutTests/platform/mac/TestExpectations

    r211131 r211132  
    14811481# These sometimes work but more often than not don't
    14821482webkit.org/b/164323 media/modern-media-controls/airplay-support/airplay-support.html [ Pass Failure ]
    1483 webkit.org/b/164298 media/modern-media-controls/placard-support/placard-support-airplay.html [ Pass Failure Timeout ]
    14841483
    14851484# This one always times out on the bots, cannot reproduce locally.
Note: See TracChangeset for help on using the changeset viewer.