Diff
Modified: trunk/LayoutTests/ChangeLog (207908 => 207909)
--- trunk/LayoutTests/ChangeLog 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/ChangeLog 2016-10-26 20:26:00 UTC (rev 207909)
@@ -1,3 +1,35 @@
+2016-10-26 Antoine Quint <[email protected]>
+
+ [Modern Media Controls] Media Controller: playback support
+ https://bugs.webkit.org/show_bug.cgi?id=163678
+ <rdar://problem/27989479>
+
+ Reviewed by Dean Jackson.
+
+ New tests for the PlaybackSupport class and adding the new resource to other MediaController tests.
+
+ * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
+ * media/modern-media-controls/elapsed-time-support/elapsed-time-support.html:
+ * 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.html:
+ * media/modern-media-controls/mute-support/mute-support-media-api.html:
+ * media/modern-media-controls/mute-support/mute-support-muted.html:
+ * media/modern-media-controls/playback-support/playback-support-autoplay-expected.txt: Added.
+ * media/modern-media-controls/playback-support/playback-support-autoplay.html: Copied from LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html.
+ * media/modern-media-controls/playback-support/playback-support-button-click-expected.txt: Added.
+ * media/modern-media-controls/playback-support/playback-support-button-click.html: Copied from LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html.
+ * media/modern-media-controls/playback-support/playback-support-media-api-expected.txt: Added.
+ * media/modern-media-controls/playback-support/playback-support-media-api.html: Copied from LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html.
+ * media/modern-media-controls/remaining-time-support/remaining-time-support.html:
+ * 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-26 Chris Dumez <[email protected]>
First parameter to TextTrack.addCue() / removeCue() should not be nullable
Modified: trunk/LayoutTests/http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html (207908 => 207909)
--- trunk/LayoutTests/http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -28,6 +28,7 @@
<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>
Modified: trunk/LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html (207908 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -29,6 +29,7 @@
<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>
Modified: trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-constructor.html (207908 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-constructor.html 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-constructor.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -28,6 +28,7 @@
<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>
Modified: trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html (207908 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -28,6 +28,7 @@
<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>
Modified: trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-button-click.html (207908 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-button-click.html 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-button-click.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -28,6 +28,7 @@
<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>
Modified: trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-media-api.html (207908 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-media-api.html 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-media-api.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -28,6 +28,7 @@
<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>
Modified: trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-muted.html (207908 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-muted.html 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-muted.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -28,6 +28,7 @@
<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>
Added: trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-autoplay-expected.txt (0 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-autoplay-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-autoplay-expected.txt 2016-10-26 20:26:00 UTC (rev 207909)
@@ -0,0 +1,12 @@
+Testing the PlaybackSupport behavior when the video autoplay.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Media is playing
+PASS mediaController.controls.playPauseButton.playing is true
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Copied: trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-autoplay.html (from rev 207908, trunk/LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html) (0 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-autoplay.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-autoplay.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -0,0 +1,65 @@
+<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>
+<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>
+<div id="shadow"></div>
+<script type="text/_javascript_">
+
+window.jsTestIsAsync = true;
+
+description("Testing the <code>PlaybackSupport</code> behavior when the video autoplay.");
+
+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);
+
+media.addEventListener("play", function() {
+ debug("Media is playing");
+ shouldBeTrue("mediaController.controls.playPauseButton.playing");
+
+ debug("");
+ shadowRoot.host.remove();
+ media.remove();
+ finishJSTest();
+});
+
+</script>
+<script src=""
+</body>
Added: trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-button-click-expected.txt (0 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-button-click-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-button-click-expected.txt 2016-10-26 20:26:00 UTC (rev 207909)
@@ -0,0 +1,19 @@
+Testing the PlaybackSupport behavior by clicking on the play/pause button.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS mediaController.controls.playPauseButton.playing is false
+
+Dispatching click event to the play/pause button
+Media is playing
+PASS mediaController.controls.playPauseButton.playing is true
+
+Dispatching click event to the play/pause button
+Media is paused
+PASS mediaController.controls.playPauseButton.playing is false
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Copied: trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-button-click.html (from rev 207908, trunk/LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html) (0 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-button-click.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-button-click.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -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>
+<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>PlaybackSupport</code> behavior by clicking on the play/pause 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.playPauseButton.playing");
+
+media.addEventListener("play", function() {
+ debug("Media is playing");
+ shouldBeTrue("mediaController.controls.playPauseButton.playing");
+
+ clickPlayPauseButton();
+});
+
+media.addEventListener("pause", function() {
+ debug("Media is paused");
+ shouldBeFalse("mediaController.controls.playPauseButton.playing");
+ debug("");
+ shadowRoot.host.remove();
+ media.remove();
+ finishJSTest();
+});
+
+function clickPlayPauseButton()
+{
+ debug("");
+ debug("Dispatching click event to the play/pause button");
+ mediaController.controls.playPauseButton.element.click();
+}
+
+clickPlayPauseButton();
+
+</script>
+<script src=""
+</body>
Added: trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-media-api-expected.txt (0 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-media-api-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-media-api-expected.txt 2016-10-26 20:26:00 UTC (rev 207909)
@@ -0,0 +1,17 @@
+Testing the PlaybackSupport behavior by using the media API.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS mediaController.controls.playPauseButton.playing is false
+
+Media is playing
+PASS mediaController.controls.playPauseButton.playing is true
+
+Media is paused
+PASS mediaController.controls.playPauseButton.playing is false
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Copied: trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-media-api.html (from rev 207908, trunk/LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html) (0 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-media-api.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-media-api.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -0,0 +1,77 @@
+<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>
+<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>PlaybackSupport</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.playPauseButton.playing");
+
+media.addEventListener("play", function() {
+ debug("");
+ debug("Media is playing");
+ shouldBeTrue("mediaController.controls.playPauseButton.playing");
+
+ media.pause();
+});
+
+media.addEventListener("pause", function() {
+ debug("");
+ debug("Media is paused");
+ shouldBeFalse("mediaController.controls.playPauseButton.playing");
+ debug("");
+ shadowRoot.host.remove();
+ media.remove();
+ finishJSTest();
+});
+
+media.play();
+
+</script>
+<script src=""
+</body>
Modified: trunk/LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html (207908 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -29,6 +29,7 @@
<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>
Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-audio.html (207908 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-audio.html 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-audio.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -28,6 +28,7 @@
<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>
Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-autoplay.html (207908 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-autoplay.html 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-autoplay.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -28,6 +28,7 @@
<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>
Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-click-to-start.html (207908 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-click-to-start.html 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-click-to-start.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -28,6 +28,7 @@
<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>
Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-error.html (207908 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-error.html 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-error.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -28,6 +28,7 @@
<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>
Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-fullscreen.html (207908 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-fullscreen.html 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-fullscreen.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -28,6 +28,7 @@
<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>
Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-manual-play.html (207908 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-manual-play.html 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-manual-play.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -28,6 +28,7 @@
<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>
Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-no-source.html (207908 => 207909)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-no-source.html 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-no-source.html 2016-10-26 20:26:00 UTC (rev 207909)
@@ -28,6 +28,7 @@
<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>
Modified: trunk/Source/WebCore/ChangeLog (207908 => 207909)
--- trunk/Source/WebCore/ChangeLog 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/Source/WebCore/ChangeLog 2016-10-26 20:26:00 UTC (rev 207909)
@@ -1,3 +1,26 @@
+2016-10-26 Antoine Quint <[email protected]>
+
+ [Modern Media Controls] Media Controller: playback support
+ https://bugs.webkit.org/show_bug.cgi?id=163678
+ <rdar://problem/27989479>
+
+ Reviewed by Dean Jackson.
+
+ We introduce the PlaybackSupport class which brings support for playing and pausing
+ the media by clicking on the play/pause button in the media controls and correctly
+ reflecting the media's playback state as the media is played or paused via the media API.
+
+ * Modules/modern-media-controls/js-files:
+ * Modules/modern-media-controls/media/media-controller.js:
+ (MediaController):
+ * Modules/modern-media-controls/media/playback-support.js: Copied from Source/WebCore/Modules/modern-media-controls/media/media-controller.js.
+ (PlaybackSupport.prototype.get control):
+ (PlaybackSupport.prototype.get mediaEvents):
+ (PlaybackSupport.prototype.buttonWasClicked):
+ (PlaybackSupport.prototype.syncControl):
+ (PlaybackSupport):
+ * WebCore.xcodeproj/project.pbxproj:
+
2016-10-26 Chris Dumez <[email protected]>
Regression(r203848): 百度糯米 app fails to load content due to a _javascript_ error
Modified: trunk/Source/WebCore/Modules/modern-media-controls/js-files (207908 => 207909)
--- trunk/Source/WebCore/Modules/modern-media-controls/js-files 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/Source/WebCore/Modules/modern-media-controls/js-files 2016-10-26 20:26:00 UTC (rev 207909)
@@ -30,6 +30,7 @@
media/media-controller-support.js
media/elapsed-time-support.js
media/mute-support.js
+media/playback-support.js
media/remaining-time-support.js
media/skip-back-support.js
media/start-support.js
Modified: trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js (207908 => 207909)
--- trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js 2016-10-26 20:26:00 UTC (rev 207909)
@@ -40,6 +40,7 @@
new ElapsedTimeSupport(this);
new MuteSupport(this);
+ new PlaybackSupport(this);
new RemainingTimeSupport(this);
new SkipBackSupport(this);
new StartSupport(this);
Copied: trunk/Source/WebCore/Modules/modern-media-controls/media/playback-support.js (from rev 207908, trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js) (0 => 207909)
--- trunk/Source/WebCore/Modules/modern-media-controls/media/playback-support.js (rev 0)
+++ trunk/Source/WebCore/Modules/modern-media-controls/media/playback-support.js 2016-10-26 20:26:00 UTC (rev 207909)
@@ -0,0 +1,55 @@
+/*
+ * 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 PlaybackSupport extends MediaControllerSupport
+{
+
+ // Protected
+
+ get control()
+ {
+ return this.mediaController.controls.playPauseButton;
+ }
+
+ get mediaEvents()
+ {
+ return ["play", "pause"];
+ }
+
+ buttonWasClicked(control)
+ {
+ const media = this.mediaController.media;
+ if (media.paused)
+ media.play();
+ else
+ media.pause();
+ }
+
+ syncControl()
+ {
+ this.control.playing = !this.mediaController.media.paused;
+ }
+
+}
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (207908 => 207909)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2016-10-26 20:17:24 UTC (rev 207908)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2016-10-26 20:26:00 UTC (rev 207909)
@@ -9807,6 +9807,7 @@
6FAD4A561A9D0FAE009F7D3C /* OpenGLESSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpenGLESSPI.h; sourceTree = "<group>"; };
71004B9A1DC1109300A52A38 /* elapsed-time-support.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode._javascript_; path = "elapsed-time-support.js"; sourceTree = "<group>"; };
71004B9B1DC1109300A52A38 /* remaining-time-support.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode._javascript_; path = "remaining-time-support.js"; sourceTree = "<group>"; };
+ 71004B9D1DC1398800A52A38 /* playback-support.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode._javascript_; path = "playback-support.js"; sourceTree = "<group>"; };
7117445614BC34E200EE5FC8 /* SVGTextMetricsBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGTextMetricsBuilder.cpp; sourceTree = "<group>"; };
7117445714BC34E200EE5FC8 /* SVGTextMetricsBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTextMetricsBuilder.h; sourceTree = "<group>"; };
7118FED215685CC60030B79A /* JSSVGViewSpec.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGViewSpec.cpp; sourceTree = "<group>"; };
@@ -17777,6 +17778,7 @@
7177E2461DB80D2F00919A0B /* media-controller-support.js */,
71D02D921DB55C4E00DD5CF5 /* media-controller.js */,
7177E2471DB80D2F00919A0B /* mute-support.js */,
+ 71004B9D1DC1398800A52A38 /* playback-support.js */,
71004B9B1DC1109300A52A38 /* remaining-time-support.js */,
71D2554F1DB900020004D76B /* skip-back-support.js */,
7177E2481DB80D2F00919A0B /* start-support.js */,