Changeset 213920 in webkit


Ignore:
Timestamp:
Mar 14, 2017 11:29:14 AM (7 years ago)
Author:
commit-queue@webkit.org
Message:

[Modern Media Controls] Fullscreen controls during Live Broadcast is completely broken
https://bugs.webkit.org/show_bug.cgi?id=169354
<rdar://problem/30636370>

Patch by Antoine Quint <Antoine Quint> on 2017-03-14
Reviewed by Dean Jackson.

Source/WebCore:

When playing a Live Broadcast video in fullscreen, we should not show any scrubbing-related
piece of UI and ensure that we show the status label.

Test: http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html

  • Modules/modern-media-controls/controls/macos-fullscreen-media-controls.css:

(.media-controls.mac.fullscreen > .controls-bar .status-label):

  • Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:

(MacOSFullscreenMediaControls.prototype.layout):

  • Modules/modern-media-controls/media/seek-support.js:

(SeekSupport.prototype.get mediaEvents):
(SeekSupport.prototype.syncControl):

LayoutTests:

Add a new test, skipped on iOS, to check scrubbing controls are disabled in fullscreen
for a Live Broadcast video and that the status label is visible. We also rebaseline a
couple of tests now that the time control is added on first layout instead of inside
the constructor.

  • http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast-expected.txt: Added.
  • http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html: Added.
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles-expected.txt:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles.html:
  • platform/ios-simulator/TestExpectations:
