Diff
Modified: trunk/LayoutTests/ChangeLog (207586 => 207587)
--- trunk/LayoutTests/ChangeLog 2016-10-20 06:42:24 UTC (rev 207586)
+++ trunk/LayoutTests/ChangeLog 2016-10-20 06:43:59 UTC (rev 207587)
@@ -1,3 +1,29 @@
+2016-10-19 Antoine Quint <grao...@apple.com>
+
+ [Modern Media Controls] Media Controller: mute support
+ https://bugs.webkit.org/show_bug.cgi?id=163677
+ <rdar://problem/28851582>
+
+ Reviewed by Dean Jackson.
+
+ New tests for the MuteSupport class and adding the new resource to other MediaController tests.
+
+ * media/modern-media-controls/media-controller/media-controller-constructor.html:
+ * media/modern-media-controls/media-controller/media-controller-resize.html:
+ * media/modern-media-controls/mute-support/mute-support-button-click-expected.txt: Added.
+ * media/modern-media-controls/mute-support/mute-support-button-click.html: Added.
+ * media/modern-media-controls/mute-support/mute-support-media-api-expected.txt: Added.
+ * media/modern-media-controls/mute-support/mute-support-media-api.html: Added.
+ * media/modern-media-controls/mute-support/mute-support-muted-expected.txt: Added.
+ * media/modern-media-controls/mute-support/mute-support-muted.html: Added.
+ * media/modern-media-controls/start-support/start-support-audio.html:
+ * media/modern-media-controls/start-support/start-support-autoplay.html:
+ * media/modern-media-controls/start-support/start-support-click-to-start.html:
+ * media/modern-media-controls/start-support/start-support-error.html:
+ * media/modern-media-controls/start-support/start-support-fullscreen.html:
+ * media/modern-media-controls/start-support/start-support-manual-play.html:
+ * media/modern-media-controls/start-support/start-support-no-source.html:
+
2016-10-19 Jer Noble <jer.no...@apple.com>
REGRESSION (r206025): All YouTube videos play with black bars on all four sides
Modified: trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-constructor.html (207586 => 207587)
--- trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-constructor.html 2016-10-20 06:42:24 UTC (rev 207586)
+++ trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-constructor.html 2016-10-20 06:43:59 UTC (rev 207587)
@@ -25,9 +25,10 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
-<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<body>
<video src=""
Modified: trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html (207586 => 207587)
--- trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html 2016-10-20 06:42:24 UTC (rev 207586)
+++ trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html 2016-10-20 06:43:59 UTC (rev 207587)
@@ -25,9 +25,10 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
-<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<body>
<video src="" style="width: 320px; height: 240px;"></video>
Added: trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-button-click-expected.txt (0 => 207587)
--- trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-button-click-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-button-click-expected.txt 2016-10-20 06:43:59 UTC (rev 207587)
@@ -0,0 +1,23 @@
+Testing the MuteSupport behavior by clicking on the mute button.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS mediaController.controls.muteButton.muted is false
+
+Dispatching click event to the mute button
+
+volumechange event was dispatched
+PASS media.muted is true
+PASS mediaController.controls.muteButton.muted is true
+
+Dispatching click event to the mute button
+
+volumechange event was dispatched
+PASS media.muted is false
+PASS mediaController.controls.muteButton.muted is false
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Copied: trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-button-click.html (from rev 207586, trunk/LayoutTests/media/modern-media-controls/start-support/start-support-manual-play.html) (0 => 207587)
--- trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-button-click.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-button-click.html 2016-10-20 06:43:59 UTC (rev 207587)
@@ -0,0 +1,82 @@
+<script src=""
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<body>
+<video src="" style="width: 320px; height: 240px;"></video>
+<div id="shadow"></div>
+<script type="text/_javascript_">
+
+window.jsTestIsAsync = true;
+
+description("Testing the <code>MuteSupport</code> behavior by clicking on the mute button.");
+
+iconService.directoryPath = "../../../../Source/WebCore/Modules/modern-media-controls/images";
+
+const shadowRoot = document.querySelector("div#shadow").attachShadow({ mode: "open" });
+const media = document.querySelector("video");
+const mediaController = createControls(shadowRoot, media, null);
+
+shouldBeFalse("mediaController.controls.muteButton.muted");
+
+let numberOfEvents = 0;
+media.addEventListener("volumechange", function() {
+ debug("");
+ debug("volumechange event was dispatched");
+
+ numberOfEvents++;
+
+ if (numberOfEvents == 1) {
+ shouldBeTrue("media.muted");
+ shouldBeTrue("mediaController.controls.muteButton.muted");
+ clickMuteButton();
+ } else if (numberOfEvents == 2) {
+ shouldBeFalse("media.muted");
+ shouldBeFalse("mediaController.controls.muteButton.muted");
+ debug("");
+ shadowRoot.host.remove();
+ media.remove();
+ finishJSTest();
+ }
+});
+
+function clickMuteButton()
+{
+ debug("");
+ debug("Dispatching click event to the mute button");
+ mediaController.controls.muteButton.element.click();
+}
+
+clickMuteButton();
+
+</script>
+<script src=""
+</body>
Added: trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-media-api-expected.txt (0 => 207587)
--- trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-media-api-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-media-api-expected.txt 2016-10-20 06:43:59 UTC (rev 207587)
@@ -0,0 +1,19 @@
+Testing the MuteSupport behavior by using the media API.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS mediaController.controls.muteButton.muted is false
+
+volumechange event was dispatched
+PASS media.muted is true
+PASS mediaController.controls.muteButton.muted is true
+
+volumechange event was dispatched
+PASS media.muted is false
+PASS mediaController.controls.muteButton.muted is false
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Copied: trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-media-api.html (from rev 207586, trunk/LayoutTests/media/modern-media-controls/start-support/start-support-manual-play.html) (0 => 207587)
--- trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-media-api.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-media-api.html 2016-10-20 06:43:59 UTC (rev 207587)
@@ -0,0 +1,75 @@
+<script src=""
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<body>
+<video src="" style="width: 320px; height: 240px;"></video>
+<div id="shadow"></div>
+<script type="text/_javascript_">
+
+window.jsTestIsAsync = true;
+
+description("Testing the <code>MuteSupport</code> behavior by using the media API.");
+
+iconService.directoryPath = "../../../../Source/WebCore/Modules/modern-media-controls/images";
+
+const shadowRoot = document.querySelector("div#shadow").attachShadow({ mode: "open" });
+const media = document.querySelector("video");
+const mediaController = createControls(shadowRoot, media, null);
+
+shouldBeFalse("mediaController.controls.muteButton.muted");
+
+let numberOfEvents = 0;
+media.addEventListener("volumechange", function() {
+ debug("");
+ debug("volumechange event was dispatched");
+
+ numberOfEvents++;
+
+ if (numberOfEvents == 1) {
+ shouldBeTrue("media.muted");
+ shouldBeTrue("mediaController.controls.muteButton.muted");
+ media.muted = false;
+ } else if (numberOfEvents == 2) {
+ shouldBeFalse("media.muted");
+ shouldBeFalse("mediaController.controls.muteButton.muted");
+ debug("");
+ shadowRoot.host.remove();
+ media.remove();
+ finishJSTest();
+ }
+});
+
+media.muted = true;
+
+</script>
+<script src=""
+</body>
Added: trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-muted-expected.txt (0 => 207587)
--- trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-muted-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-muted-expected.txt 2016-10-20 06:43:59 UTC (rev 207587)
@@ -0,0 +1,11 @@
+Testing the MuteSupport behavior by using the muted HTML attribute.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS mediaController.controls.muteButton.muted is true
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Copied: trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-muted.html (from rev 207586, trunk/LayoutTests/media/modern-media-controls/start-support/start-support-autoplay.html) (0 => 207587)
--- trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-muted.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-muted.html 2016-10-20 06:43:59 UTC (rev 207587)
@@ -0,0 +1,54 @@
+<script src=""
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
+<body>
+<video src="" style="width: 320px; height: 240px;" muted></video>
+<div id="shadow"></div>
+<script type="text/_javascript_">
+
+description("Testing the <code>MuteSupport</code> behavior by using the muted HTML attribute.");
+
+iconService.directoryPath = "../../../../Source/WebCore/Modules/modern-media-controls/images";
+
+const shadowRoot = document.querySelector("div#shadow").attachShadow({ mode: "open" });
+const media = document.querySelector("video");
+const mediaController = createControls(shadowRoot, media, null);
+
+shouldBeTrue("mediaController.controls.muteButton.muted");
+
+debug("");
+shadowRoot.host.remove();
+media.remove();
+
+</script>
+<script src=""
+</body>
Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-audio.html (207586 => 207587)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-audio.html 2016-10-20 06:42:24 UTC (rev 207586)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-audio.html 2016-10-20 06:43:59 UTC (rev 207587)
@@ -25,9 +25,10 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
-<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<body>
<audio src="" style="width: 320px; height: 240px;"></audio>
Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-autoplay.html (207586 => 207587)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-autoplay.html 2016-10-20 06:42:24 UTC (rev 207586)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-autoplay.html 2016-10-20 06:43:59 UTC (rev 207587)
@@ -25,9 +25,10 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
-<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<body>
<video src="" style="width: 320px; height: 240px;" autoplay></video>
Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-click-to-start.html (207586 => 207587)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-click-to-start.html 2016-10-20 06:42:24 UTC (rev 207586)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-click-to-start.html 2016-10-20 06:43:59 UTC (rev 207587)
@@ -25,9 +25,10 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
-<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<body>
<video src="" style="width: 320px; height: 240px;"></video>
Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-error.html (207586 => 207587)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-error.html 2016-10-20 06:42:24 UTC (rev 207586)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-error.html 2016-10-20 06:43:59 UTC (rev 207587)
@@ -25,9 +25,10 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
-<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<body>
<video src="" style="width: 320px; height: 240px;"></video>
Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-fullscreen.html (207586 => 207587)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-fullscreen.html 2016-10-20 06:42:24 UTC (rev 207586)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-fullscreen.html 2016-10-20 06:43:59 UTC (rev 207587)
@@ -25,9 +25,10 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
-<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<body>
<video src="" style="width: 320px; height: 240px;"></video>
Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-manual-play.html (207586 => 207587)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-manual-play.html 2016-10-20 06:42:24 UTC (rev 207586)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-manual-play.html 2016-10-20 06:43:59 UTC (rev 207587)
@@ -25,9 +25,10 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
-<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<body>
<video src="" style="width: 320px; height: 240px;"></video>
Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-no-source.html (207586 => 207587)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-no-source.html 2016-10-20 06:42:24 UTC (rev 207586)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-no-source.html 2016-10-20 06:43:59 UTC (rev 207587)
@@ -25,9 +25,10 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
-<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<body>
<video style="width: 320px; height: 240px;"></video>
Modified: trunk/Source/WebCore/ChangeLog (207586 => 207587)
--- trunk/Source/WebCore/ChangeLog 2016-10-20 06:42:24 UTC (rev 207586)
+++ trunk/Source/WebCore/ChangeLog 2016-10-20 06:43:59 UTC (rev 207587)
@@ -1,3 +1,31 @@
+2016-10-19 Antoine Quint <grao...@apple.com>
+
+ [Modern Media Controls] Media Controller: mute support
+ https://bugs.webkit.org/show_bug.cgi?id=163677
+ <rdar://problem/28851582>
+
+ Reviewed by Dean Jackson.
+
+ We introduce the MuteSupport class which brings support for muting the media
+ by clicking on the mute button in the media controls and correctly reflecting
+ the media's muted state should the media be muted via the media API.
+
+ Tests: media/modern-media-controls/mute-support/mute-support-button-click.html
+ media/modern-media-controls/mute-support/mute-support-media-api.html
+ media/modern-media-controls/mute-support/mute-support-muted.html
+
+ * Modules/modern-media-controls/media/media-controller.js:
+ (MediaController):
+ * Modules/modern-media-controls/media/mute-support.js: Copied from Source/WebCore/Modules/modern-media-controls/media/media-controller.js.
+ (MuteSupport.prototype.get control):
+ (MuteSupport.prototype.get mediaEvents):
+ (MuteSupport.prototype.buttonWasClicked):
+ (MuteSupport.prototype.syncControl):
+ (MuteSupport):
+ * WebCore.xcodeproj/project.pbxproj:
+ * rendering/RenderThemeMac.mm:
+ (WebCore::RenderThemeMac::mediaControlsScript):
+
2016-10-19 Alex Christensen <achristen...@webkit.org>
Revert r207151
Modified: trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js (207586 => 207587)
--- trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js 2016-10-20 06:42:24 UTC (rev 207586)
+++ trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js 2016-10-20 06:43:59 UTC (rev 207587)
@@ -39,6 +39,7 @@
shadowRoot.appendChild(this.controls.element);
new StartSupport(this);
+ new MuteSupport(this);
this._updateControlsSize();
media.addEventListener("resize", this);
Copied: trunk/Source/WebCore/Modules/modern-media-controls/media/mute-support.js (from rev 207586, trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js) (0 => 207587)
--- trunk/Source/WebCore/Modules/modern-media-controls/media/mute-support.js (rev 0)
+++ trunk/Source/WebCore/Modules/modern-media-controls/media/mute-support.js 2016-10-20 06:43:59 UTC (rev 207587)
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2016 Apple Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+class MuteSupport extends MediaControllerSupport
+{
+
+ // Protected
+
+ get control()
+ {
+ return this.mediaController.controls.muteButton;
+ }
+
+ get mediaEvents()
+ {
+ return ["volumechange"];
+ }
+
+ buttonWasClicked(control)
+ {
+ const media = this.mediaController.media;
+ media.muted = !media.muted;
+ }
+
+ syncControl()
+ {
+ this.control.muted = this.mediaController.media.muted;
+ }
+
+}
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (207586 => 207587)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2016-10-20 06:42:24 UTC (rev 207586)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2016-10-20 06:43:59 UTC (rev 207587)
@@ -9813,6 +9813,9 @@
716FA0FE1DB26591007323CC /* tracks-button.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode._javascript_; path = "tracks-button.js"; sourceTree = "<group>"; };
716FA0FF1DB26591007323CC /* volume-slider.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = "volume-slider.css"; sourceTree = "<group>"; };
716FA1001DB26591007323CC /* volume-slider.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode._javascript_; path = "volume-slider.js"; sourceTree = "<group>"; };
+ 7177E2461DB80D2F00919A0B /* media-controller-support.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode._javascript_; path = "media-controller-support.js"; sourceTree = "<group>"; };
+ 7177E2471DB80D2F00919A0B /* mute-support.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode._javascript_; path = "mute-support.js"; sourceTree = "<group>"; };
+ 7177E2481DB80D2F00919A0B /* start-support.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode._javascript_; path = "start-support.js"; sourceTree = "<group>"; };
71A57DEF154BE25C0009D120 /* SVGPathUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathUtilities.cpp; sourceTree = "<group>"; };
71A57DF0154BE25C0009D120 /* SVGPathUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathUtilities.h; sourceTree = "<group>"; };
71B1E123164048CC00B1880A /* InspectorLayerTreeAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorLayerTreeAgent.cpp; sourceTree = "<group>"; };
@@ -17712,7 +17715,10 @@
71D02D911DB55C4E00DD5CF5 /* media */ = {
isa = PBXGroup;
children = (
+ 7177E2461DB80D2F00919A0B /* media-controller-support.js */,
71D02D921DB55C4E00DD5CF5 /* media-controller.js */,
+ 7177E2471DB80D2F00919A0B /* mute-support.js */,
+ 7177E2481DB80D2F00919A0B /* start-support.js */,
);
path = media;
sourceTree = "<group>";
Modified: trunk/Source/WebCore/rendering/RenderThemeMac.mm (207586 => 207587)
--- trunk/Source/WebCore/rendering/RenderThemeMac.mm 2016-10-20 06:42:24 UTC (rev 207586)
+++ trunk/Source/WebCore/rendering/RenderThemeMac.mm 2016-10-20 06:43:59 UTC (rev 207587)
@@ -260,7 +260,9 @@
NSArray *controlsPaths = @[@"scheduler", @"layout-node", @"layout-item", @"icon-service", @"time-control", @"time-label", @"slider", @"volume-slider", @"scrubber", @"button", @"start-button", @"icon-button", @"play-pause-button", @"skip-back-button", @"mute-button", @"airplay-button", @"pip-button", @"tracks-button", @"fullscreen-button", @"aspect-ratio-button", @"rewind-button", @"forward-button", @"media-controls", @"macos-media-controls", @"macos-inline-media-controls", @"buttons-container", @"placard", @"airplay-placard", @"pip-placard"];
for (NSString *path in controlsPaths)
scriptBuilder.append([NSString stringWithContentsOfFile:[bundle pathForResource:path ofType:@"js" inDirectory:@"modern-media-controls/controls"] encoding:NSUTF8StringEncoding error:nil]);
- scriptBuilder.append([NSString stringWithContentsOfFile:[bundle pathForResource:@"media-controller" ofType:@"js" inDirectory:@"modern-media-controls/media"] encoding:NSUTF8StringEncoding error:nil]);
+ NSArray *mediaPaths = @[@"media-controller-support", @"mute-support", @"start-support", @"media-controller"];
+ for (NSString *path in mediaPaths)
+ scriptBuilder.append([NSString stringWithContentsOfFile:[bundle pathForResource:path ofType:@"js" inDirectory:@"modern-media-controls/media"] encoding:NSUTF8StringEncoding error:nil]);
scriptBuilder.append([NSString stringWithContentsOfFile:[bundle pathForResource:@"main" ofType:@"js" inDirectory:@"modern-media-controls"] encoding:NSUTF8StringEncoding error:nil]);
} else {
scriptBuilder.append([NSString stringWithContentsOfFile:[bundle pathForResource:@"mediaControlsLocalizedStrings" ofType:@"js"] encoding:NSUTF8StringEncoding error:nil]);