<!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>[287049] 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/287049">287049</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2021-12-14 14:20:05 -0800 (Tue, 14 Dec 2021)</dd>
</dl>

<h3>Log Message</h3>
<pre>Revert <a href="http://trac.webkit.org/projects/webkit/changeset/284816">r284816</a>
https://bugs.webkit.org/show_bug.cgi?id=234308
LayoutTests/imported/w3c:

Patch by Alex Christensen <achristensen@webkit.org> on 2021-12-14
Reviewed by Eric Carlson.

* web-platform-tests/service-workers/service-worker/fetch-audio-tainting.https-expected.txt:

Source/WebCore:

<rdar://86294293>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-12-14
Reviewed by Eric Carlson.

I made it so that resources without a Content-Length header wait until the whole resource finishes downloading
then we deliver it to CoreMedia to play with a known length.  This works great, except it completely breaks
live streaming, which would just wait forever.  Back to the status quo.  We need to convince CoreMedia to accept
byte ranges with an unknown end to fix videos such as our test video when hosted by trac, which has no Content-Length at
https://trac.webkit.org/export/284633/webkit/trunk/Tools/TestWebKitAPI/Tests/WebKit/test.mp4

* platform/network/cocoa/RangeResponseGenerator.mm:
(WebCore::synthesizedResponseForRange):
(WebCore::RangeResponseGenerator::giveResponseToTaskIfBytesInRangeReceived):

Source/WebKit:

Patch by Alex Christensen <achristensen@webkit.org> on 2021-12-14
Reviewed by Eric Carlson.

* UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
(WebKit::PlaybackSessionManagerProxy::seekableRangesVectorChanged):

Tools:

Patch by Alex Christensen <achristensen@webkit.org> on 2021-12-14
Reviewed by Eric Carlson.

* TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:
(TestWebKitAPI::TEST):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerfetchaudiotaintinghttpsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-audio-tainting.https-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcocoaRangeResponseGeneratormm">trunk/Source/WebCore/platform/network/cocoa/RangeResponseGenerator.mm</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitUIProcessCocoaPlaybackSessionManagerProxymm">trunk/Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsTestWebKitAPITestsWebKitCocoaMediaLoadingmm">trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (287048 => 287049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog 2021-12-14 22:15:49 UTC (rev 287048)
+++ trunk/LayoutTests/imported/w3c/ChangeLog    2021-12-14 22:20:05 UTC (rev 287049)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2021-12-14  Alex Christensen  <achristensen@webkit.org>
+
+        Revert r284816
+        https://bugs.webkit.org/show_bug.cgi?id=234308
+
+        Reviewed by Eric Carlson.
+
+        * web-platform-tests/service-workers/service-worker/fetch-audio-tainting.https-expected.txt:
+
</ins><span class="cx"> 2021-12-14  Andreu Botella  <andreu@andreubotella.com>
</span><span class="cx"> 
</span><span class="cx">         TextDecoder doesn't detect invalid UTF-8 sequences early enough
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerfetchaudiotaintinghttpsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-audio-tainting.https-expected.txt (287048 => 287049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-audio-tainting.https-expected.txt 2021-12-14 22:15:49 UTC (rev 287048)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-audio-tainting.https-expected.txt    2021-12-14 22:20:05 UTC (rev 287049)
</span><span class="lines">@@ -1,4 +1,6 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-PASS Verify CORS XHR of fetch() in a Service Worker
</del><ins>+Harness Error (TIMEOUT), message = null
</ins><span class="cx"> 
</span><ins>+TIMEOUT Verify CORS XHR of fetch() in a Service Worker Test timed out
+
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (287048 => 287049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2021-12-14 22:15:49 UTC (rev 287048)
+++ trunk/Source/WebCore/ChangeLog      2021-12-14 22:20:05 UTC (rev 287049)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2021-12-14  Alex Christensen  <achristensen@webkit.org>
+
+        Revert r284816
+        https://bugs.webkit.org/show_bug.cgi?id=234308
+        <rdar://86294293>
+
+        Reviewed by Eric Carlson.
+
+        I made it so that resources without a Content-Length header wait until the whole resource finishes downloading
+        then we deliver it to CoreMedia to play with a known length.  This works great, except it completely breaks
+        live streaming, which would just wait forever.  Back to the status quo.  We need to convince CoreMedia to accept
+        byte ranges with an unknown end to fix videos such as our test video when hosted by trac, which has no Content-Length at
+        https://trac.webkit.org/export/284633/webkit/trunk/Tools/TestWebKitAPI/Tests/WebKit/test.mp4
+
+        * platform/network/cocoa/RangeResponseGenerator.mm:
+        (WebCore::synthesizedResponseForRange):
+        (WebCore::RangeResponseGenerator::giveResponseToTaskIfBytesInRangeReceived):
+
</ins><span class="cx"> 2021-12-14  Gabriel Nava Marino  <gnavamarino@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Adhere to DisplayList iterator's API contract in MemoryDisplayList::~InMemoryDisplayList()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcocoaRangeResponseGeneratormm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/cocoa/RangeResponseGenerator.mm (287048 => 287049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cocoa/RangeResponseGenerator.mm    2021-12-14 22:15:49 UTC (rev 287048)
+++ trunk/Source/WebCore/platform/network/cocoa/RangeResponseGenerator.mm       2021-12-14 22:20:05 UTC (rev 287049)
</span><span class="lines">@@ -72,13 +72,13 @@
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static ResourceResponse synthesizedResponseForRange(const ResourceResponse& originalResponse, const ParsedRequestRange& parsedRequestRange, size_t totalContentLength)
</del><ins>+static ResourceResponse synthesizedResponseForRange(const ResourceResponse& originalResponse, const ParsedRequestRange& parsedRequestRange, std::optional<size_t> totalContentLength)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx">     auto begin = parsedRequestRange.begin;
</span><span class="cx">     auto end = parsedRequestRange.end;
</span><span class="cx"> 
</span><del>-    auto newContentRange = makeString("bytes ", begin, "-", end, "/", totalContentLength);
</del><ins>+    auto newContentRange = makeString("bytes ", begin, "-", end, "/", (totalContentLength ? makeString(*totalContentLength) : "*"));
</ins><span class="cx">     auto newContentLength = makeString(end - begin + 1);
</span><span class="cx"> 
</span><span class="cx">     ResourceResponse newResponse = originalResponse;
</span><span class="lines">@@ -106,11 +106,6 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx"> 
</span><del>-    // FIXME: We ought to be able to just make a range with a * after the / but AVFoundation doesn't accept such ranges.
-    // Instead, we just wait until the load has completed, at which time we will know the content length from the buffer length.
-    if (!expectedContentLength)
-        return;
-
</del><span class="cx">     auto bufferSize = data.buffer.size();
</span><span class="cx">     if (bufferSize < range.begin)
</span><span class="cx">         return;
</span><span class="lines">@@ -150,7 +145,7 @@
</span><span class="cx"> 
</span><span class="cx">     switch (taskData->responseState) {
</span><span class="cx">     case Data::TaskData::ResponseState::NotSynthesizedYet: {
</span><del>-        auto response = synthesizedResponseForRange(data.originalResponse, range, *expectedContentLength);
</del><ins>+        auto response = synthesizedResponseForRange(data.originalResponse, range, expectedContentLength);
</ins><span class="cx">         [task resource:nullptr receivedResponse:response completionHandler:[giveBytesToTask = WTFMove(giveBytesToTask), taskData = WeakPtr { taskData }, task = retainPtr(task)] (WebCore::ShouldContinuePolicyCheck shouldContinue) {
</span><span class="cx">             if (taskData)
</span><span class="cx">                 taskData->responseState = Data::TaskData::ResponseState::SessionCalledCompletionHandler;
</span></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (287048 => 287049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog    2021-12-14 22:15:49 UTC (rev 287048)
+++ trunk/Source/WebKit/ChangeLog       2021-12-14 22:20:05 UTC (rev 287049)
</span><span class="lines">@@ -1,5 +1,15 @@
</span><span class="cx"> 2021-12-14  Alex Christensen  <achristensen@webkit.org>
</span><span class="cx"> 
</span><ins>+        Revert r284816
+        https://bugs.webkit.org/show_bug.cgi?id=234308
+
+        Reviewed by Eric Carlson.
+
+        * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
+        (WebKit::PlaybackSessionManagerProxy::seekableRangesVectorChanged):
+
+2021-12-14  Alex Christensen  <achristensen@webkit.org>
+
</ins><span class="cx">         Add _WKContentRuleListAction.redirected and .modifiedHeaders
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=234289
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitUIProcessCocoaPlaybackSessionManagerProxymm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm (287048 => 287049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm       2021-12-14 22:15:49 UTC (rev 287048)
+++ trunk/Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm  2021-12-14 22:20:05 UTC (rev 287049)
</span><span class="lines">@@ -423,7 +423,6 @@
</span><span class="cx">     Ref<TimeRanges> timeRanges = TimeRanges::create();
</span><span class="cx">     for (const auto& range : ranges) {
</span><span class="cx">         ASSERT(isfinite(range.first));
</span><del>-        ASSERT(isfinite(range.second));
</del><span class="cx">         ASSERT(range.second >= range.first);
</span><span class="cx">         timeRanges->add(range.first, range.second);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (287048 => 287049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog    2021-12-14 22:15:49 UTC (rev 287048)
+++ trunk/Tools/ChangeLog       2021-12-14 22:20:05 UTC (rev 287049)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2021-12-14  Alex Christensen  <achristensen@webkit.org>
+
+        Revert r284816
+        https://bugs.webkit.org/show_bug.cgi?id=234308
+
+        Reviewed by Eric Carlson.
+
+        * TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:
+        (TestWebKitAPI::TEST):
+
</ins><span class="cx"> 2021-12-13  Jonathan Bedard  <jbedard@apple.com>
</span><span class="cx"> 
</span><span class="cx">         [reporelaypy] Update checkout with hook instead of polling
</span></span></pre></div>
<a id="trunkToolsTestWebKitAPITestsWebKitCocoaMediaLoadingmm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm (287048 => 287049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm      2021-12-14 22:15:49 UTC (rev 287048)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm 2021-12-14 22:20:05 UTC (rev 287049)
</span><span class="lines">@@ -181,7 +181,7 @@
</span><span class="cx">     HTTPServer server([&](Connection connection) {
</span><span class="cx">         respondToRequests(connection);
</span><span class="cx">     });
</span><del>-    runVideoTest(server.request(), "playing");
</del><ins>+    runVideoTest(server.request(), "error");
</ins><span class="cx">     EXPECT_EQ(totalRequests, 2u);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>