<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[208042] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/208042">208042</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2016-10-28 02:40:44 -0700 (Fri, 28 Oct 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>[Modern Media Controls] Media Controller: scrubbing support
https://bugs.webkit.org/show_bug.cgi?id=163726
&lt;rdar://problem/27989481&gt;

Patch by Antoine Quint &lt;graouts@apple.com&gt; on 2016-10-28
Reviewed by Dean Jackson.

Source/WebCore:

We introduce the ScrubberSupport class which brings support for scrubbing the media
by interacting with the scrubber in the media controls and correctly reflecting
the media's current time as set via the media API.

Tests: media/modern-media-controls/scrubber-support/scrubber-support-click.html
       media/modern-media-controls/scrubber-support/scrubber-support-drag.html
       media/modern-media-controls/scrubber-support/scrubber-support-media-api.html

* Modules/modern-media-controls/js-files:
* Modules/modern-media-controls/media/media-controller.js:
(MediaController):
* Modules/modern-media-controls/media/scrubbing-support.js: Added.
(ScrubbingSupport.prototype.get control):
(ScrubbingSupport.prototype.get mediaEvents):
(ScrubbingSupport.prototype.controlValueWillStartChanging):
(ScrubbingSupport.prototype.controlValueDidChange):
(ScrubbingSupport.prototype.controlValueDidStopChanging):
(ScrubbingSupport.prototype.syncControl):
(ScrubbingSupport):
* WebCore.xcodeproj/project.pbxproj:

LayoutTests:

