<!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>[209098] 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/209098">209098</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2016-11-29 15:38:19 -0800 (Tue, 29 Nov 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>[Modern Media Controls] Status text stuck saying &quot;Loading&quot; after media starts playing
https://bugs.webkit.org/show_bug.cgi?id=165162

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

Source/WebCore:

We forgot to handle the case where none of the special messages need to be set and the
status text should be just an empty string, meaning there is no status text shown in the
controls bar and the scrubber appears instead.

Test: media/modern-media-controls/status-support/status-support-playing.html

* Modules/modern-media-controls/media/status-support.js:
(StatusSupport.prototype.syncControl):
(StatusSupport):

LayoutTests:

Adding a new test ensuring the status text is the empty string once the media starts playing.

* media/modern-media-controls/status-support/status-support-playing-expected.txt: Added.
* media/modern-media-controls/status-support/status-support-playing.html: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesmodernmediacontrolsmediastatussupportjs">trunk/Source/WebCore/Modules/modern-media-controls/media/status-support.js</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsstatussupportstatussupportplayingexpectedtxt">trunk/LayoutTests/media/modern-media-controls/status-support/status-support-playing-expected.txt</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsstatussupportstatussupportplayinghtml">trunk/LayoutTests/media/modern-media-controls/status-support/status-support-playing.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (209097 => 209098)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-11-29 23:35:19 UTC (rev 209097)
+++ trunk/LayoutTests/ChangeLog        2016-11-29 23:38:19 UTC (rev 209098)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2016-11-29  Antoine Quint  &lt;graouts@apple.com&gt;
+
+        [Modern Media Controls] Status text stuck saying &quot;Loading&quot; after media starts playing
+        https://bugs.webkit.org/show_bug.cgi?id=165162
+
+        Reviewed by Dean Jackson.
+
+        Adding a new test ensuring the status text is the empty string once the media starts playing.
+
+        * media/modern-media-controls/status-support/status-support-playing-expected.txt: Added.
+        * media/modern-media-controls/status-support/status-support-playing.html: Added.
+
</ins><span class="cx"> 2016-11-29  Ryan Haddad  &lt;ryanhaddad@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Marking js/dom/modules/module-will-fire-beforeload.html as flaky on mac-wk2 debug.
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsstatussupportstatussupportplayingexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/media/modern-media-controls/status-support/status-support-playing-expected.txt (0 => 209098)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/status-support/status-support-playing-expected.txt                                (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/status-support/status-support-playing-expected.txt        2016-11-29 23:38:19 UTC (rev 209098)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+Testing the StatusSupport behavior when media plays.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS mediaController.controls.statusLabel.text is &quot;&quot;
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsstatussupportstatussupportplayinghtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/media/modern-media-controls/status-support/status-support-playing.html (0 => 209098)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/status-support/status-support-playing.html                                (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/status-support/status-support-playing.html        2016-11-29 23:38:19 UTC (rev 209098)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/media-controls-loader.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; autoplay&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;StatusSupport&lt;/code&gt; behavior when media plays.&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);
+
+media.addEventListener(&quot;play&quot;, function() {
+    shouldBeEqualToString(&quot;mediaController.controls.statusLabel.text&quot;, &quot;&quot;);
+    debug(&quot;&quot;);
+    shadowRoot.host.remove();
+    media.remove();
+    finishJSTest();
+});
+
+&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="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (209097 => 209098)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-11-29 23:35:19 UTC (rev 209097)
+++ trunk/Source/WebCore/ChangeLog        2016-11-29 23:38:19 UTC (rev 209098)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2016-11-29  Antoine Quint  &lt;graouts@apple.com&gt;
+
+        [Modern Media Controls] Status text stuck saying &quot;Loading&quot; after media starts playing
+        https://bugs.webkit.org/show_bug.cgi?id=165162
+
+        Reviewed by Dean Jackson.
+
+        We forgot to handle the case where none of the special messages need to be set and the
+        status text should be just an empty string, meaning there is no status text shown in the
+        controls bar and the scrubber appears instead.
+
+        Test: media/modern-media-controls/status-support/status-support-playing.html
+
+        * Modules/modern-media-controls/media/status-support.js:
+        (StatusSupport.prototype.syncControl):
+        (StatusSupport):
+
</ins><span class="cx"> 2016-11-29  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         IndexedDB 2.0: Cache and reuse SQLiteStatements in the SQLite backend.
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmodernmediacontrolsmediastatussupportjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/modern-media-controls/media/status-support.js (209097 => 209098)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/modern-media-controls/media/status-support.js        2016-11-29 23:35:19 UTC (rev 209097)
+++ trunk/Source/WebCore/Modules/modern-media-controls/media/status-support.js        2016-11-29 23:38:19 UTC (rev 209098)
</span><span class="lines">@@ -44,10 +44,12 @@
</span><span class="cx"> 
</span><span class="cx">         if (!!media.error)
</span><span class="cx">             this.control.text = &quot;Error&quot;;
</span><del>-        if (media.duration === Number.POSITIVE_INFINITY &amp;&amp; media.readyState &gt;= HTMLMediaElement.HAVE_CURRENT_DATA)
</del><ins>+        else if (media.duration === Number.POSITIVE_INFINITY &amp;&amp; media.readyState &gt;= HTMLMediaElement.HAVE_CURRENT_DATA)
</ins><span class="cx">             this.control.text = &quot;Live Broadcast&quot;;
</span><del>-        if (media.readyState &lt;= HTMLMediaElement.HAVE_NOTHING &amp;&amp; media.networkState === HTMLMediaElement.NETWORK_LOADING)
</del><ins>+        else if (media.readyState &lt;= HTMLMediaElement.HAVE_NOTHING &amp;&amp; media.networkState === HTMLMediaElement.NETWORK_LOADING)
</ins><span class="cx">             this.control.text = &quot;Loading&quot;;
</span><ins>+        else
+            this.control.text = &quot;&quot;;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre>
</div>
</div>

</body>
</html>