Location:
trunk
Files:
3 added
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r213919 r213920  
     12017-03-14  Antoine Quint  <graouts@apple.com>
     2
     3        [Modern Media Controls] Fullscreen controls during Live Broadcast is completely broken
     4        https://bugs.webkit.org/show_bug.cgi?id=169354
     5        <rdar://problem/30636370>
     6
     7        Reviewed by Dean Jackson.
     8
     9        Add a new test, skipped on iOS, to check scrubbing controls are disabled in fullscreen
     10        for a Live Broadcast video and that the status label is visible. We also rebaseline a
     11        couple of tests now that the time control is added on first layout instead of inside
     12        the constructor.
     13
     14        * http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast-expected.txt: Added.
     15        * http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html: Added.
     16        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt:
     17        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html:
     18        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles-expected.txt:
     19        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles.html:
     20        * platform/ios-simulator/TestExpectations:
     21
    1222017-03-14  Ryan Haddad  <ryanhaddad@apple.com>
    223
  • trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt

    r212280 r213920  
    99
    1010Controls bar
    11 PASS mediaControls.controlsBar.children.length is 5
     11PASS mediaControls.controlsBar.children.length is 4
    1212PASS mediaControls.controlsBar.children[1] instanceof ButtonsContainer is true
    1313PASS mediaControls.controlsBar.children[2] instanceof ButtonsContainer is true
    1414PASS mediaControls.controlsBar.children[3] instanceof ButtonsContainer is true
    15 PASS mediaControls.controlsBar.children[4] is mediaControls.timeControl
    1615
    1716Left container
  • trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html

    r212280 r213920  
    1414debug("");
    1515debug("Controls bar");
    16 shouldBe("mediaControls.controlsBar.children.length", "5");
     16shouldBe("mediaControls.controlsBar.children.length", "4");
    1717shouldBeTrue("mediaControls.controlsBar.children[1] instanceof ButtonsContainer");
    1818shouldBeTrue("mediaControls.controlsBar.children[2] instanceof ButtonsContainer");
    1919shouldBeTrue("mediaControls.controlsBar.children[3] instanceof ButtonsContainer");
    20 shouldBe("mediaControls.controlsBar.children[4]", "mediaControls.timeControl");
    2120
    2221debug("");
  • trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles-expected.txt

    r212280 r213920  
    44
    55
     6PASS window.getComputedStyle(mediaControls.timeControl.element).width became "457px"
    67PASS window.getComputedStyle(mediaControls.timeControl.element).left is "10px"
    78PASS window.getComputedStyle(mediaControls.timeControl.element).top is "48px"
    8 PASS window.getComputedStyle(mediaControls.timeControl.element).width is "457px"
    99PASS window.getComputedStyle(mediaControls.timeControl.scrubber.element).top is "-3px"
    1010PASS window.getComputedStyle(mediaControls.timeControl.elapsedTimeLabel.element).fontSize is "12px"
  • trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles.html

    r212280 r213920  
    1010
    1111const mediaControls = new MacOSFullscreenMediaControls;
     12document.body.appendChild(mediaControls.element);
    1213
    13 scheduler.frameDidFire = function()
    14 {
    15     document.body.appendChild(mediaControls.element);
    16 
     14shouldBecomeEqualToString("window.getComputedStyle(mediaControls.timeControl.element).width", "457px", () => {
    1715    shouldBeEqualToString("window.getComputedStyle(mediaControls.timeControl.element).left", "10px");
    1816    shouldBeEqualToString("window.getComputedStyle(mediaControls.timeControl.element).top", "48px");
    19     shouldBeEqualToString("window.getComputedStyle(mediaControls.timeControl.element).width", "457px");
    2017    shouldBeEqualToString("window.getComputedStyle(mediaControls.timeControl.scrubber.element).top", "-3px");
    2118    shouldBeEqualToString("window.getComputedStyle(mediaControls.timeControl.elapsedTimeLabel.element).fontSize", "12px");
     
    2623
    2724    finishMediaControlsTest();
    28 };
     25});
    2926
    3027</script>
  • trunk/LayoutTests/platform/ios-simulator/TestExpectations

    r213878 r213920  
    28102810media/modern-media-controls/controls-visibility-support/controls-visibility-support-fullscreen-on-video.html [ Skip ]
    28112811media/modern-media-controls/controls-visibility-support/controls-visibility-support-fullscreen-on-parent-element.html [ Skip ]
     2812http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html [ Skip ]
    28122813
    28132814# These tests are macOS-specific or mouse-specific
  • trunk/Source/WebCore/ChangeLog

    r213917 r213920  
     12017-03-14  Antoine Quint  <graouts@apple.com>
     2
     3        [Modern Media Controls] Fullscreen controls during Live Broadcast is completely broken
     4        https://bugs.webkit.org/show_bug.cgi?id=169354
     5        <rdar://problem/30636370>
     6
     7        Reviewed by Dean Jackson.
     8
     9        When playing a Live Broadcast video in fullscreen, we should not show any scrubbing-related
     10        piece of UI and ensure that we show the status label.
     11
     12        Test: http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html
     13
     14        * Modules/modern-media-controls/controls/macos-fullscreen-media-controls.css:
     15        (.media-controls.mac.fullscreen > .controls-bar .status-label):
     16        * Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:
     17        (MacOSFullscreenMediaControls.prototype.layout):
     18        * Modules/modern-media-controls/media/seek-support.js:
     19        (SeekSupport.prototype.get mediaEvents):
     20        (SeekSupport.prototype.syncControl):
     21
    1222017-03-14  Joseph Pecoraro  <pecoraro@apple.com>
    223
  • trunk/Source/WebCore/Modules/modern-media-controls/controls/macos-fullscreen-media-controls.css

    r213641 r213920  
    118118    top: -3px;
    119119}
     120
     121/* Status Label */
     122
     123.media-controls.mac.fullscreen > .controls-bar .status-label {
     124    position: absolute;
     125    left: 0;
     126    right: 0;
     127    bottom: 13px;
     128    text-align: center;
     129}
  • trunk/Source/WebCore/Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js

    r213641 r213920  
    7272        });
    7373
    74         this.controlsBar.children = [new BackgroundTint, this._leftContainer, this._centerContainer, this._rightContainer, this.timeControl];
     74        this.controlsBar.children = [new BackgroundTint, this._leftContainer, this._centerContainer, this._rightContainer];
    7575
    7676        this.controlsBar.element.addEventListener("mousedown", this);
     
    109109        this._rightContainer.layout();
    110110
    111         this.timeControl.width = FullscreenTimeControlWidth;
     111        if (this.statusLabel.enabled && this.statusLabel.parent !== this.controlsBar) {
     112            this.timeControl.remove();
     113            this.controlsBar.addChild(this.statusLabel);
     114        } else if (!this.statusLabel.enabled && this.timeControl.parent !== this.controlsBar) {
     115            this.statusLabel.remove();
     116            this.controlsBar.addChild(this.timeControl);
     117            this.timeControl.width = FullscreenTimeControlWidth;
     118        }
    112119    }
    113120
  • trunk/Source/WebCore/Modules/modern-media-controls/media/seek-support.js

    r209271 r213920  
    2929    // Protected
    3030
     31    get mediaEvents()
     32    {
     33        return ["durationchange"];
     34    }
     35
    3136    get multiplier()
    3237    {
     
    4045        else
    4146            this._stopSeeking();
     47    }
     48
     49    syncControl()
     50    {
     51        this.control.enabled = this.mediaController.media.duration !== Number.POSITIVE_INFINITY;
    4252    }
    4353
Note: See TracChangeset for help on using the changeset viewer.