<!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>[206612] trunk/LayoutTests</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/206612">206612</a></dd>
<dt>Author</dt> <dd>adachan@apple.com</dd>
<dt>Date</dt> <dd>2016-09-29 14:04:34 -0700 (Thu, 29 Sep 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Fix flaky test media/click-placeholder-not-pausing.html
https://bugs.webkit.org/show_bug.cgi?id=162661

Reviewed by Eric Carlson.

This test became flaky after <a href="http://trac.webkit.org/projects/webkit/changeset/201474">r201474</a> when we started to delay showing
the inline placeholder until we are sure the video layer has been moved
into the video fullscreen layer. This means we can't guarantee that the
placeholder is visible right away after the video's presentation mode
changes to &quot;picture-in-picture&quot;.

To fix this, wait for the placeholder to become visible before clicking it.

* media/click-placeholder-not-pausing.html:
* platform/mac-wk2/TestExpectations:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsmediaclickplaceholdernotpausinghtml">trunk/LayoutTests/media/click-placeholder-not-pausing.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk2TestExpectations">trunk/LayoutTests/platform/mac-wk2/TestExpectations</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (206611 => 206612)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-09-29 21:02:59 UTC (rev 206611)
+++ trunk/LayoutTests/ChangeLog        2016-09-29 21:04:34 UTC (rev 206612)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2016-09-28  Ada Chan  &lt;adachan@apple.com&gt;
+
+        Fix flaky test media/click-placeholder-not-pausing.html
+        https://bugs.webkit.org/show_bug.cgi?id=162661
+
+        Reviewed by Eric Carlson.
+
+        This test became flaky after r201474 when we started to delay showing
+        the inline placeholder until we are sure the video layer has been moved
+        into the video fullscreen layer. This means we can't guarantee that the
+        placeholder is visible right away after the video's presentation mode
+        changes to &quot;picture-in-picture&quot;.
+
+        To fix this, wait for the placeholder to become visible before clicking it.
+
+        * media/click-placeholder-not-pausing.html:
+        * platform/mac-wk2/TestExpectations:
+
</ins><span class="cx"> 2016-09-29  Commit Queue  &lt;commit-queue@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r206483.
</span></span></pre></div>
<a id="trunkLayoutTestsmediaclickplaceholdernotpausinghtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/click-placeholder-not-pausing.html (206611 => 206612)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/click-placeholder-not-pausing.html        2016-09-29 21:02:59 UTC (rev 206611)
+++ trunk/LayoutTests/media/click-placeholder-not-pausing.html        2016-09-29 21:04:34 UTC (rev 206612)
</span><span class="lines">@@ -7,7 +7,10 @@
</span><span class="cx">     &lt;script&gt;
</span><span class="cx">         var mediaElement;
</span><span class="cx">         var placeholder;
</span><ins>+        var maxAttemptsToTestPlaceholderVisibility = 10;
+        var attemptsToTestPlaceholderVisibility = 0;
</ins><span class="cx"> 
</span><ins>+
</ins><span class="cx">         if (window.internals)
</span><span class="cx">             window.internals.settings.setAllowsPictureInPictureMediaPlayback(true);
</span><span class="cx"> 
</span><span class="lines">@@ -38,7 +41,26 @@
</span><span class="cx">         {
</span><span class="cx">             testExpected(&quot;mediaElement.webkitPresentationMode&quot;, &quot;picture-in-picture&quot;);
</span><span class="cx"> 
</span><ins>+            pollPIPPlaceholderVisibilityChange();
+        }
+
+        function pollPIPPlaceholderVisibilityChange()
+        {
</ins><span class="cx">             placeholder = mediaControlsElement(internals.shadowRoot(mediaElement), '-webkit-media-controls-wireless-playback-status');
</span><ins>+
+            if (placeholder.classList.contains('hidden')) {
+                if (attemptsToTestPlaceholderVisibility &gt; maxAttemptsToTestPlaceholderVisibility) {
+                    failTest(&quot;Inline placeholder did not become visible after video enters picture-in-picture.&quot;);
+                    endTest();
+                    return;
+                }
+
+                // Use 33 to match PlaceholderPollingDelay in mediaControlsApple.js.
+                setTimeout(pollPIPPlaceholderVisibilityChange, 33);
+                attemptsToTestPlaceholderVisibility++;
+                return;
+            }
+
</ins><span class="cx">             testExpected(&quot;placeholder.classList.contains('hidden')&quot;, false);
</span><span class="cx"> 
</span><span class="cx">             if (!window.eventSender) {
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk2TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk2/TestExpectations (206611 => 206612)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk2/TestExpectations        2016-09-29 21:02:59 UTC (rev 206611)
+++ trunk/LayoutTests/platform/mac-wk2/TestExpectations        2016-09-29 21:04:34 UTC (rev 206612)
</span><span class="lines">@@ -472,8 +472,7 @@
</span><span class="cx"> [ Sierra+ ] media/video-contained-in-fullscreen-element-going-into-pip.html [ Pass ]
</span><span class="cx"> 
</span><span class="cx"> # rdar://problem/26885345
</span><del>-[ Release Sierra+ ] media/click-placeholder-not-pausing.html [ Pass ]
-[ Debug Sierra+ ] media/click-placeholder-not-pausing.html [ Skip ]
</del><ins>+[ Sierra+ ] media/click-placeholder-not-pausing.html [ Pass ]
</ins><span class="cx"> 
</span><span class="cx"> # RTL Scrollbars are enabled on Sierra WebKit2.
</span><span class="cx"> [ Sierra+ ] fast/scrolling/rtl-scrollbars.html [ Pass ]
</span></span></pre>
</div>
</div>

</body>
</html>