Changeset 228010 in webkit


Ignore:
Timestamp:
Feb 2, 2018 8:30:13 AM (6 years ago)
Author:
commit-queue@webkit.org
Message:

[Modern Media Controls] Turn media/modern-media-controls/tracks-panel and media/modern-media-controls/tracks-support back on
https://bugs.webkit.org/show_bug.cgi?id=182426

Patch by Antoine Quint <Antoine Quint> on 2018-02-02
Reviewed by Dean Jackson.

Source/WebCore:

Ensure that the tracks panel isn't dismissed by updating the layout.

  • Modules/modern-media-controls/controls/inline-media-controls.js:

(InlineMediaControls.prototype.layout):

LayoutTests:

Update tests to match the modern-media-controls design and expectations. One test fails currently due to an issue with the
auto-hide behavior, it is tracked in webkit.org/b/182425.

  • media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it-expected.txt:
  • media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it.html:
  • media/modern-media-controls/tracks-panel/tracks-panel-position-and-size-expected.txt:
  • media/modern-media-controls/tracks-panel/tracks-panel-position-and-size.html:
  • media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading-expected.txt:
  • media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading.html:
  • media/modern-media-controls/tracks-support/tracks-support-audio-tracks-expected.txt:
  • media/modern-media-controls/tracks-support/tracks-support-audio-tracks.html:
  • media/modern-media-controls/tracks-support/tracks-support-captions-offset-with-controls-bar-expected.txt:
  • media/modern-media-controls/tracks-support/tracks-support-captions-offset-with-controls-bar.html:
  • media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen-expected.txt:
  • media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html:
  • media/modern-media-controls/tracks-support/tracks-support-text-tracks-expected.txt:
  • media/modern-media-controls/tracks-support/tracks-support-text-tracks.html:
  • platform/mac/TestExpectations:
