Diff
Modified: trunk/LayoutTests/ChangeLog (207904 => 207905)
--- trunk/LayoutTests/ChangeLog 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/LayoutTests/ChangeLog 2016-10-26 19:07:59 UTC (rev 207905)
@@ -1,3 +1,32 @@
+2016-10-26 Antoine Quint <[email protected]>
+
+ [Modern Media Controls] Media Controller: elapsed and remaining time support
+ https://bugs.webkit.org/show_bug.cgi?id=163679
+ <rdar://problem/28851675>
+
+ Reviewed by Dean Jackson.
+
+ New tests for the ElapsedTimeSupport and RemainingTimeSupport classes and adding the
+ new resources 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-expected.txt: Added.
+ * media/modern-media-controls/elapsed-time-support/elapsed-time-support.html: Added.
+ * 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/remaining-time-support/remaining-time-support-expected.txt: Added.
+ * media/modern-media-controls/remaining-time-support/remaining-time-support.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-26 Michael Catanzaro <[email protected]>
Unreviewed GTK test gardening
Modified: trunk/LayoutTests/http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html (207904 => 207905)
--- trunk/LayoutTests/http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/LayoutTests/http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html 2016-10-26 19:07:59 UTC (rev 207905)
@@ -26,7 +26,9 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<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/elapsed-time-support/elapsed-time-support-expected.txt (0 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support-expected.txt 2016-10-26 19:07:59 UTC (rev 207905)
@@ -0,0 +1,12 @@
+Testing the ElapsedTimeSupport behavior.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+timeupdate event was dispatched
+PASS mediaController.controls.timeControl.elapsedTimeLabel.value is media.currentTime
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Copied: trunk/LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html (from rev 207904, trunk/LayoutTests/media/modern-media-controls/start-support/start-support-click-to-start.html) (0 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html 2016-10-26 19:07:59 UTC (rev 207905)
@@ -0,0 +1,66 @@
+<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>
+<body>
+<video src="" style="width: 320px; height: 240px;"></video>
+<div id="shadow"></div>
+<script type="text/_javascript_">
+
+window.jsTestIsAsync = true;
+
+description("Testing the <code>ElapsedTimeSupport</code> behavior.");
+
+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("timeupdate", function() {
+ debug("timeupdate event was dispatched");
+ shouldBe("mediaController.controls.timeControl.elapsedTimeLabel.value", "media.currentTime");
+
+ debug("");
+ shadowRoot.host.remove();
+ media.remove();
+ finishJSTest();
+});
+
+media.addEventListener("loadedmetadata", event => media.currentTime = 2);
+
+</script>
+<script src=""
+</body>
Modified: trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-constructor.html (207904 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-constructor.html 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-constructor.html 2016-10-26 19:07:59 UTC (rev 207905)
@@ -26,7 +26,9 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<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 (207904 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html 2016-10-26 19:07:59 UTC (rev 207905)
@@ -26,7 +26,9 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<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 (207904 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-button-click.html 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-button-click.html 2016-10-26 19:07:59 UTC (rev 207905)
@@ -26,7 +26,9 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<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 (207904 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-media-api.html 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-media-api.html 2016-10-26 19:07:59 UTC (rev 207905)
@@ -26,7 +26,9 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<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 (207904 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-muted.html 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-muted.html 2016-10-26 19:07:59 UTC (rev 207905)
@@ -26,7 +26,9 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<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/remaining-time-support/remaining-time-support-expected.txt (0 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support-expected.txt 2016-10-26 19:07:59 UTC (rev 207905)
@@ -0,0 +1,15 @@
+Testing the RemainingTimeSupport behavior.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+durationchange event was dispatched
+PASS mediaController.controls.timeControl.remainingTimeLabel.value is -media.duration
+
+timeupdate event was dispatched
+PASS mediaController.controls.timeControl.remainingTimeLabel.value is media.currentTime - media.duration
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Copied: trunk/LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html (from rev 207904, trunk/LayoutTests/media/modern-media-controls/start-support/start-support-click-to-start.html) (0 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html 2016-10-26 19:07:59 UTC (rev 207905)
@@ -0,0 +1,71 @@
+<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>
+<body>
+<video src="" style="width: 320px; height: 240px;"></video>
+<div id="shadow"></div>
+<script type="text/_javascript_">
+
+window.jsTestIsAsync = true;
+
+description("Testing the <code>RemainingTimeSupport</code> behavior.");
+
+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("timeupdate", (event) => {
+ debug("");
+ debug("timeupdate event was dispatched");
+ shouldBe("mediaController.controls.timeControl.remainingTimeLabel.value", "media.currentTime - media.duration");
+
+ debug("");
+ shadowRoot.host.remove();
+ media.remove();
+ finishJSTest();
+});
+
+media.addEventListener("durationchange", event => {
+ debug("durationchange event was dispatched");
+ shouldBe("mediaController.controls.timeControl.remainingTimeLabel.value", "-media.duration");
+ media.currentTime = 2;
+});
+
+</script>
+<script src=""
+</body>
Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-audio.html (207904 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-audio.html 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-audio.html 2016-10-26 19:07:59 UTC (rev 207905)
@@ -26,7 +26,9 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<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 (207904 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-autoplay.html 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-autoplay.html 2016-10-26 19:07:59 UTC (rev 207905)
@@ -26,7 +26,9 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<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 (207904 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-click-to-start.html 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-click-to-start.html 2016-10-26 19:07:59 UTC (rev 207905)
@@ -26,7 +26,9 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<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 (207904 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-error.html 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-error.html 2016-10-26 19:07:59 UTC (rev 207905)
@@ -26,7 +26,9 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<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 (207904 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-fullscreen.html 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-fullscreen.html 2016-10-26 19:07:59 UTC (rev 207905)
@@ -26,7 +26,9 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<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 (207904 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-manual-play.html 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-manual-play.html 2016-10-26 19:07:59 UTC (rev 207905)
@@ -26,7 +26,9 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<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 (207904 => 207905)
--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-no-source.html 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-no-source.html 2016-10-26 19:07:59 UTC (rev 207905)
@@ -26,7 +26,9 @@
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>
+<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 (207904 => 207905)
--- trunk/Source/WebCore/ChangeLog 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/Source/WebCore/ChangeLog 2016-10-26 19:07:59 UTC (rev 207905)
@@ -1,3 +1,32 @@
+2016-10-26 Antoine Quint <[email protected]>
+
+ [Modern Media Controls] Media Controller: elapsed and remaining time support
+ https://bugs.webkit.org/show_bug.cgi?id=163679
+ <rdar://problem/28851675>
+
+ Reviewed by Dean Jackson.
+
+ We introduce the ElapsedTimeSupport and RemainingTimeSupport classes which bring
+ support for displaying the elapsed and remaining time in the time control.
+
+ Tests: media/modern-media-controls/elapsed-time-support/elapsed-time-support.html
+ media/modern-media-controls/remaining-time-support/remaining-time-support.html
+
+ * Modules/modern-media-controls/js-files:
+ * Modules/modern-media-controls/media/elapsed-time-support.js: Added.
+ (ElapsedTimeSupport.prototype.get control):
+ (ElapsedTimeSupport.prototype.get mediaEvents):
+ (ElapsedTimeSupport.prototype.syncControl):
+ (ElapsedTimeSupport):
+ * Modules/modern-media-controls/media/media-controller.js:
+ (MediaController):
+ * Modules/modern-media-controls/media/remaining-time-support.js: Added.
+ (RemainingTimeSupport.prototype.get control):
+ (RemainingTimeSupport.prototype.get mediaEvents):
+ (RemainingTimeSupport.prototype.syncControl):
+ (RemainingTimeSupport):
+ * WebCore.xcodeproj/project.pbxproj:
+
2016-10-26 Dave Hyatt <[email protected]>
[CSS Parser] Unify CSSCustomPropertyValue and CSSCustomPropertyDeclaration
Modified: trunk/Source/WebCore/Modules/modern-media-controls/js-files (207904 => 207905)
--- trunk/Source/WebCore/Modules/modern-media-controls/js-files 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/Source/WebCore/Modules/modern-media-controls/js-files 2016-10-26 19:07:59 UTC (rev 207905)
@@ -28,7 +28,9 @@
controls/airplay-placard.js
controls/pip-placard.js
media/media-controller-support.js
+media/elapsed-time-support.js
media/mute-support.js
+media/remaining-time-support.js
media/skip-back-support.js
media/start-support.js
media/media-controller.js
Copied: trunk/Source/WebCore/Modules/modern-media-controls/media/elapsed-time-support.js (from rev 207904, trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js) (0 => 207905)
--- trunk/Source/WebCore/Modules/modern-media-controls/media/elapsed-time-support.js (rev 0)
+++ trunk/Source/WebCore/Modules/modern-media-controls/media/elapsed-time-support.js 2016-10-26 19:07:59 UTC (rev 207905)
@@ -0,0 +1,46 @@
+/*
+ * 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 ElapsedTimeSupport extends MediaControllerSupport
+{
+
+ // Protected
+
+ get control()
+ {
+ return this.mediaController.controls.timeControl.elapsedTimeLabel;
+ }
+
+ get mediaEvents()
+ {
+ return ["timeupdate"];
+ }
+
+ syncControl()
+ {
+ this.control.value = this.mediaController.media.currentTime;
+ }
+
+}
Modified: trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js (207904 => 207905)
--- trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js 2016-10-26 19:07:59 UTC (rev 207905)
@@ -38,7 +38,9 @@
this.controls = new MacOSInlineMediaControls
shadowRoot.appendChild(this.controls.element);
+ new ElapsedTimeSupport(this);
new MuteSupport(this);
+ new RemainingTimeSupport(this);
new SkipBackSupport(this);
new StartSupport(this);
Copied: trunk/Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js (from rev 207904, trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js) (0 => 207905)
--- trunk/Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js (rev 0)
+++ trunk/Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js 2016-10-26 19:07:59 UTC (rev 207905)
@@ -0,0 +1,50 @@
+/*
+ * 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 RemainingTimeSupport extends MediaControllerSupport
+{
+
+ // Protected
+
+ get control()
+ {
+ return this.mediaController.controls.timeControl.remainingTimeLabel;
+ }
+
+ get mediaEvents()
+ {
+ return ["timeupdate", "durationchange"];
+ }
+
+ syncControl()
+ {
+ const media = this.mediaController.media;
+ if (isNaN(media.duration))
+ return;
+
+ this.control.value = media.currentTime - media.duration;
+ }
+
+}
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (207904 => 207905)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2016-10-26 17:45:31 UTC (rev 207904)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2016-10-26 19:07:59 UTC (rev 207905)
@@ -9805,6 +9805,8 @@
6F995A2F1A70833700A735F4 /* JSWebGLVertexArrayObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWebGLVertexArrayObject.cpp; sourceTree = "<group>"; };
6F995A301A70833700A735F4 /* JSWebGLVertexArrayObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWebGLVertexArrayObject.h; sourceTree = "<group>"; };
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>"; };
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>"; };
@@ -17771,9 +17773,11 @@
71D02D911DB55C4E00DD5CF5 /* media */ = {
isa = PBXGroup;
children = (
+ 71004B9A1DC1109300A52A38 /* elapsed-time-support.js */,
7177E2461DB80D2F00919A0B /* media-controller-support.js */,
71D02D921DB55C4E00DD5CF5 /* media-controller.js */,
7177E2471DB80D2F00919A0B /* mute-support.js */,
+ 71004B9B1DC1109300A52A38 /* remaining-time-support.js */,
71D2554F1DB900020004D76B /* skip-back-support.js */,
7177E2481DB80D2F00919A0B /* start-support.js */,
);