Adding new tests for ScrubberSupport that test clicking in the scrubber,
dragging the scrubber and setting the media currentTime via the media API.
Also 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.html:
* media/modern-media-controls/playback-support/playback-support-button-click.html:
* media/modern-media-controls/playback-support/playback-support-media-api.html:
* media/modern-media-controls/remaining-time-support/remaining-time-support.html:
* media/modern-media-controls/scrubber-support/scrubber-support-click-expected.txt: Added.
* media/modern-media-controls/scrubber-support/scrubber-support-click.html: Added.
* media/modern-media-controls/scrubber-support/scrubber-support-drag-expected.txt: Added.
* media/modern-media-controls/scrubber-support/scrubber-support-drag.html: Added.
* media/modern-media-controls/scrubber-support/scrubber-support-media-api-expected.txt: Added.
* media/modern-media-controls/scrubber-support/scrubber-support-media-api.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:
* platform/ios-simulator/TestExpectations:
* platform/mac/TestExpectations:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestshttptestsmediamodernmediacontrolsskipbacksupportskipbacksupportbuttonclickhtml">trunk/LayoutTests/http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolselapsedtimesupportelapsedtimesupporthtml">trunk/LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsmediacontrollermediacontrollerconstructorhtml">trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-constructor.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsmediacontrollermediacontrollerresizehtml">trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsmutesupportmutesupportbuttonclickhtml">trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-button-click.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsmutesupportmutesupportmediaapihtml">trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-media-api.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsmutesupportmutesupportmutedhtml">trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-muted.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsplaybacksupportplaybacksupportautoplayhtml">trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-autoplay.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsplaybacksupportplaybacksupportbuttonclickhtml">trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-button-click.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsplaybacksupportplaybacksupportmediaapihtml">trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-media-api.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsremainingtimesupportremainingtimesupporthtml">trunk/LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsstartsupportstartsupportaudiohtml">trunk/LayoutTests/media/modern-media-controls/start-support/start-support-audio.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsstartsupportstartsupportautoplayhtml">trunk/LayoutTests/media/modern-media-controls/start-support/start-support-autoplay.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsstartsupportstartsupportclicktostarthtml">trunk/LayoutTests/media/modern-media-controls/start-support/start-support-click-to-start.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsstartsupportstartsupporterrorhtml">trunk/LayoutTests/media/modern-media-controls/start-support/start-support-error.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsstartsupportstartsupportfullscreenhtml">trunk/LayoutTests/media/modern-media-controls/start-support/start-support-fullscreen.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsstartsupportstartsupportmanualplayhtml">trunk/LayoutTests/media/modern-media-controls/start-support/start-support-manual-play.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsstartsupportstartsupportnosourcehtml">trunk/LayoutTests/media/modern-media-controls/start-support/start-support-no-source.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatorTestExpectations">trunk/LayoutTests/platform/ios-simulator/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformmacTestExpectations">trunk/LayoutTests/platform/mac/TestExpectations</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesmodernmediacontrolsjsfiles">trunk/Source/WebCore/Modules/modern-media-controls/js-files</a></li>
<li><a href="#trunkSourceWebCoreModulesmodernmediacontrolsmediamediacontrollerjs">trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>trunk/LayoutTests/media/modern-media-controls/scrubber-support/</li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsscrubbersupportscrubbersupportclickexpectedtxt">trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-click-expected.txt</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsscrubbersupportscrubbersupportclickhtml">trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-click.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsscrubbersupportscrubbersupportdragexpectedtxt">trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-drag-expected.txt</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsscrubbersupportscrubbersupportdraghtml">trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-drag.html</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsscrubbersupportscrubbersupportmediaapiexpectedtxt">trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-media-api-expected.txt</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsscrubbersupportscrubbersupportmediaapihtml">trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-media-api.html</a></li>
<li><a href="#trunkSourceWebCoreModulesmodernmediacontrolsmediascrubbingsupportjs">trunk/Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/ChangeLog        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -1,3 +1,42 @@
</span><ins>+2016-10-28  Antoine Quint  &lt;graouts@apple.com&gt;
+
+        [Modern Media Controls] Media Controller: scrubbing support
+        https://bugs.webkit.org/show_bug.cgi?id=163726
+        &lt;rdar://problem/27989481&gt;
+
+        Reviewed by Dean Jackson.
+
+        Adding new tests for ScrubberSupport that test clicking in the scrubber,
+        dragging the scrubber and setting the media currentTime via the media API.
+        Also 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.html:
+        * media/modern-media-controls/playback-support/playback-support-button-click.html:
+        * media/modern-media-controls/playback-support/playback-support-media-api.html:
+        * media/modern-media-controls/remaining-time-support/remaining-time-support.html:
+        * media/modern-media-controls/scrubber-support/scrubber-support-click-expected.txt: Added.
+        * media/modern-media-controls/scrubber-support/scrubber-support-click.html: Added.
+        * media/modern-media-controls/scrubber-support/scrubber-support-drag-expected.txt: Added.
+        * media/modern-media-controls/scrubber-support/scrubber-support-drag.html: Added.
+        * media/modern-media-controls/scrubber-support/scrubber-support-media-api-expected.txt: Added.
+        * media/modern-media-controls/scrubber-support/scrubber-support-media-api.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:
+        * platform/ios-simulator/TestExpectations:
+        * platform/mac/TestExpectations:
+
</ins><span class="cx"> 2016-10-27  Gyuyoung Kim  &lt;gyuyoung.kim@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         [EFL] Skip media test for a while
</span></span></pre></div>
<a id="trunkLayoutTestshttptestsmediamodernmediacontrolsskipbacksupportskipbacksupportbuttonclickhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolselapsedtimesupportelapsedtimesupporthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/buttons-container.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-service.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/start-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><del>-&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/status-label.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</del><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/play-pause-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/skip-back-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="lines">@@ -31,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsmediacontrollermediacontrollerconstructorhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-constructor.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-constructor.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-constructor.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsmediacontrollermediacontrollerresizehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsmutesupportmutesupportbuttonclickhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-button-click.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-button-click.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-button-click.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsmutesupportmutesupportmediaapihtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-media-api.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-media-api.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-media-api.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsmutesupportmutesupportmutedhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-muted.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-muted.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/mute-support/mute-support-muted.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsplaybacksupportplaybacksupportautoplayhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-autoplay.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-autoplay.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-autoplay.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/buttons-container.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-service.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/start-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><del>-&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/status-label.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</del><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/play-pause-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/skip-back-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="lines">@@ -31,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsplaybacksupportplaybacksupportbuttonclickhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-button-click.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-button-click.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-button-click.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/buttons-container.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-service.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/start-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><del>-&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/status-label.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</del><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/play-pause-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/skip-back-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="lines">@@ -31,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsplaybacksupportplaybacksupportmediaapihtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-media-api.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-media-api.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-media-api.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/buttons-container.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-service.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/start-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><del>-&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/status-label.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</del><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/play-pause-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/skip-back-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="lines">@@ -31,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsremainingtimesupportremainingtimesupporthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/buttons-container.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-service.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/start-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><del>-&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/status-label.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</del><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/play-pause-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/skip-back-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="lines">@@ -31,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsscrubbersupportscrubbersupportclickexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-click-expected.txt (0 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-click-expected.txt                                (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-click-expected.txt        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+Testing the ScrubberSupport behavior when clicking the scrubber.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS media.currentTime is 3.1872
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsscrubbersupportscrubbersupportclickhtmlfromrev208041trunkLayoutTestsmediamodernmediacontrolsplaybacksupportplaybacksupportmediaapihtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-click.html (from rev 208041, trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-media-api.html) (0 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-click.html                                (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-click.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -0,0 +1,102 @@
</span><ins>+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/airplay-button.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/button.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/buttons-container.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-button.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/macos-inline-media-controls.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/media-controls.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/placard.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/scrubber.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/slider.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/start-button.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/time-label.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/volume-slider.css&quot;&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/scheduler.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/layout-node.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/layout-item.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/buttons-container.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-service.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/start-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/play-pause-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/skip-back-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/airplay-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/pip-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/fullscreen-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/mute-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/tracks-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/slider.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/volume-slider.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/scrubber.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/time-label.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/time-control.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/placard.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/airplay-placard.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/pip-placard.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/media-controls.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/macos-media-controls.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/macos-inline-media-controls.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/elapsed-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/main.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;body&gt;
+&lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
+    
+    video, #host {
+        position: absolute;
+        top: 0;
+        left: 0;
+    }
+
+    video {
+        width: 800px;
+        height: 240px;
+    }
+    
+&lt;/style&gt;
+&lt;video src=&quot;../../content/test.mp4&quot;&gt;&lt;/video&gt;
+&lt;div id=&quot;host&quot;&gt;&lt;/div&gt;
+&lt;script type=&quot;text/javascript&quot;&gt;
+
+window.jsTestIsAsync = true;
+
+description(&quot;Testing the &lt;code&gt;ScrubberSupport&lt;/code&gt; behavior when clicking the scrubber.&quot;);
+
+iconService.directoryPath = &quot;../../../../Source/WebCore/Modules/modern-media-controls/images&quot;;
+
+const container = document.querySelector(&quot;div#host&quot;);
+const media = document.querySelector(&quot;video&quot;);
+const mediaController = createControls(container, media, null);
+
+mediaController.controls.showsStartButton = false;
+
+media.addEventListener(&quot;canplaythrough&quot;, () =&gt; {
+
+    media.addEventListener(&quot;timeupdate&quot;, () =&gt; {
+        shouldBe(&quot;media.currentTime&quot;, &quot;3.1872&quot;);
+        container.remove();
+        media.remove();
+        finishJSTest();
+    });
+
+    const input = mediaController.controls.timeControl.scrubber.children[1].element;
+    const bounds = input.getBoundingClientRect();
+    const centerX = bounds.left + bounds.width / 2;
+    const centerY = bounds.top + bounds.height / 2;
+
+    eventSender.mouseMoveTo(centerX, centerY);
+    eventSender.mouseDown();
+    eventSender.mouseUp();
+});
+
+&lt;/script&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsscrubbersupportscrubbersupportdragexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-drag-expected.txt (0 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-drag-expected.txt                                (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-drag-expected.txt        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+Testing the ScrubberSupport behavior when dragging the scrubber.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS media.currentTime is media.duration / 2
+PASS media.currentTime is 0
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsscrubbersupportscrubbersupportdraghtmlfromrev208041trunkLayoutTestsmediamodernmediacontrolsplaybacksupportplaybacksupportmediaapihtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-drag.html (from rev 208041, trunk/LayoutTests/media/modern-media-controls/playback-support/playback-support-media-api.html) (0 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-drag.html                                (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-drag.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -0,0 +1,117 @@
</span><ins>+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/airplay-button.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/button.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/buttons-container.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-button.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/macos-inline-media-controls.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/media-controls.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/placard.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/scrubber.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/slider.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/start-button.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/time-label.css&quot;&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/volume-slider.css&quot;&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/scheduler.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/layout-node.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/layout-item.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/buttons-container.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-service.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/start-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/play-pause-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/skip-back-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/airplay-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/pip-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/fullscreen-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/mute-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/tracks-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/slider.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/volume-slider.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/scrubber.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/time-label.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/time-control.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/placard.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/airplay-placard.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/pip-placard.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/media-controls.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/macos-media-controls.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/macos-inline-media-controls.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/elapsed-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/main.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;body&gt;
+&lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
+    
+    video, #host {
+        position: absolute;
+        top: 0;
+        left: 0;
+    }
+
+    video {
+        width: 800px;
+        height: 240px;
+    }
+    
+&lt;/style&gt;
+&lt;video src=&quot;../../content/test.mp4&quot; autoplay&gt;&lt;/video&gt;
+&lt;div id=&quot;host&quot;&gt;&lt;/div&gt;
+&lt;script type=&quot;text/javascript&quot;&gt;
+
+window.jsTestIsAsync = true;
+
+description(&quot;Testing the &lt;code&gt;ScrubberSupport&lt;/code&gt; behavior when dragging the scrubber.&quot;);
+
+iconService.directoryPath = &quot;../../../../Source/WebCore/Modules/modern-media-controls/images&quot;;
+
+const container = document.querySelector(&quot;div#host&quot;);
+const media = document.querySelector(&quot;video&quot;);
+const mediaController = createControls(container, media, null);
+
+let numberOfEvents = 0;
+media.addEventListener(&quot;play&quot;, () =&gt; {
+    media.pause();
+
+    const input = mediaController.controls.timeControl.scrubber.children[1].element;
+    const bounds = input.getBoundingClientRect();
+    const minX = bounds.left;
+    const dragStartX = bounds.left + bounds.width / 2;
+    const dragEndX = bounds.left;
+    const centerY = bounds.top + bounds.height / 2;
+
+    media.addEventListener(&quot;timeupdate&quot;, () =&gt; {
+        numberOfEvents++;
+
+        if (numberOfEvents == 1) {
+            shouldBe(&quot;media.currentTime&quot;, &quot;media.duration / 2&quot;);
+            const delta = dragEndX - dragStartX;
+            const iterations = Math.abs(delta);
+            for (let i = 1; i &lt;= iterations; ++i)
+                eventSender.mouseMoveTo(dragStartX + i * Math.sign(delta), centerY);
+
+            eventSender.mouseUp();
+        } else {
+            shouldBe(&quot;media.currentTime&quot;, &quot;0&quot;);
+            container.remove();
+            media.remove();
+            finishJSTest();
+        }
+        
+    });
+
+    // Start dragging.
+    eventSender.mouseMoveTo(dragStartX, centerY);
+    eventSender.mouseDown();
+});
+
+&lt;/script&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsscrubbersupportscrubbersupportmediaapiexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-media-api-expected.txt (0 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-media-api-expected.txt                                (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-media-api-expected.txt        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+Testing the ScrubberSupport behavior by using the media API.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS mediaController.controls.timeControl.scrubber.value is 0
+PASS mediaController.controls.timeControl.scrubber.value is 0.5
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsscrubbersupportscrubbersupportmediaapihtmlfromrev208041trunkLayoutTestsmediamodernmediacontrolsstartsupportstartsupportmanualplayhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-media-api.html (from rev 208041, trunk/LayoutTests/media/modern-media-controls/start-support/start-support-manual-play.html) (0 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-media-api.html                                (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/scrubber-support/scrubber-support-media-api.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -0,0 +1,68 @@
</span><ins>+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/scheduler.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/layout-node.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/layout-item.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/buttons-container.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-service.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/start-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/icon-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/play-pause-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/skip-back-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/airplay-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/pip-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/fullscreen-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/mute-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/tracks-button.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/slider.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/volume-slider.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/scrubber.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/time-label.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/time-control.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/placard.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/airplay-placard.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/pip-placard.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/media-controls.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/macos-media-controls.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/controls/macos-inline-media-controls.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/elapsed-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/main.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+&lt;body&gt;
+&lt;video src=&quot;../../content/test.mp4&quot; style=&quot;width: 320px; height: 240px;&quot;&gt;&lt;/video&gt;
+&lt;div id=&quot;shadow&quot;&gt;&lt;/div&gt;
+&lt;script type=&quot;text/javascript&quot;&gt;
+
+window.jsTestIsAsync = true;
+
+description(&quot;Testing the &lt;code&gt;ScrubberSupport&lt;/code&gt; behavior by using the media API.&quot;);
+
+iconService.directoryPath = &quot;../../../../Source/WebCore/Modules/modern-media-controls/images&quot;;
+
+const shadowRoot = document.querySelector(&quot;div#shadow&quot;).attachShadow({ mode: &quot;open&quot; });
+const media = document.querySelector(&quot;video&quot;);
+const mediaController = createControls(shadowRoot, media, null);
+
+shouldBe(&quot;mediaController.controls.timeControl.scrubber.value&quot;, &quot;0&quot;);
+
+media.addEventListener(&quot;durationchange&quot;, () =&gt; {
+    media.addEventListener(&quot;timeupdate&quot;, () =&gt; {
+        shouldBe(&quot;mediaController.controls.timeControl.scrubber.value&quot;, &quot;0.5&quot;);
+        debug(&quot;&quot;);
+        shadowRoot.host.remove();
+        media.remove();
+        finishJSTest();
+    });
+    media.currentTime = media.duration / 2;
+});
+
+&lt;/script&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsstartsupportstartsupportaudiohtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-audio.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-audio.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-audio.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsstartsupportstartsupportautoplayhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-autoplay.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-autoplay.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-autoplay.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsstartsupportstartsupportclicktostarthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-click-to-start.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-click-to-start.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-click-to-start.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsstartsupportstartsupporterrorhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-error.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-error.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-error.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsstartsupportstartsupportfullscreenhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-fullscreen.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-fullscreen.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-fullscreen.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsstartsupportstartsupportmanualplayhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-manual-play.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-manual-play.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-manual-play.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsstartsupportstartsupportnosourcehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/start-support/start-support-no-source.html (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/start-support/start-support-no-source.html        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/media/modern-media-controls/start-support/start-support-no-source.html        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/mute-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/playback-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/skip-back-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/start-support.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../Source/WebCore/Modules/modern-media-controls/media/media-controller.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatorTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/TestExpectations (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/TestExpectations        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/platform/ios-simulator/TestExpectations        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -2705,6 +2705,8 @@
</span><span class="cx"> webkit.org/b/163009 media/modern-media-controls/icon-button/icon-button-active-state.html [ Failure ]
</span><span class="cx"> webkit.org/b/163357 media/modern-media-controls/volume-slider/volume-slider-value.html [ Skip ]
</span><span class="cx"> webkit.org/b/163669 media/modern-media-controls/start-support/start-support-fullscreen.html [ Skip ]
</span><ins>+webkit.org/b/164088 media/modern-media-controls/scrubber-support/scrubber-support-click.html [ Skip ]
+webkit.org/b/164088 media/modern-media-controls/scrubber-support/scrubber-support-drag.html [ Skip ]
</ins><span class="cx"> 
</span><span class="cx"> # This variation font test requires Skia which isn't available on iOS.
</span><span class="cx"> webkit.org/b/163093 fast/text/variations/advances.html [ Failure ]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/TestExpectations (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/TestExpectations        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/LayoutTests/platform/mac/TestExpectations        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -1457,3 +1457,6 @@
</span><span class="cx"> webkit.org/b/163307 [ Debug ] loader/stateobjects/replacestate-size.html [ Skip ]
</span><span class="cx"> 
</span><span class="cx"> webkit.org/b/163922 http/tests/security/svg-image-with-css-cross-domain.html [ Pass ImageOnlyFailure ]
</span><ins>+
+webkit.org/b/164088 [ Yosemite ] media/modern-media-controls/scrubber-support/scrubber-support-click.html [ Skip ]
+webkit.org/b/164088 [ Yosemite ] media/modern-media-controls/scrubber-support/scrubber-support-drag.html [ Skip ]
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/Source/WebCore/ChangeLog        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -1,3 +1,32 @@
</span><ins>+2016-10-28  Antoine Quint  &lt;graouts@apple.com&gt;
+
+        [Modern Media Controls] Media Controller: scrubbing support
+        https://bugs.webkit.org/show_bug.cgi?id=163726
+        &lt;rdar://problem/27989481&gt;
+
+        Reviewed by Dean Jackson.
+
+        We introduce the ScrubberSupport class which brings support for scrubbing the media
+        by interacting with the scrubber in the media controls and correctly reflecting
+        the media's current time as set via the media API.
+
+        Tests: media/modern-media-controls/scrubber-support/scrubber-support-click.html
+               media/modern-media-controls/scrubber-support/scrubber-support-drag.html
+               media/modern-media-controls/scrubber-support/scrubber-support-media-api.html
+
+        * Modules/modern-media-controls/js-files:
+        * Modules/modern-media-controls/media/media-controller.js:
+        (MediaController):
+        * Modules/modern-media-controls/media/scrubbing-support.js: Added.
+        (ScrubbingSupport.prototype.get control):
+        (ScrubbingSupport.prototype.get mediaEvents):
+        (ScrubbingSupport.prototype.controlValueWillStartChanging):
+        (ScrubbingSupport.prototype.controlValueDidChange):
+        (ScrubbingSupport.prototype.controlValueDidStopChanging):
+        (ScrubbingSupport.prototype.syncControl):
+        (ScrubbingSupport):
+        * WebCore.xcodeproj/project.pbxproj:
+
</ins><span class="cx"> 2016-10-28  Alex Christensen  &lt;achristensen@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix Windows WebGL build after r208022
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmodernmediacontrolsjsfiles"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/modern-media-controls/js-files (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/modern-media-controls/js-files        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/Source/WebCore/Modules/modern-media-controls/js-files        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -32,6 +32,7 @@
</span><span class="cx"> media/mute-support.js
</span><span class="cx"> media/playback-support.js
</span><span class="cx"> media/remaining-time-support.js
</span><ins>+media/scrubbing-support.js
</ins><span class="cx"> media/skip-back-support.js
</span><span class="cx"> media/start-support.js
</span><span class="cx"> media/media-controller.js
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmodernmediacontrolsmediamediacontrollerjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -42,6 +42,7 @@
</span><span class="cx">         new MuteSupport(this);
</span><span class="cx">         new PlaybackSupport(this);
</span><span class="cx">         new RemainingTimeSupport(this);
</span><ins>+        new ScrubbingSupport(this);
</ins><span class="cx">         new SkipBackSupport(this);
</span><span class="cx">         new StartSupport(this);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmodernmediacontrolsmediascrubbingsupportjsfromrev208041trunkSourceWebCoreModulesmodernmediacontrolsmediamediacontrollerjs"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js (from rev 208041, trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js) (0 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js                                (rev 0)
+++ trunk/Source/WebCore/Modules/modern-media-controls/media/scrubbing-support.js        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -0,0 +1,74 @@
</span><ins>+/*
+ * 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 ScrubbingSupport extends MediaControllerSupport
+{
+
+    // Protected
+
+    get control()
+    {
+        return this.mediaController.controls.timeControl.scrubber;
+    }
+
+    get mediaEvents()
+    {
+        return [&quot;timeupdate&quot;];
+    }
+
+    controlValueWillStartChanging(control)
+    {
+        const media = this.mediaController.media;
+        const isPaused = media.paused;
+        if (!isPaused)
+            media.pause();
+
+        this._wasPausedWhenScrubbingStarted = isPaused;
+    }
+
+    controlValueDidChange(control)
+    {
+        const media = this.mediaController.media;
+        media.fastSeek(control.value * media.duration);
+    }
+
+    controlValueDidStopChanging(control)
+    {
+        if (!this._wasPausedWhenScrubbingStarted)
+            this.mediaController.media.play();
+
+        delete this._wasPausedWhenScrubbingStarted;
+    }
+
+    syncControl()
+    {
+        const media = this.mediaController.media;
+        if (isNaN(media.duration))
+            return;
+
+        this.control.value = media.currentTime / media.duration;
+    }
+
+}
</ins></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (208041 => 208042)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-10-28 07:17:35 UTC (rev 208041)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-10-28 09:40:44 UTC (rev 208042)
</span><span class="lines">@@ -9841,6 +9841,7 @@
</span><span class="cx">                 713E70AF1733E8B300A22D00 /* plugIns.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = plugIns.js; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 715379FE146BD9D6008BD615 /* SVGPathData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathData.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 715379FF146BD9D6008BD615 /* SVGPathData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathData.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                7157E3D11DC1EE4B0094550E /* scrubbing-support.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = &quot;scrubbing-support.js&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 7157F061150B6564006EAABD /* SVGAnimatedTransformList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedTransformList.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 716FA0D81DB26591007323CC /* airplay-button.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = &quot;airplay-button.css&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 716FA0D91DB26591007323CC /* airplay-button.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = &quot;airplay-button.js&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -17828,6 +17829,7 @@
</span><span class="cx">                 71D02D911DB55C4E00DD5CF5 /* media */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                7157E3D11DC1EE4B0094550E /* scrubbing-support.js */,
</ins><span class="cx">                                 71004B9A1DC1109300A52A38 /* elapsed-time-support.js */,
</span><span class="cx">                                 7177E2461DB80D2F00919A0B /* media-controller-support.js */,
</span><span class="cx">                                 71D02D921DB55C4E00DD5CF5 /* media-controller.js */,
</span></span></pre>
</div>
</div>

</body>
</html>