Location:
trunk
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r228009 r228010  
     12018-02-02  Antoine Quint  <graouts@apple.com>
     2
     3        [Modern Media Controls] Turn media/modern-media-controls/tracks-panel and media/modern-media-controls/tracks-support back on
     4        https://bugs.webkit.org/show_bug.cgi?id=182426
     5
     6        Reviewed by Dean Jackson.
     7
     8        Update tests to match the modern-media-controls design and expectations. One test fails currently due to an issue with the
     9        auto-hide behavior, it is tracked in webkit.org/b/182425.
     10
     11        * media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it-expected.txt:
     12        * media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it.html:
     13        * media/modern-media-controls/tracks-panel/tracks-panel-position-and-size-expected.txt:
     14        * media/modern-media-controls/tracks-panel/tracks-panel-position-and-size.html:
     15        * media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading-expected.txt:
     16        * media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading.html:
     17        * media/modern-media-controls/tracks-support/tracks-support-audio-tracks-expected.txt:
     18        * media/modern-media-controls/tracks-support/tracks-support-audio-tracks.html:
     19        * media/modern-media-controls/tracks-support/tracks-support-captions-offset-with-controls-bar-expected.txt:
     20        * media/modern-media-controls/tracks-support/tracks-support-captions-offset-with-controls-bar.html:
     21        * media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen-expected.txt:
     22        * media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html:
     23        * media/modern-media-controls/tracks-support/tracks-support-text-tracks-expected.txt:
     24        * media/modern-media-controls/tracks-support/tracks-support-text-tracks.html:
     25        * platform/mac/TestExpectations:
     26
    1272018-02-02  Ms2ger  <Ms2ger@igalia.com>
    228
  • trunk/LayoutTests/media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it-expected.txt

    r214545 r228010  
    44
    55
    6 mediaControls.showTracksPanel()
    7 PASS mediaControls.tracksPanel.element.parentNode became mediaControls.element
     6PASS shadowRoot.querySelector('button.tracks').getBoundingClientRect().width > 0 became true
     7PASS shadowRoot.contains(shadowRoot.querySelector('.tracks-panel')) became true
     8PASS media.currentTime > 0.250 became true
    89
    9 We've waited long enough so that the controls bar should be faded should the tracks panel not be visible
    10 PASS mediaControls.controlsBar.faded is false
     10We've waited long enough so that the controls bar should be faded should the tracks panel not be visible.
     11PASS shadowRoot.querySelector('.media-controls').classList.contains('faded') is false
    1112
    12 Click on the controls bar to dismiss the panel, the controls bar should remain visible
    13 PASS mediaControls.controlsBar.faded is false
    14 PASS mediaControls.tracksPanel.presented is false
    15 
     13Click on the controls bar to dismiss the panel, the controls bar should remain visible.
     14PASS shadowRoot.contains(shadowRoot.querySelector('.tracks-panel')) became false
     15PASS shadowRoot.querySelector('.media-controls').classList.contains('faded') is false
    1616PASS successfullyParsed is true
    1717
  • trunk/LayoutTests/media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it.html

    r214545 r228010  
    11<script src="../../../resources/js-test-pre.js"></script>
    22<script src="../resources/media-controls-loader.js" type="text/javascript"></script>
     3<script src="../resources/media-controls-utils.js" type="text/javascript"></script>
    34<body>
    4 <style type="text/css" media="screen">
    5    
    6     .media-controls {
    7         position: absolute;
    8         top: 0;
    9         left: 0;
    10     }
    11    
    12 </style>
     5<video src="../../content/CC+Subtitles.mov" style="position: absolute; left: 0; top: 0; width: 640px; height: 360px;" controls autoplay data-auto-hide-delay="250"></video>
    136<script type="text/javascript">
    147
     
    1710description("Clicking on the controls bar to dismiss the tracks panel should not hide the controls bar, only the track panel.");
    1811
    19 const mediaControls = new MacOSInlineMediaControls({ width: 680, height: 300 });
     12const media = document.querySelector("video");
     13const shadowRoot = window.internals.shadowRoot(media);
    2014
    21 document.body.appendChild(mediaControls.element);
     15shouldBecomeEqual("shadowRoot.querySelector('button.tracks').getBoundingClientRect().width > 0", "true", () => {
     16    pressOnElement(shadowRoot.querySelector("button.tracks"), () => {
     17        shouldBecomeEqual("shadowRoot.contains(shadowRoot.querySelector('.tracks-panel'))", "true", () => {
     18            shouldBecomeEqual("media.currentTime > 0.250", "true", () => {
    2219
    23 let trackElement;
     20                debug("");
     21                debug("We've waited long enough so that the controls bar should be faded should the tracks panel not be visible.");
     22                shouldBeFalse("shadowRoot.querySelector('.media-controls').classList.contains('faded')");
    2423
    25 mediaControls.controlsBar.autoHideDelay = 250;
    26 mediaControls.controlsBar.fadesWhileIdle = true;
     24                debug("");
     25                debug("Click on the controls bar to dismiss the panel, the controls bar should remain visible.");
     26                eventSender.mouseMoveTo(632, 339);
     27                eventSender.mouseDown();
     28                eventSender.mouseUp();
    2729
    28 debug("mediaControls.showTracksPanel()");
    29 mediaControls.showTracksPanel();
     30                shouldBecomeEqual("shadowRoot.contains(shadowRoot.querySelector('.tracks-panel'))", "false", () => {
     31                    shouldBeFalse("shadowRoot.querySelector('.media-controls').classList.contains('faded')");
     32                    media.remove();
     33                    finishJSTest();
     34                });
    3035
    31 shouldBecomeEqual("mediaControls.tracksPanel.element.parentNode", "mediaControls.element", () => {
    32     // Let's wait a while to see that the controls bar is still visible.
    33     setTimeout(() => {
    34         debug("");
    35         debug("We've waited long enough so that the controls bar should be faded should the tracks panel not be visible");
    36         shouldBeFalse("mediaControls.controlsBar.faded");
    37 
    38         debug("");
    39         debug("Click on the controls bar to dismiss the panel, the controls bar should remain visible");
    40         eventSender.mouseMoveTo(670, 290);
    41         eventSender.mouseDown();
    42         eventSender.mouseUp();
    43 
    44         shouldBeFalse("mediaControls.controlsBar.faded");
    45         shouldBeFalse("mediaControls.tracksPanel.presented");
    46 
    47         debug("");
    48         mediaControls.element.remove();
    49         finishJSTest();
    50     }, mediaControls.controlsBar.autoHideDelay);
     36            });
     37        });
     38    });
    5139});
    5240
  • trunk/LayoutTests/media/modern-media-controls/tracks-panel/tracks-panel-position-and-size-expected.txt

    r213454 r228010  
    66PASS mediaControls.tracksButton.element.getBoundingClientRect().right became different from 0
    77mediaControls.showTracksPanel()
    8 PASS mediaControls.tracksPanel.element.style.right is "69px"
    9 PASS mediaControls.tracksPanel.element.style.bottom is "51px"
    10 PASS getComputedStyle(mediaControls.tracksPanel.element).height is "239px"
    11 PASS getComputedStyle(mediaControls.tracksPanel.element.lastElementChild).height is "239px"
     8PASS mediaControls.tracksPanel.element.style.right is "22px"
     9PASS mediaControls.tracksPanel.element.style.bottom is "38px"
     10PASS getComputedStyle(mediaControls.tracksPanel.element).height is "252px"
     11PASS getComputedStyle(mediaControls.tracksPanel.element.lastElementChild).height is "252px"
    1212PASS getComputedStyle(mediaControls.tracksPanel.element.lastElementChild).overflowY is "scroll"
    1313
  • trunk/LayoutTests/media/modern-media-controls/tracks-panel/tracks-panel-position-and-size.html

    r213454 r228010  
    5252    mediaControls.showTracksPanel();
    5353    window.requestAnimationFrame(() => {
    54         shouldBeEqualToString("mediaControls.tracksPanel.element.style.right", "69px");
    55         shouldBeEqualToString("mediaControls.tracksPanel.element.style.bottom", "51px");
    56         shouldBeEqualToString("getComputedStyle(mediaControls.tracksPanel.element).height", "239px");
    57         shouldBeEqualToString("getComputedStyle(mediaControls.tracksPanel.element.lastElementChild).height", "239px");
     54        shouldBeEqualToString("mediaControls.tracksPanel.element.style.right", "22px");
     55        shouldBeEqualToString("mediaControls.tracksPanel.element.style.bottom", "38px");
     56        shouldBeEqualToString("getComputedStyle(mediaControls.tracksPanel.element).height", "252px");
     57        shouldBeEqualToString("getComputedStyle(mediaControls.tracksPanel.element.lastElementChild).height", "252px");
    5858        shouldBeEqualToString("getComputedStyle(mediaControls.tracksPanel.element.lastElementChild).overflowY", "scroll");
    5959        debug("");
  • trunk/LayoutTests/media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading-expected.txt

    r214545 r228010  
    88
    99We've waited long enough so that the controls bar should be faded should the tracks panel not be visible
    10 PASS mediaControls.controlsBar.faded is false
     10PASS mediaControls.faded is false
    1111
    1212Now enter and exit the media controls, the controls bar should remain visible
    13 PASS mediaControls.controlsBar.faded is false
     13PASS mediaControls.faded is false
    1414
    1515mediaControls.hideTracksPanel()
    16 PASS mediaControls.controlsBar.faded is true
     16PASS mediaControls.faded is true
    1717
    1818PASS successfullyParsed is true
  • trunk/LayoutTests/media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading.html

    r214545 r228010  
    2323let trackElement;
    2424
    25 mediaControls.controlsBar.autoHideDelay = 250;
    26 mediaControls.controlsBar.fadesWhileIdle = true;
     25mediaControls.autoHideController.autoHideDelay = 250;
     26mediaControls.autoHideController.fadesWhileIdle = true;
    2727
    2828debug("mediaControls.showTracksPanel()");
     
    3434        debug("");
    3535        debug("We've waited long enough so that the controls bar should be faded should the tracks panel not be visible");
    36         shouldBeFalse("mediaControls.controlsBar.faded");
     36        shouldBeFalse("mediaControls.faded");
    3737
    3838        debug("");
     
    4141        eventSender.mouseMoveTo(650, 10);
    4242        eventSender.mouseMoveTo(700, 10);
    43         shouldBeFalse("mediaControls.controlsBar.faded");
     43        shouldBeFalse("mediaControls.faded");
    4444
    4545        // And now dismiss the tracks panel and check that the controls bar
     
    4848        debug("mediaControls.hideTracksPanel()");
    4949        mediaControls.hideTracksPanel();
    50         shouldBeTrue("mediaControls.controlsBar.faded");
     50        shouldBeTrue("mediaControls.faded");
    5151
    5252        debug("");
    5353        mediaControls.element.remove();
    5454        finishJSTest();
    55     }, mediaControls.controlsBar.autoHideDelay);
     55    }, mediaControls.autoHideController.autoHideDelay);
    5656});
    5757
  • trunk/LayoutTests/media/modern-media-controls/tracks-support/tracks-support-audio-tracks-expected.txt

    r208585 r228010  
    44
    55
    6 PASS mediaController.controls.tracksButton.enabled is true
     6The tracks button should be disabled initially as we wait for metadata and audio tracks to be added.
     7PASS mediaController.controls.tracksButton.enabled is false
     8
     9Eventually the audio tracks will be added and the tracks button will be enabled.
     10PASS mediaController.controls.tracksButton.enabled became true
    711
    812PASS successfullyParsed is true
  • trunk/LayoutTests/media/modern-media-controls/tracks-support/tracks-support-audio-tracks.html

    r208585 r228010  
    1414const mediaController = createControls(shadowRoot, media, null);
    1515
    16 media.addEventListener("loadedmetadata", function() {
    17     shouldBeTrue("mediaController.controls.tracksButton.enabled");
     16debug("The tracks button should be disabled initially as we wait for metadata and audio tracks to be added.");
     17shouldBeFalse("mediaController.controls.tracksButton.enabled");
     18
     19debug("");
     20debug("Eventually the audio tracks will be added and the tracks button will be enabled.");
     21shouldBecomeEqual("mediaController.controls.tracksButton.enabled", "true", () => {
    1822    debug("");
    1923    shadowRoot.host.remove();
  • trunk/LayoutTests/media/modern-media-controls/tracks-support/tracks-support-captions-offset-with-controls-bar-expected.txt

    r214381 r228010  
    44
    55
    6 PASS getComputedStyle(shadowRoot.lastElementChild.firstElementChild).height is "calc(100% - 25px)"
     6PASS getComputedStyle(shadowRoot.lastElementChild.firstElementChild).height is "calc((100% - 31px) - 6px)"
    77PASS successfullyParsed is true
    88
  • trunk/LayoutTests/media/modern-media-controls/tracks-support/tracks-support-captions-offset-with-controls-bar.html

    r214381 r228010  
    1616    media.pause();
    1717
    18     shouldBeEqualToString("getComputedStyle(shadowRoot.lastElementChild.firstElementChild).height", "calc(100% - 25px)");
     18    shouldBeEqualToString("getComputedStyle(shadowRoot.lastElementChild.firstElementChild).height", "calc((100% - 31px) - 6px)");
    1919    media.remove();
    2020    finishJSTest();
  • trunk/LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen-expected.txt

    r213994 r228010  
    88PASS internals.shadowRoot(media).querySelector("button.tracks") became different from null
    99PASS internals.shadowRoot(media).querySelector("button.tracks").getBoundingClientRect().width became different from 0
    10 PASS internals.shadowRoot(media).querySelector("button.tracks").getBoundingClientRect().right became 583
     10PASS internals.shadowRoot(media).querySelector("button.tracks").getBoundingClientRect().right became 582
    1111PASS internals.shadowRoot(media).querySelector('.tracks-panel') became different from null
    12 PASS internals.shadowRoot(media).querySelector('.tracks-panel').style.right is "217px"
     12PASS internals.shadowRoot(media).querySelector('.tracks-panel').style.right is "218px"
    1313PASS internals.shadowRoot(media).querySelector('.tracks-panel').style.bottom is "101px"
    1414
  • trunk/LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html

    r213994 r228010  
    1818    shouldBecomeDifferent(`internals.shadowRoot(media).querySelector("button.tracks")`, "null", () => {
    1919        shouldBecomeDifferent(`internals.shadowRoot(media).querySelector("button.tracks").getBoundingClientRect().width`, "0", () => {
    20             shouldBecomeEqual(`internals.shadowRoot(media).querySelector("button.tracks").getBoundingClientRect().right`, "583", () => {
     20            shouldBecomeEqual(`internals.shadowRoot(media).querySelector("button.tracks").getBoundingClientRect().right`, "582", () => {
    2121                pressOnElement(internals.shadowRoot(media).querySelector("button.tracks"));
    2222                shouldBecomeDifferent(`internals.shadowRoot(media).querySelector('.tracks-panel')`, "null", () => {
    23                     shouldBeEqualToString("internals.shadowRoot(media).querySelector('.tracks-panel').style.right", "217px");
     23                    shouldBeEqualToString("internals.shadowRoot(media).querySelector('.tracks-panel').style.right", "218px");
    2424                    shouldBeEqualToString("internals.shadowRoot(media).querySelector('.tracks-panel').style.bottom", "101px");
    2525                    debug("");
  • trunk/LayoutTests/media/modern-media-controls/tracks-support/tracks-support-text-tracks-expected.txt

    r208585 r228010  
    44
    55
    6 PASS mediaController.controls.tracksButton.enabled is true
     6The tracks button should be disabled initially as we wait for metadata and text tracks to be added.
     7PASS mediaController.controls.tracksButton.enabled is false
     8
     9Eventually the text tracks will be added and the tracks button will be enabled.
     10PASS mediaController.controls.tracksButton.enabled became true
    711
    812PASS successfullyParsed is true
  • trunk/LayoutTests/media/modern-media-controls/tracks-support/tracks-support-text-tracks.html

    r208585 r228010  
    22<script src="../resources/media-controls-loader.js" type="text/javascript"></script>
    33<body>
    4 <video src="../../content/counting-subtitled.m4v" style="width: 320px; height: 240px;"></video>
     4<video src="../../content/counting-subtitled.m4v" style="width: 320px; height: 240px;" preload="preload"></video>
    55<div id="shadow"></div>
    66<script type="text/javascript">
     
    1414const mediaController = createControls(shadowRoot, media, null);
    1515
    16 media.addEventListener("loadedmetadata", function() {
    17     shouldBeTrue("mediaController.controls.tracksButton.enabled");
     16debug("The tracks button should be disabled initially as we wait for metadata and text tracks to be added.");
     17shouldBeFalse("mediaController.controls.tracksButton.enabled");
     18
     19debug("");
     20debug("Eventually the text tracks will be added and the tracks button will be enabled.");
     21shouldBecomeEqual("mediaController.controls.tracksButton.enabled", "true", () => {
    1822    debug("");
    1923    shadowRoot.host.remove();
  • trunk/LayoutTests/platform/mac/TestExpectations

    r228009 r228010  
    14931493media/modern-media-controls/time-label/ios-time-label.html [ Skip ]
    14941494media/modern-media-controls/time-labels-support [ Pass ]
    1495 media/modern-media-controls/tracks-panel/tracks-panel-up-click-outside-media-does-not-dimiss-media-controls-when-media-is-paused.html [ Pass ]
    1496 media/modern-media-controls/tracks-panel/tracks-panel-up-click-over-media-does-not-dimiss-media-controls-when-media-is-playing.html [ Pass ]
     1495media/modern-media-controls/tracks-panel [ Pass ]
     1496media/modern-media-controls/tracks-support [ Pass ]
    14971497media/modern-media-controls/tracks-button [ Pass ]
    14981498media/modern-media-controls/volume-up-support [ Pass ]
     
    15161516webkit.org/b/178126 media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-enter-over-controls-bar.html [ Skip ]
    15171517webkit.org/b/178127 media/modern-media-controls/media-controller/media-controller-video-with-only-audio.html [ Skip ]
     1518webkit.org/b/182425 media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it.html [ Failure ]
    15181519
    15191520# This test relies on the control overlay not being visible in the top left. But the test now fails on Mac because
  • trunk/Source/WebCore/ChangeLog

    r228006 r228010  
     12018-02-02  Antoine Quint  <graouts@apple.com>
     2
     3        [Modern Media Controls] Turn media/modern-media-controls/tracks-panel and media/modern-media-controls/tracks-support back on
     4        https://bugs.webkit.org/show_bug.cgi?id=182426
     5
     6        Reviewed by Dean Jackson.
     7
     8        Ensure that the tracks panel isn't dismissed by updating the layout.
     9
     10        * Modules/modern-media-controls/controls/inline-media-controls.js:
     11        (InlineMediaControls.prototype.layout):
     12
    1132018-02-02  Commit Queue  <commit-queue@webkit.org>
    214
  • trunk/Source/WebCore/Modules/modern-media-controls/controls/inline-media-controls.js

    r227904 r228010  
    129129            return;
    130130
     131        // Ensure the tracks panel is a child if it were presented.
     132        if (this.tracksPanel.presented)
     133            children.push(this.tracksPanel);
     134
    131135        // Update the top left controls bar.
    132136        this._topLeftControlsBarContainer.children = this._topLeftContainerButtons();
Note: See TracChangeset for help on using the changeset viewer.