<!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>[278678] 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/278678">278678</a></dd>
<dt>Author</dt> <dd>drousso@apple.com</dd>
<dt>Date</dt> <dd>2021-06-09 15:42:51 -0700 (Wed, 09 Jun 2021)</dd>
</dl>

<h3>Log Message</h3>
<pre>(<a href="http://trac.webkit.org/projects/webkit/changeset/278618">r278618</a>) media/modern-media-controls/overflow-support/chapters.html is timing out since introduction
https://bugs.webkit.org/show_bug.cgi?id=226828
<rdar://problem/79084756>

Unreviewed text fix.


* media/modern-media-controls/overflow-support/chapters.html:
* media/modern-media-controls/overflow-support/chapters-expected.txt:
Wait for the `<track kind="chapters">` to load before clicking on the overflow button as
otherwise there won't be any chapter cues to display in the contextmenu, meaning that the
contextmenu would be empty and therefore not be shown.

* http/tests/resources/js-test-pre.js:
(shouldBecomeEqual):
(shouldBecomeDifferent):
* resources/js-test-pre.js:
(shouldBecomeEqual):
(shouldBecomeDifferent):
* resources/js-test.js:
(shouldBecomeEqual):
(shouldBecomeDifferent):
Allow for `completionHandler` to not be provided, which will cause the function to return a `Promise`.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestshttptestsresourcesjstestprejs">trunk/LayoutTests/http/tests/resources/js-test-pre.js</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsoverflowsupportchaptersexpectedtxt">trunk/LayoutTests/media/modern-media-controls/overflow-support/chapters-expected.txt</a></li>
<li><a href="#trunkLayoutTestsmediamodernmediacontrolsoverflowsupportchaptershtml">trunk/LayoutTests/media/modern-media-controls/overflow-support/chapters.html</a></li>
<li><a href="#trunkLayoutTestsresourcesjstestprejs">trunk/LayoutTests/resources/js-test-pre.js</a></li>
<li><a href="#trunkLayoutTestsresourcesjstestjs">trunk/LayoutTests/resources/js-test.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (278677 => 278678)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog      2021-06-09 22:41:48 UTC (rev 278677)
+++ trunk/LayoutTests/ChangeLog 2021-06-09 22:42:51 UTC (rev 278678)
</span><span class="lines">@@ -1,3 +1,28 @@
</span><ins>+2021-06-09  Devin Rousso  <drousso@apple.com>
+
+        (r278618) media/modern-media-controls/overflow-support/chapters.html is timing out since introduction
+        https://bugs.webkit.org/show_bug.cgi?id=226828
+        <rdar://problem/79084756>
+
+        Unreviewed text fix.
+
+        * media/modern-media-controls/overflow-support/chapters.html:
+        * media/modern-media-controls/overflow-support/chapters-expected.txt:
+        Wait for the `<track kind="chapters">` to load before clicking on the overflow button as
+        otherwise there won't be any chapter cues to display in the contextmenu, meaning that the
+        contextmenu would be empty and therefore not be shown.
+
+        * http/tests/resources/js-test-pre.js:
+        (shouldBecomeEqual):
+        (shouldBecomeDifferent):
+        * resources/js-test-pre.js:
+        (shouldBecomeEqual):
+        (shouldBecomeDifferent):
+        * resources/js-test.js:
+        (shouldBecomeEqual):
+        (shouldBecomeDifferent):
+        Allow for `completionHandler` to not be provided, which will cause the function to return a `Promise`.
+
</ins><span class="cx"> 2021-06-09  Amir Mark Jr  <amir_mark@apple.com>
</span><span class="cx"> 
</span><span class="cx">         REGRESSION (r278630?): [iOS 14] http/tests/ssl/applepay/ApplePayButton.html is a constant failure
</span></span></pre></div>
<a id="trunkLayoutTestshttptestsresourcesjstestprejs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/resources/js-test-pre.js (278677 => 278678)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/resources/js-test-pre.js    2021-06-09 22:41:48 UTC (rev 278677)
+++ trunk/LayoutTests/http/tests/resources/js-test-pre.js       2021-06-09 22:42:51 UTC (rev 278678)
</span><span class="lines">@@ -326,6 +326,10 @@
</span><span class="cx">         }
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><ins>+
+    if (!completionHandler)
+        return new Promise(resolve => setTimeout(_waitForCondition, 0, condition, resolve));
+
</ins><span class="cx">     setTimeout(_waitForCondition, 0, condition, completionHandler);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -438,6 +442,10 @@
</span><span class="cx">         }
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><ins>+
+    if (!completionHandler)
+        return new Promise(resolve => setTimeout(_waitForCondition, 0, condition, resolve));
+
</ins><span class="cx">     setTimeout(_waitForCondition, 0, condition, completionHandler);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsoverflowsupportchaptersexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/overflow-support/chapters-expected.txt (278677 => 278678)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/overflow-support/chapters-expected.txt     2021-06-09 22:41:48 UTC (rev 278677)
+++ trunk/LayoutTests/media/modern-media-controls/overflow-support/chapters-expected.txt        2021-06-09 22:42:51 UTC (rev 278678)
</span><span class="lines">@@ -5,6 +5,7 @@
</span><span class="cx"> 
</span><span class="cx"> PASS shadowRoot.querySelector('button.overflow') became different from null
</span><span class="cx"> PASS shadowRoot.querySelector('button.overflow').getBoundingClientRect().width became different from 0
</span><ins>+PASS media.textTracks[0].mode became different from 'disabled'
</ins><span class="cx"> Tapping overflow button...
</span><span class="cx"> Selecting first chapter cue...
</span><span class="cx"> PASS media.currentTime is >= 5
</span></span></pre></div>
<a id="trunkLayoutTestsmediamodernmediacontrolsoverflowsupportchaptershtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/media/modern-media-controls/overflow-support/chapters.html (278677 => 278678)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/modern-media-controls/overflow-support/chapters.html     2021-06-09 22:41:48 UTC (rev 278677)
+++ trunk/LayoutTests/media/modern-media-controls/overflow-support/chapters.html        2021-06-09 22:42:51 UTC (rev 278678)
</span><span class="lines">@@ -20,25 +20,27 @@
</span><span class="cx"> 
</span><span class="cx"> let contextmenu = null;
</span><span class="cx"> 
</span><del>-media.addEventListener("play", function() {
</del><ins>+media.addEventListener("play", async function() {
</ins><span class="cx">     media.pause();
</span><span class="cx"> 
</span><del>-    shouldBecomeDifferent("shadowRoot.querySelector('button.overflow')", "null", () => {
-        shouldBecomeDifferent("shadowRoot.querySelector('button.overflow').getBoundingClientRect().width", "0", async () => {
-            debug("Tapping overflow button...");
-            await pressOnElement(shadowRoot.querySelector("button.overflow"));
-            contextmenu = await getTracksContextMenu();
</del><ins>+    await shouldBecomeDifferent("shadowRoot.querySelector('button.overflow')", "null");
</ins><span class="cx"> 
</span><del>-            debug("Selecting first chapter cue...");
-            await UIHelper.chooseMenuAction("ipsum");
-            await UIHelper.waitForContextMenuToHide();
</del><ins>+    await shouldBecomeDifferent("shadowRoot.querySelector('button.overflow').getBoundingClientRect().width", "0");
</ins><span class="cx"> 
</span><del>-            shouldBeGreaterThanOrEqual("media.currentTime", "5");
</del><ins>+    await shouldBecomeDifferent("media.textTracks[0].mode", "'disabled'");
</ins><span class="cx"> 
</span><del>-            media.remove();
-            finishJSTest();
-        });
-    });
</del><ins>+    debug("Tapping overflow button...");
+    await pressOnElement(shadowRoot.querySelector("button.overflow"));
+    contextmenu = await getTracksContextMenu();
+
+    debug("Selecting first chapter cue...");
+    await UIHelper.chooseMenuAction("ipsum");
+    await UIHelper.waitForContextMenuToHide();
+
+    shouldBeGreaterThanOrEqual("media.currentTime", "5");
+
+    media.remove();
+    finishJSTest();
</ins><span class="cx"> });
</span><span class="cx"> 
</span><span class="cx"> </script>
</span></span></pre></div>
<a id="trunkLayoutTestsresourcesjstestprejs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/resources/js-test-pre.js (278677 => 278678)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/resources/js-test-pre.js       2021-06-09 22:41:48 UTC (rev 278677)
+++ trunk/LayoutTests/resources/js-test-pre.js  2021-06-09 22:42:51 UTC (rev 278678)
</span><span class="lines">@@ -326,6 +326,10 @@
</span><span class="cx">         }
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><ins>+
+    if (!completionHandler)
+        return new Promise(resolve => setTimeout(_waitForCondition, 0, condition, resolve));
+
</ins><span class="cx">     setTimeout(_waitForCondition, 0, condition, completionHandler);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -438,6 +442,10 @@
</span><span class="cx">         }
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><ins>+
+    if (!completionHandler)
+        return new Promise(resolve => setTimeout(_waitForCondition, 0, condition, resolve));
+
</ins><span class="cx">     setTimeout(_waitForCondition, 0, condition, completionHandler);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsresourcesjstestjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/resources/js-test.js (278677 => 278678)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/resources/js-test.js   2021-06-09 22:41:48 UTC (rev 278677)
+++ trunk/LayoutTests/resources/js-test.js      2021-06-09 22:42:51 UTC (rev 278678)
</span><span class="lines">@@ -350,6 +350,10 @@
</span><span class="cx">     }
</span><span class="cx">     return false;
</span><span class="cx">   }
</span><ins>+
+  if (!completionHandler)
+    return new Promise(resolve => setTimeout(_waitForCondition, 0, condition, resolve));
+
</ins><span class="cx">   setTimeout(_waitForCondition, 0, condition, completionHandler);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -462,6 +466,10 @@
</span><span class="cx">     }
</span><span class="cx">     return false;
</span><span class="cx">   }
</span><ins>+
+  if (!completionHandler)
+    return new Promise(resolve => setTimeout(_waitForCondition, 0, condition, resolve));
+
</ins><span class="cx">   setTimeout(_waitForCondition, 0, condition, completionHandler);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>