Diff
Modified: trunk/LayoutTests/ChangeLog (218890 => 218891)
--- trunk/LayoutTests/ChangeLog 2017-06-28 20:58:07 UTC (rev 218890)
+++ trunk/LayoutTests/ChangeLog 2017-06-28 20:59:06 UTC (rev 218891)
@@ -1,3 +1,23 @@
+2017-06-28 Antoine Quint <[email protected]>
+
+ Volume controls should be hidden when AirPlay is active
+ https://bugs.webkit.org/show_bug.cgi?id=173933
+ <rdar://problem/33011931>
+
+ Reviewed by Dean Jackson.
+
+ Expand the AirplaySupport testing to check that the mute button's enabled state is set to "false"
+ in AirPlay and add new tests to check that volume controls are correctly hidden when the mute button
+ is disabled.
+
+ * media/modern-media-controls/airplay-support/airplay-support-expected.txt:
+ * media/modern-media-controls/airplay-support/airplay-support.html:
+ * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-controls-hidden-when-mute-button-disabled-expected.txt: Added.
+ * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-controls-hidden-when-mute-button-disabled.html: Added.
+ * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-top-right-controls-bar-hidden-when-mute-button-disabled-expected.txt: Added.
+ * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-top-right-controls-bar-hidden-when-mute-button-disabled.html: Added.
+ * platform/mac/TestExpectations:
+
2017-06-28 Matt Lewis <[email protected]>
Marked imported/w3c/web-platform-tests/IndexedDB/idbindex_getAllKeys.html as flaky.
Modified: trunk/LayoutTests/media/modern-media-controls/airplay-support/airplay-support-expected.txt (218890 => 218891)
--- trunk/LayoutTests/media/modern-media-controls/airplay-support/airplay-support-expected.txt 2017-06-28 20:58:07 UTC (rev 218890)
+++ trunk/LayoutTests/media/modern-media-controls/airplay-support/airplay-support-expected.txt 2017-06-28 20:59:06 UTC (rev 218891)
@@ -6,10 +6,12 @@
Making AirPlay routes available.
PASS mediaController.controls.airplayButton.enabled is true
PASS mediaController.controls.airplayButton.on is false
+PASS mediaController.controls.muteButton.enabled is true
Entering AirPlay playback mode.
PASS mediaController.controls.airplayButton.enabled is true
PASS mediaController.controls.airplayButton.on is true
+PASS mediaController.controls.muteButton.enabled is false
PASS successfullyParsed is true
Modified: trunk/LayoutTests/media/modern-media-controls/airplay-support/airplay-support.html (218890 => 218891)
--- trunk/LayoutTests/media/modern-media-controls/airplay-support/airplay-support.html 2017-06-28 20:58:07 UTC (rev 218890)
+++ trunk/LayoutTests/media/modern-media-controls/airplay-support/airplay-support.html 2017-06-28 20:59:06 UTC (rev 218891)
@@ -42,6 +42,7 @@
shouldBeTrue("mediaController.controls.airplayButton.enabled");
shouldBeFalse("mediaController.controls.airplayButton.on");
+ shouldBeTrue("mediaController.controls.muteButton.enabled");
enterAirPlay();
}
@@ -62,6 +63,7 @@
shouldBeTrue("mediaController.controls.airplayButton.enabled");
shouldBeTrue("mediaController.controls.airplayButton.on");
+ shouldBeFalse("mediaController.controls.muteButton.enabled");
debug("");
container.remove();
Added: trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-controls-hidden-when-mute-button-disabled-expected.txt (0 => 218891)
--- trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-controls-hidden-when-mute-button-disabled-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-controls-hidden-when-mute-button-disabled-expected.txt 2017-06-28 20:59:06 UTC (rev 218891)
@@ -0,0 +1,15 @@
+Testing the volume controls aren't visible when the mute button is disabled.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Mute button is enabled
+PASS leftContainer.visible is true
+
+Mute button is disabled
+PASS leftContainer.visible is false
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-controls-hidden-when-mute-button-disabled.html (0 => 218891)
--- trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-controls-hidden-when-mute-button-disabled.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-controls-hidden-when-mute-button-disabled.html 2017-06-28 20:59:06 UTC (rev 218891)
@@ -0,0 +1,24 @@
+<script src=""
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<body>
+<script type="text/_javascript_">
+
+description("Testing the volume controls aren't visible when the mute button is disabled.");
+
+const mediaControls = new MacOSFullscreenMediaControls({ width: 250, height: 250 });
+const leftContainer = mediaControls.bottomControlsBar.children[1];
+
+debug("Mute button is enabled");
+shouldBeTrue("leftContainer.visible");
+
+debug("")
+debug("Mute button is disabled");
+mediaControls.muteButton.enabled = false;
+shouldBeFalse("leftContainer.visible");
+
+debug("");
+
+</script>
+<script src=""
+</body>
Added: trunk/LayoutTests/media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-top-right-controls-bar-hidden-when-mute-button-disabled-expected.txt (0 => 218891)
--- trunk/LayoutTests/media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-top-right-controls-bar-hidden-when-mute-button-disabled-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-top-right-controls-bar-hidden-when-mute-button-disabled-expected.txt 2017-06-28 20:59:06 UTC (rev 218891)
@@ -0,0 +1,17 @@
+Testing the top right controls bar isn't visible when the mute button is disabled.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Mute button is enabled
+PASS mediaControls.muteButton.parent.parent is mediaControls.topRightControlsBar
+PASS mediaControls.topRightControlsBar.parent is mediaControls
+
+Mute button is disabled
+PASS mediaControls.muteButton.parent.parent is mediaControls.topRightControlsBar
+PASS mediaControls.topRightControlsBar.parent is null
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-top-right-controls-bar-hidden-when-mute-button-disabled.html (0 => 218891)
--- trunk/LayoutTests/media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-top-right-controls-bar-hidden-when-mute-button-disabled.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-top-right-controls-bar-hidden-when-mute-button-disabled.html 2017-06-28 20:59:06 UTC (rev 218891)
@@ -0,0 +1,25 @@
+<script src=""
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<body>
+<script type="text/_javascript_">
+
+description("Testing the top right controls bar isn't visible when the mute button is disabled.");
+
+const mediaControls = new MacOSInlineMediaControls({ width: 250, height: 250 });
+
+debug("Mute button is enabled");
+shouldBe("mediaControls.muteButton.parent.parent", "mediaControls.topRightControlsBar");
+shouldBe("mediaControls.topRightControlsBar.parent", "mediaControls");
+
+debug("")
+debug("Mute button is disabled");
+mediaControls.muteButton.enabled = false;
+shouldBe("mediaControls.muteButton.parent.parent", "mediaControls.topRightControlsBar");
+shouldBeNull("mediaControls.topRightControlsBar.parent");
+
+debug("");
+
+</script>
+<script src=""
+</body>
Modified: trunk/LayoutTests/platform/mac/TestExpectations (218890 => 218891)
--- trunk/LayoutTests/platform/mac/TestExpectations 2017-06-28 20:58:07 UTC (rev 218890)
+++ trunk/LayoutTests/platform/mac/TestExpectations 2017-06-28 20:59:06 UTC (rev 218891)
@@ -1555,7 +1555,9 @@
media/modern-media-controls/layout-node [ Pass ]
media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button.html [ Pass ]
media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag.html [ Pass ]
+media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-controls-hidden-when-mute-button-disabled.html [ Pass ]
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-mute-button-in-bottom-or-top-right-controls-bar.html [ Pass ]
+media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-top-right-controls-bar-hidden-when-mute-button-disabled.html [ Pass ]
media/modern-media-controls/media-documents [ Pass ]
media/modern-media-controls/mute-button [ Pass ]
media/modern-media-controls/mute-support [ Pass ]
Modified: trunk/Source/WebCore/ChangeLog (218890 => 218891)
--- trunk/Source/WebCore/ChangeLog 2017-06-28 20:58:07 UTC (rev 218890)
+++ trunk/Source/WebCore/ChangeLog 2017-06-28 20:59:06 UTC (rev 218891)
@@ -1,3 +1,27 @@
+2017-06-28 Antoine Quint <[email protected]>
+
+ Volume controls should be hidden when AirPlay is active
+ https://bugs.webkit.org/show_bug.cgi?id=173933
+ <rdar://problem/33011931>
+
+ Reviewed by Dean Jackson.
+
+ Ensure we don't show any volume controls during AirPlay. We set the mute button's enabled state to "false"
+ when AirPlay is active and key off this enabled stated to control the display of all volume-related controls
+ throughout the UI.
+
+ Tests: media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-controls-hidden-when-mute-button-disabled.html
+ media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-top-right-controls-bar-hidden-when-mute-button-disabled.html
+
+ * Modules/modern-media-controls/controls/inline-media-controls.js:
+ (InlineMediaControls.prototype._addTopRightBarWithMuteButtonToChildren):
+ (InlineMediaControls):
+ * Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:
+ (MacOSFullscreenMediaControls.prototype.layout):
+ * Modules/modern-media-controls/media/airplay-support.js:
+ (AirplaySupport.prototype.syncControl):
+ (AirplaySupport):
+
2017-06-28 Konstantin Tokarev <[email protected]>
Remove excessive includes from WebCore/css sources
Modified: trunk/Source/WebCore/Modules/modern-media-controls/controls/inline-media-controls.js (218890 => 218891)
--- trunk/Source/WebCore/Modules/modern-media-controls/controls/inline-media-controls.js 2017-06-28 20:58:07 UTC (rev 218890)
+++ trunk/Source/WebCore/Modules/modern-media-controls/controls/inline-media-controls.js 2017-06-28 20:59:06 UTC (rev 218891)
@@ -275,6 +275,9 @@
_addTopRightBarWithMuteButtonToChildren(children)
{
+ if (!this.muteButton.enabled)
+ return;
+
delete this.muteButton.dropped;
this.muteButton.style = Button.Styles.Bar;
this._topRightControlsBarContainer.buttons = [this.muteButton];
Modified: trunk/Source/WebCore/Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js (218890 => 218891)
--- trunk/Source/WebCore/Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js 2017-06-28 20:58:07 UTC (rev 218890)
+++ trunk/Source/WebCore/Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js 2017-06-28 20:59:06 UTC (rev 218891)
@@ -123,6 +123,8 @@
this._rightContainer.buttonMargin = buttonMargin;
+ this._leftContainer.visible = this.muteButton.enabled;
+
this._leftContainer.layout();
this._centerContainer.layout();
this._rightContainer.layout();
Modified: trunk/Source/WebCore/Modules/modern-media-controls/media/airplay-support.js (218890 => 218891)
--- trunk/Source/WebCore/Modules/modern-media-controls/media/airplay-support.js 2017-06-28 20:58:07 UTC (rev 218890)
+++ trunk/Source/WebCore/Modules/modern-media-controls/media/airplay-support.js 2017-06-28 20:59:06 UTC (rev 218891)
@@ -55,6 +55,7 @@
{
this.control.enabled = !!this._routesAvailable;
this.control.on = this.mediaController.media.webkitCurrentPlaybackTargetIsWireless;
+ this.mediaController.controls.muteButton.enabled = !this.control.on;
}
}