<!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>[244428] 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/244428">244428</a></dd>
<dt>Author</dt> <dd>sroberts@apple.com</dd>
<dt>Date</dt> <dd>2019-04-18 09:44:18 -0700 (Thu, 18 Apr 2019)</dd>
</dl>

<h3>Log Message</h3>
<pre>Unreviewed manual rollout of <a href="http://trac.webkit.org/projects/webkit/changeset/244248">r244248</a> and <a href="http://trac.webkit.org/projects/webkit/changeset/244409">r244409</a>
Causing assertion failures on Mac WK2 Debug builds
https://bugs.webkit.org/show_bug.cgi?id=195623
Source/WebCore:

* loader/LinkLoader.cpp:
(WebCore::LinkLoader::prefetchIfNeeded):
* loader/ResourceLoadInfo.cpp:
(WebCore::toResourceType):
* loader/ResourceLoadInfo.h:
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willSendRequestInternal):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):

Source/WebKit:

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::lowMemoryHandler):
* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::prefetchCache): Deleted.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didReceiveBuffer):
(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):
(WebKit::NetworkResourceLoader::isCrossOriginPrefetch const): Deleted.
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/cache/PrefetchCache.cpp: Removed.
* NetworkProcess/cache/PrefetchCache.h: Removed.
* Shared/WebPreferences.yaml:
* Sources.txt:
* WebKit.xcodeproj/project.pbxproj:

LayoutTests:

* http/tests/cache/link-prefetch-main-resource-expected.txt: Removed.
* http/tests/cache/link-prefetch-main-resource-iframe-expected.txt: Removed.
* http/tests/cache/link-prefetch-main-resource-iframe.html: Removed.
* http/tests/cache/link-prefetch-main-resource.html: Removed.
* http/tests/cache/resources/prefetched-main-resource-iframe.php: Removed.
* http/tests/cache/resources/prefetched-main-resource.php: Removed.
* platform/mac-wk1/TestExpectations:
* platform/win/TestExpectations:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk1TestExpectations">trunk/LayoutTests/platform/mac-wk1/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformwinTestExpectations">trunk/LayoutTests/platform/win/TestExpectations</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreloaderLinkLoadercpp">trunk/Source/WebCore/loader/LinkLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderResourceLoadInfocpp">trunk/Source/WebCore/loader/ResourceLoadInfo.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderResourceLoadInfoh">trunk/Source/WebCore/loader/ResourceLoadInfo.h</a></li>
<li><a href="#trunkSourceWebCoreloaderResourceLoadercpp">trunk/Source/WebCore/loader/ResourceLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloadercacheCachedResourceLoadercpp">trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitNetworkProcessNetworkProcesscpp">trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp</a></li>
<li><a href="#trunkSourceWebKitNetworkProcessNetworkProcessh">trunk/Source/WebKit/NetworkProcess/NetworkProcess.h</a></li>
<li><a href="#trunkSourceWebKitNetworkProcessNetworkResourceLoadercpp">trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp</a></li>
<li><a href="#trunkSourceWebKitNetworkProcessNetworkResourceLoaderh">trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.h</a></li>
<li><a href="#trunkSourceWebKitSharedWebPreferencesyaml">trunk/Source/WebKit/Shared/WebPreferences.yaml</a></li>
<li><a href="#trunkSourceWebKitSourcestxt">trunk/Source/WebKit/Sources.txt</a></li>
<li><a href="#trunkSourceWebKitWebKitxcodeprojprojectpbxproj">trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestshttptestscachelinkprefetchmainresourceexpectedtxt">trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachelinkprefetchmainresourceiframeexpectedtxt">trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource-iframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestscachelinkprefetchmainresourceiframehtml">trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource-iframe.html</a></li>
<li><a href="#trunkLayoutTestshttptestscachelinkprefetchmainresourcehtml">trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource.html</a></li>
<li><a href="#trunkLayoutTestshttptestscacheresourcesprefetchedmainresourceiframephp">trunk/LayoutTests/http/tests/cache/resources/prefetched-main-resource-iframe.php</a></li>
<li><a href="#trunkLayoutTestshttptestscacheresourcesprefetchedmainresourcephp">trunk/LayoutTests/http/tests/cache/resources/prefetched-main-resource.php</a></li>
<li><a href="#trunkSourceWebKitNetworkProcesscachePrefetchCachecpp">trunk/Source/WebKit/NetworkProcess/cache/PrefetchCache.cpp</a></li>
<li><a href="#trunkSourceWebKitNetworkProcesscachePrefetchCacheh">trunk/Source/WebKit/NetworkProcess/cache/PrefetchCache.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog      2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/LayoutTests/ChangeLog 2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2019-04-18  Shawn Roberts  <sroberts@apple.com>
+
+        Unreviewed manual rollout of r244248 and r244409
+        Causing assertion failures on Mac WK2 Debug builds
+        https://bugs.webkit.org/show_bug.cgi?id=195623
+        
+        * http/tests/cache/link-prefetch-main-resource-expected.txt: Removed.
+        * http/tests/cache/link-prefetch-main-resource-iframe-expected.txt: Removed.
+        * http/tests/cache/link-prefetch-main-resource-iframe.html: Removed.
+        * http/tests/cache/link-prefetch-main-resource.html: Removed.
+        * http/tests/cache/resources/prefetched-main-resource-iframe.php: Removed.
+        * http/tests/cache/resources/prefetched-main-resource.php: Removed.
+        * platform/mac-wk1/TestExpectations:
+        * platform/win/TestExpectations:
+
</ins><span class="cx"> 2019-04-18  Antoine Quint  <graouts@apple.com>
</span><span class="cx"> 
</span><span class="cx">         [Mac] Unreviewed test gardening.
</span></span></pre></div>
<a id="trunkLayoutTestshttptestscachelinkprefetchmainresourceexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource-expected.txt (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource-expected.txt      2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource-expected.txt 2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -1 +0,0 @@
</span><del>-PASS
</del></span></pre></div>
<a id="trunkLayoutTestshttptestscachelinkprefetchmainresourceiframeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource-iframe-expected.txt (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource-iframe-expected.txt       2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource-iframe-expected.txt  2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -1,2 +0,0 @@
</span><del>-PASS
-
</del></span></pre></div>
<a id="trunkLayoutTestshttptestscachelinkprefetchmainresourceiframehtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource-iframe.html (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource-iframe.html       2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource-iframe.html  2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -1,38 +0,0 @@
</span><del>-<html>
-<body>
-<div id="result"></div>
-<script>
-
-if (window.testRunner) {
-    testRunner.dumpAsText();
-    testRunner.waitUntilDone();
-}
-
-function done()
-{
-    testRunner.notifyDone();
-}
-
-function iframeLoadFinished()
-{
-    if (window.testRunner)
-        setTimeout(done, 0);
-}
-
-function loadAfterPrefetch()
-{
-    var newIframe = document.createElement("iframe");
-    newIframe.src = "http://localhost:8000/cache/resources/prefetched-main-resource-iframe.php";
-    newIframe.onload = iframeLoadFinished;
-    document.body.appendChild(newIframe);
-}
-
-window.onmessage = function(message)
-{
-    document.getElementById('result').textContent = message.data;
-}
-
-</script>
-<link rel="prefetch" href="http://localhost:8000/cache/resources/prefetched-main-resource-iframe.php" onload="setTimeout(loadAfterPrefetch, 0);">
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestshttptestscachelinkprefetchmainresourcehtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource.html (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource.html      2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/LayoutTests/http/tests/cache/link-prefetch-main-resource.html 2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -1,16 +0,0 @@
</span><del>-<html>
-<script>
-if (window.testRunner) {
-    testRunner.waitUntilDone();
-    testRunner.dumpAsText();
-}
-
-function loadAfterPrefetch()
-{
-     window.location.assign('http://localhost:8000/cache/resources/prefetched-main-resource.php');
-}
-</script>
-<body>
-<link rel="prefetch" href="http://localhost:8000/cache/resources/prefetched-main-resource.php" onload="loadAfterPrefetch();">
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestshttptestscacheresourcesprefetchedmainresourceiframephp"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/cache/resources/prefetched-main-resource-iframe.php (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/resources/prefetched-main-resource-iframe.php 2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/LayoutTests/http/tests/cache/resources/prefetched-main-resource-iframe.php    2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -1,18 +0,0 @@
</span><del>-<?php
-if ($_SERVER["HTTP_PURPOSE"] == "prefetch") {
-    header('Cache-Control: max-age=3600');
-    header("Access-Control-Allow-Origin: http://127.0.0.1:8000");
-
-    echo "<script>";
-    echo "parent.window.postMessage('FAIL', '*');";
-    echo "</script>";
-
-    exit();
-}
-
-header("Access-Control-Allow-Origin: http://127.0.0.1:8000");
-
-echo "<script>";
-echo "parent.window.postMessage('PASS', '*');";
-echo "</script>";
-?>
</del></span></pre></div>
<a id="trunkLayoutTestshttptestscacheresourcesprefetchedmainresourcephp"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/cache/resources/prefetched-main-resource.php (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/cache/resources/prefetched-main-resource.php        2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/LayoutTests/http/tests/cache/resources/prefetched-main-resource.php   2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -1,21 +0,0 @@
</span><del>-<?php
-header('Cache-Control: max-age=3600');
-?>
-<!DOCTYPE html>
-<html>
-<body>
-<script>
-
-if (window.testRunner)
-   testRunner.notifyDone();
-
-</script>
-<?php
-if ($_SERVER["HTTP_PURPOSE"] == "prefetch") {
-    print('PASS');
-} else {
-    print('FAIL');
-}
-?>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/TestExpectations      2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations 2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -708,7 +708,4 @@
</span><span class="cx"> 
</span><span class="cx"> webkit.org/b/196502 media/video-background-tab-playback.html [ Pass Failure ]
</span><span class="cx"> 
</span><del>-webkit.org/b/195623 http/tests/cache/link-prefetch-main-resource.html [ Skip ]
-webkit.org/b/195623 http/tests/cache/link-prefetch-main-resource-iframe.html [ Skip ]
-
-webkit.org/b/196915 [ Debug ] inspector/timeline/timeline-recording.html [ Pass Failure ]
</del><ins>+webkit.org/b/196915 [ Debug ] inspector/timeline/timeline-recording.html [ Pass Failure ]
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsplatformwinTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/win/TestExpectations (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/win/TestExpectations  2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/LayoutTests/platform/win/TestExpectations     2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -4331,7 +4331,4 @@
</span><span class="cx"> webkit.org/b/196869 legacy-animation-engine/animations/animation-multiple-callbacks-timestamp.html [ Failure ]
</span><span class="cx"> webkit.org/b/196869 imported/mozilla/css-animations/test_animation-currenttime.html [ Failure ]
</span><span class="cx"> 
</span><del>-webkit.org/b/195623 http/tests/cache/link-prefetch-main-resource.html [ Skip ]
-webkit.org/b/195623 http/tests/cache/link-prefetch-main-resource-iframe.html [ Skip ]
-
</del><span class="cx"> webkit.org/b/194450 storage/indexeddb/modern/gc-closes-database-private.html [ Skip ]
</span><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebCore/ChangeLog      2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2019-04-18  Shawn Roberts  <sroberts@apple.com>
+
+        Unreviewed manual rollout of r244248 and r244409
+        Causing assertion failures on Mac WK2 Debug builds
+        https://bugs.webkit.org/show_bug.cgi?id=195623
+
+        * loader/LinkLoader.cpp:
+        (WebCore::LinkLoader::prefetchIfNeeded):
+        * loader/ResourceLoadInfo.cpp:
+        (WebCore::toResourceType):
+        * loader/ResourceLoadInfo.h:
+        * loader/ResourceLoader.cpp:
+        (WebCore::ResourceLoader::willSendRequestInternal):
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::CachedResourceLoader::requestResource):
+
</ins><span class="cx"> 2019-04-18  Antti Koivisto  <antti@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Tile update problems in iframe after scrolling page too soon after load
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderLinkLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/LinkLoader.cpp (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/LinkLoader.cpp       2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebCore/loader/LinkLoader.cpp  2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -276,17 +276,8 @@
</span><span class="cx">         m_cachedLinkResource->removeClient(*this);
</span><span class="cx">         m_cachedLinkResource = nullptr;
</span><span class="cx">     }
</span><del>-    // FIXME: Add further prefetch restrictions/limitations:
-    // - third-party iframes cannot trigger prefetches
-    // - Number of prefetches of a given page is limited (to 1 maybe?)
</del><span class="cx">     ResourceLoaderOptions options = CachedResourceLoader::defaultCachedResourceOptions();
</span><span class="cx">     options.contentSecurityPolicyImposition = ContentSecurityPolicyImposition::SkipPolicyCheck;
</span><del>-    options.certificateInfoPolicy = CertificateInfoPolicy::IncludeCertificateInfo;
-    options.credentials = FetchOptions::Credentials::SameOrigin;
-    options.redirect = FetchOptions::Redirect::Manual;
-    options.mode = FetchOptions::Mode::Navigate;
-    options.serviceWorkersMode = ServiceWorkersMode::None;
-    options.cachingPolicy = CachingPolicy::DisallowCaching;
</del><span class="cx">     m_cachedLinkResource = document.cachedResourceLoader().requestLinkResource(type, CachedResourceRequest(ResourceRequest(document.completeURL(href)), options, priority)).value_or(nullptr);
</span><span class="cx">     if (m_cachedLinkResource)
</span><span class="cx">         m_cachedLinkResource->addClient(*this);
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderResourceLoadInfocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/ResourceLoadInfo.cpp (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/ResourceLoadInfo.cpp 2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebCore/loader/ResourceLoadInfo.cpp    2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -68,7 +68,8 @@
</span><span class="cx">         return ResourceType::Media;
</span><span class="cx"> #endif
</span><span class="cx">     case CachedResource::Type::LinkPrefetch:
</span><del>-        return ResourceType::Prefetch;
</del><ins>+        ASSERT_NOT_REACHED();
+        break;
</ins><span class="cx"> #if ENABLE(APPLICATION_MANIFEST)
</span><span class="cx">     case CachedResource::Type::ApplicationManifest:
</span><span class="cx">         return ResourceType::Raw;
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderResourceLoadInfoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/ResourceLoadInfo.h (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/ResourceLoadInfo.h   2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebCore/loader/ResourceLoadInfo.h      2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -42,9 +42,8 @@
</span><span class="cx">     Media = 0x0080,
</span><span class="cx">     PlugInStream = 0x0100,
</span><span class="cx">     Popup = 0x0200,
</span><del>-    Prefetch = 0x0400,
</del><span class="cx"> };
</span><del>-const uint16_t ResourceTypeMask = 0x07FF;
</del><ins>+const uint16_t ResourceTypeMask = 0x03FF;
</ins><span class="cx"> 
</span><span class="cx"> enum class LoadType : uint16_t {
</span><span class="cx">     Invalid = 0x0000,
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderResourceLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/ResourceLoader.cpp (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/ResourceLoader.cpp   2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebCore/loader/ResourceLoader.cpp      2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -342,7 +342,7 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(!m_reachedTerminalState);
</span><span class="cx"> #if ENABLE(CONTENT_EXTENSIONS)
</span><del>-    ASSERT(m_resourceType != ResourceType::Invalid || m_resourceType == ResourceType::Prefetch);
</del><ins>+    ASSERT(m_resourceType != ResourceType::Invalid);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     // We need a resource identifier for all requests, even if FrameLoader is never going to see it (such as with CORS preflight requests).
</span><span class="lines">@@ -353,7 +353,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CONTENT_EXTENSIONS)
</span><del>-    if (!redirectResponse.isNull() && frameLoader() && m_resourceType != ResourceType::Prefetch) {
</del><ins>+    if (!redirectResponse.isNull() && frameLoader()) {
</ins><span class="cx">         Page* page = frameLoader()->frame().page();
</span><span class="cx">         if (page && m_documentLoader) {
</span><span class="cx">             auto results = page->userContentProvider().processContentRuleListsForLoad(request.url(), m_resourceType, *m_documentLoader);
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheCachedResourceLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp       2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp  2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -806,7 +806,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CONTENT_EXTENSIONS)
</span><del>-    if (frame() && frame()->page() && m_documentLoader && type != CachedResource::Type::LinkPrefetch) {
</del><ins>+    if (frame() && frame()->page() && m_documentLoader) {
</ins><span class="cx">         const auto& resourceRequest = request.resourceRequest();
</span><span class="cx">         auto* page = frame()->page();
</span><span class="cx">         auto results = page->userContentProvider().processContentRuleListsForLoad(resourceRequest.url(), toResourceType(type), *m_documentLoader);
</span></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog    2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebKit/ChangeLog       2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -1,3 +1,26 @@
</span><ins>+2019-04-18  Shawn Roberts  <sroberts@apple.com>
+
+        Unreviewed manual rollout of r244248 and r244409
+        Causing assertion failures on Mac WK2 Debug builds
+        https://bugs.webkit.org/show_bug.cgi?id=195623
+
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::lowMemoryHandler):
+        * NetworkProcess/NetworkProcess.h:
+        (WebKit::NetworkProcess::prefetchCache): Deleted.
+        * NetworkProcess/NetworkResourceLoader.cpp:
+        (WebKit::NetworkResourceLoader::retrieveCacheEntry):
+        (WebKit::NetworkResourceLoader::didReceiveResponse):
+        (WebKit::NetworkResourceLoader::didReceiveBuffer):
+        (WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):
+        (WebKit::NetworkResourceLoader::isCrossOriginPrefetch const): Deleted.
+        * NetworkProcess/NetworkResourceLoader.h:
+        * NetworkProcess/cache/PrefetchCache.cpp: Removed.
+        * NetworkProcess/cache/PrefetchCache.h: Removed.
+        * Shared/WebPreferences.yaml:
+        * Sources.txt:
+        * WebKit.xcodeproj/project.pbxproj:
+
</ins><span class="cx"> 2019-04-18  Devin Rousso  <drousso@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: Canvas: enable WebGL2 for inspector page
</span></span></pre></div>
<a id="trunkSourceWebKitNetworkProcessNetworkProcesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp    2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp       2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -270,8 +270,6 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     WTF::releaseFastMallocFreeMemory();
</span><del>-
-    m_prefetchCache.clear();
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void NetworkProcess::initializeNetworkProcess(NetworkProcessCreationParameters&& parameters)
</span></span></pre></div>
<a id="trunkSourceWebKitNetworkProcessNetworkProcessh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h      2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -31,7 +31,6 @@
</span><span class="cx"> #include "NetworkBlobRegistry.h"
</span><span class="cx"> #include "NetworkContentRuleListManager.h"
</span><span class="cx"> #include "NetworkHTTPSUpgradeChecker.h"
</span><del>-#include "PrefetchCache.h"
</del><span class="cx"> #include "SandboxExtension.h"
</span><span class="cx"> #include "WebResourceLoadStatisticsStore.h"
</span><span class="cx"> #include "WebsiteData.h"
</span><span class="lines">@@ -333,8 +332,6 @@
</span><span class="cx"> 
</span><span class="cx">     WebCore::StorageQuotaManager& storageQuotaManager(PAL::SessionID, const WebCore::ClientOrigin&);
</span><span class="cx"> 
</span><del>-    PrefetchCache& prefetchCache() { return m_prefetchCache; }
-
</del><span class="cx"> private:
</span><span class="cx">     void platformInitializeNetworkProcess(const NetworkProcessCreationParameters&);
</span><span class="cx">     std::unique_ptr<WebCore::NetworkStorageSession> platformCreateDefaultStorageSession() const;
</span><span class="lines">@@ -556,8 +553,6 @@
</span><span class="cx">     };
</span><span class="cx">     HashMap<PAL::SessionID, StorageQuotaManagers> m_storageQuotaManagers;
</span><span class="cx">     uint32_t m_downloadMonitorSpeedMultiplier { 1 };
</span><del>-
-    PrefetchCache m_prefetchCache;
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKitNetworkProcessNetworkResourceLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp     2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp        2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -212,10 +212,6 @@
</span><span class="cx">     ASSERT(canUseCache(request));
</span><span class="cx"> 
</span><span class="cx">     RefPtr<NetworkResourceLoader> loader(this);
</span><del>-    if (isMainFrameLoad() && m_parameters.options.mode == FetchOptions::Mode::Navigate) {
-        if (auto entry = m_connection->networkProcess().prefetchCache().take(sessionID(), request.url()))
-            m_cache->store(request, entry->response, entry->releaseBuffer(), nullptr);
-    }
</del><span class="cx">     m_cache->retrieve(request, { m_parameters.webPageID, m_parameters.webFrameID }, [this, loader = WTFMove(loader), request = ResourceRequest { request }](auto entry, auto info) mutable {
</span><span class="cx">         if (loader->hasOneRef()) {
</span><span class="cx">             // The loader has been aborted and is only held alive by this lambda.
</span><span class="lines">@@ -465,9 +461,6 @@
</span><span class="cx">         return completionHandler(PolicyAction::Use);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (isCrossOriginPrefetch(originalRequest()))
-        return completionHandler(PolicyAction::Use);
-
</del><span class="cx">     // We wait to receive message NetworkResourceLoader::ContinueDidReceiveResponse before continuing a load for
</span><span class="cx">     // a main resource because the embedding client must decide whether to allow the load.
</span><span class="cx">     bool willWaitForContinueDidReceiveResponse = isMainResource();
</span><span class="lines">@@ -494,8 +487,6 @@
</span><span class="cx">         else
</span><span class="cx">             m_bufferedDataForCache = nullptr;
</span><span class="cx">     }
</span><del>-    if (isCrossOriginPrefetch(originalRequest()))
-        return;
</del><span class="cx">     // FIXME: At least on OS X Yosemite we always get -1 from the resource handle.
</span><span class="cx">     unsigned encodedDataLength = reportedEncodedDataLength >= 0 ? reportedEncodedDataLength : buffer->size();
</span><span class="cx"> 
</span><span class="lines">@@ -778,10 +769,6 @@
</span><span class="cx">     if (!m_bufferedDataForCache)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (isCrossOriginPrefetch(originalRequest())) {
-        m_connection->networkProcess().prefetchCache().store(sessionID(), m_networkLoad->currentRequest().url(), WTFMove(m_response), WTFMove(m_bufferedDataForCache));
-        return;
-    }
</del><span class="cx">     m_cache->store(m_networkLoad->currentRequest(), m_response, WTFMove(m_bufferedDataForCache), [loader = makeRef(*this)](auto& mappedBody) mutable {
</span><span class="cx"> #if ENABLE(SHAREABLE_RESOURCE)
</span><span class="cx">         if (mappedBody.shareableResourceHandle.isNull())
</span><span class="lines">@@ -1112,11 +1099,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool NetworkResourceLoader::isCrossOriginPrefetch(const ResourceRequest& request) const
-{
-    return request.httpHeaderField(HTTPHeaderName::Purpose) == "prefetch" && !m_parameters.sourceOrigin->canRequest(request.url());
-}
-
</del><span class="cx"> } // namespace WebKit
</span><span class="cx"> 
</span><span class="cx"> #undef RELEASE_LOG_IF_ALLOWED
</span></span></pre></div>
<a id="trunkSourceWebKitNetworkProcessNetworkResourceLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.h (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.h       2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.h  2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -103,7 +103,6 @@
</span><span class="cx"> 
</span><span class="cx">     bool isMainResource() const { return m_parameters.request.requester() == WebCore::ResourceRequest::Requester::Main; }
</span><span class="cx">     bool isMainFrameLoad() const { return isMainResource() && m_parameters.frameAncestorOrigins.isEmpty(); }
</span><del>-    bool isCrossOriginPrefetch(const WebCore::ResourceRequest&) const;
</del><span class="cx"> 
</span><span class="cx">     bool isAlwaysOnLoggingAllowed() const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitNetworkProcesscachePrefetchCachecpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebKit/NetworkProcess/cache/PrefetchCache.cpp (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/NetworkProcess/cache/PrefetchCache.cpp       2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebKit/NetworkProcess/cache/PrefetchCache.cpp  2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -1,104 +0,0 @@
</span><del>-/*
- * Copyright (C) 2019 Igalia S.L.
- *
- * 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. AND ITS CONTRIBUTORS ``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 ITS 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.
- */
-
-#include "config.h"
-#include "PrefetchCache.h"
-
-#include <WebCore/HTTPHeaderNames.h>
-#include <wtf/NeverDestroyed.h>
-
-namespace WebKit {
-
-PrefetchCache::Entry::Entry(WebCore::ResourceResponse&& response, RefPtr<WebCore::SharedBuffer>&& buffer)
-    : response(WTFMove(response)), buffer(WTFMove(buffer))
-{
-}
-
-PrefetchCache::PrefetchCache()
-    : m_expirationTimer(*this, &PrefetchCache::clearExpiredEntries)
-{
-}
-
-PrefetchCache::~PrefetchCache()
-{
-}
-
-void PrefetchCache::clear()
-{
-    m_expirationTimer.stop();
-    m_sessionExpirationList.clear();
-    m_sessionPrefetches.clear();
-}
-
-std::unique_ptr<PrefetchCache::Entry> PrefetchCache::take(PAL::SessionID sessionID, const URL& url)
-{
-    auto* resources = sessionPrefetchMap(sessionID);
-    if (!resources)
-        return nullptr;
-    return resources->take(url);
-}
-
-static const Seconds expirationTimeout { 5_s };
-
-void PrefetchCache::store(PAL::SessionID sessionID, const URL& requestUrl, WebCore::ResourceResponse&& response, RefPtr<WebCore::SharedBuffer>&& buffer)
-{
-    ASSERT(sessionID.isValid());
-    m_sessionPrefetches.ensure(sessionID, [&] {
-        return std::make_unique<PrefetchEntriesMap>();
-    }).iterator->value->set(requestUrl, std::make_unique<PrefetchCache::Entry>(WTFMove(response), WTFMove(buffer)));
-    m_sessionExpirationList.append(std::make_tuple(sessionID, requestUrl, WallTime::now()));
-    if (!m_expirationTimer.isActive())
-        m_expirationTimer.startOneShot(expirationTimeout);
-}
-
-auto PrefetchCache::sessionPrefetchMap(PAL::SessionID sessionID) const -> PrefetchEntriesMap*
-{
-    ASSERT(sessionID.isValid());
-    return m_sessionPrefetches.get(sessionID);
-}
-
-void PrefetchCache::clearExpiredEntries()
-{
-    PAL::SessionID sessionID;
-    URL requestUrl;
-    WallTime timestamp;
-    auto timeout = WallTime::now();
-    while (!m_sessionExpirationList.isEmpty()) {
-        std::tie(sessionID, requestUrl, timestamp) = m_sessionExpirationList.first();
-        auto* resources = sessionPrefetchMap(sessionID);
-        ASSERT(resources);
-        ASSERT(resources->contains(requestUrl));
-        auto elapsed = timeout - timestamp;
-        if (elapsed > expirationTimeout) {
-            resources->remove(requestUrl);
-            m_sessionExpirationList.removeFirst();
-        } else {
-            m_expirationTimer.startOneShot(expirationTimeout - elapsed);
-            break;
-        }
-    }
-}
-
-}
</del></span></pre></div>
<a id="trunkSourceWebKitNetworkProcesscachePrefetchCacheh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebKit/NetworkProcess/cache/PrefetchCache.h (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/NetworkProcess/cache/PrefetchCache.h 2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebKit/NetworkProcess/cache/PrefetchCache.h    2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -1,74 +0,0 @@
</span><del>-/*
- * Copyright (C) 2019 Igalia S.L.
- *
- * 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. AND ITS CONTRIBUTORS ``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 ITS 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.
- */
-
-#pragma once
-
-#include <WebCore/ResourceResponse.h>
-#include <WebCore/SharedBuffer.h>
-#include <WebCore/Timer.h>
-#include <wtf/Deque.h>
-#include <wtf/HashMap.h>
-#include <wtf/URLHash.h>
-#include <wtf/text/WTFString.h>
-
-namespace WebKit {
-
-class PrefetchCache {
-    WTF_MAKE_NONCOPYABLE(PrefetchCache);
-    WTF_MAKE_FAST_ALLOCATED;
-public:
-    PrefetchCache();
-    ~PrefetchCache();
-
-    void clear();
-
-    struct Entry {
-        Entry(WebCore::ResourceResponse&&, RefPtr<WebCore::SharedBuffer>&&);
-
-        RefPtr<WebCore::SharedBuffer> releaseBuffer() { return buffer.releaseNonNull(); }
-
-        WebCore::ResourceResponse response;
-        RefPtr<WebCore::SharedBuffer> buffer;
-    };
-
-    std::unique_ptr<Entry> take(PAL::SessionID, const URL&);
-    void store(PAL::SessionID, const URL&, WebCore::ResourceResponse&&, RefPtr<WebCore::SharedBuffer>&&);
-
-private:
-    void clearExpiredEntries();
-
-    using PrefetchEntriesMap = HashMap<URL, std::unique_ptr<Entry>>;
-    PrefetchEntriesMap* sessionPrefetchMap(PAL::SessionID) const;
-
-    using SessionPrefetchResourceMap = HashMap<PAL::SessionID, std::unique_ptr<PrefetchEntriesMap>>;
-    SessionPrefetchResourceMap m_sessionPrefetches;
-
-    using SessionPrefetchExpirationList = Deque<std::tuple<PAL::SessionID, URL, WallTime>>;
-    SessionPrefetchExpirationList m_sessionExpirationList;
-
-    WebCore::Timer m_expirationTimer;
-};
-
-} // namespace WebKit
</del></span></pre></div>
<a id="trunkSourceWebKitSharedWebPreferencesyaml"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/Shared/WebPreferences.yaml (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/Shared/WebPreferences.yaml   2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebKit/Shared/WebPreferences.yaml      2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -1650,14 +1650,6 @@
</span><span class="cx">   humanReadableName: "Apple Pay Remote UI"
</span><span class="cx">   type: bool
</span><span class="cx"> 
</span><del>-LinkPrefetchEnabled:
-  type: bool
-  defaultValue: false
-  humanReadableName: "LinkPrefetch"
-  humanReadableDescription: "Enable LinkedPrefetch"
-  webcoreBinding: RuntimeEnabledFeatures
-  category: experimental
-
</del><span class="cx"> # Deprecated
</span><span class="cx"> 
</span><span class="cx"> ICECandidateFilteringEnabled:
</span></span></pre></div>
<a id="trunkSourceWebKitSourcestxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/Sources.txt (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/Sources.txt  2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebKit/Sources.txt     2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -80,7 +80,6 @@
</span><span class="cx"> NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp
</span><span class="cx"> NetworkProcess/cache/NetworkCacheStorage.cpp
</span><span class="cx"> NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp
</span><del>-NetworkProcess/cache/PrefetchCache.cpp
</del><span class="cx"> 
</span><span class="cx"> NetworkProcess/webrtc/NetworkMDNSRegister.cpp
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitWebKitxcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (244427 => 244428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj     2019-04-18 16:34:21 UTC (rev 244427)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj        2019-04-18 16:44:18 UTC (rev 244428)
</span><span class="lines">@@ -1333,7 +1333,6 @@
</span><span class="cx">          A78CCDDB193AC9F8005ECC25 /* com.apple.WebKit.Networking.sb in CopyFiles */ = {isa = PBXBuildFile; fileRef = A78CCDD8193AC9E3005ECC25 /* com.apple.WebKit.Networking.sb */; };
</span><span class="cx">          A78CCDDC193AC9FB005ECC25 /* com.apple.WebKit.WebContent.sb in CopyFiles */ = {isa = PBXBuildFile; fileRef = A78CCDD9193AC9E3005ECC25 /* com.apple.WebKit.WebContent.sb */; };
</span><span class="cx">          A7D792D81767CCA300881CBE /* ActivityAssertion.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D792D41767CB0900881CBE /* ActivityAssertion.h */; };
</span><del>-               AAB145E6223F931200E489D8 /* PrefetchCache.h in Headers */ = {isa = PBXBuildFile; fileRef = AAB145E4223F931200E489D8 /* PrefetchCache.h */; };
</del><span class="cx">           B62E7312143047B00069EC35 /* WKHitTestResult.h in Headers */ = {isa = PBXBuildFile; fileRef = B62E7311143047B00069EC35 /* WKHitTestResult.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">          B878B615133428DC006888E9 /* CorrectionPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = B878B613133428DC006888E9 /* CorrectionPanel.h */; };
</span><span class="cx">          BC017D0716260FF4007054F5 /* WKDOMDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = BC017CFF16260FF4007054F5 /* WKDOMDocument.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -3979,8 +3978,6 @@
</span><span class="cx">          A7D792D41767CB0900881CBE /* ActivityAssertion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ActivityAssertion.h; sourceTree = "<group>"; };
</span><span class="cx">          A7D792D51767CB6E00881CBE /* ActivityAssertion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ActivityAssertion.cpp; sourceTree = "<group>"; };
</span><span class="cx">          A7E93CEB192531AA00A1DC48 /* AuxiliaryProcessIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AuxiliaryProcessIOS.mm; path = ios/AuxiliaryProcessIOS.mm; sourceTree = "<group>"; };
</span><del>-               AAB145E4223F931200E489D8 /* PrefetchCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrefetchCache.h; sourceTree = "<group>"; };
-               AAB145E5223F931200E489D8 /* PrefetchCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PrefetchCache.cpp; sourceTree = "<group>"; };
</del><span class="cx">           B396EA5512E0ED2D00F4FEB7 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
</span><span class="cx">          B62E730F143047A60069EC35 /* WKHitTestResult.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKHitTestResult.cpp; sourceTree = "<group>"; };
</span><span class="cx">          B62E7311143047B00069EC35 /* WKHitTestResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKHitTestResult.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -8943,8 +8940,6 @@
</span><span class="cx">                          E4436EC21A0CFDB200EAD204 /* NetworkCacheStorage.h */,
</span><span class="cx">                          8310428A1BD6B66F00A715E4 /* NetworkCacheSubresourcesEntry.cpp */,
</span><span class="cx">                          831042891BD6B66F00A715E4 /* NetworkCacheSubresourcesEntry.h */,
</span><del>-                               AAB145E5223F931200E489D8 /* PrefetchCache.cpp */,
-                               AAB145E4223F931200E489D8 /* PrefetchCache.h */,
</del><span class="cx">                   );
</span><span class="cx">                  path = cache;
</span><span class="cx">                  sourceTree = "<group>";
</span><span class="lines">@@ -9422,7 +9417,6 @@
</span><span class="cx">                          7CD622781739D863005BD7FF /* PluginSandboxProfile.h in Headers */,
</span><span class="cx">                          1A6FB7AF11E64B6800DB1371 /* PluginView.h in Headers */,
</span><span class="cx">                          83A0ED351F747CCF003299EB /* PreconnectTask.h in Headers */,
</span><del>-                               AAB145E6223F931200E489D8 /* PrefetchCache.h in Headers */,
</del><span class="cx">                           E1CC1B9012D7EADF00625838 /* PrintInfo.h in Headers */,
</span><span class="cx">                          86F9536518FF58F5001DB2EF /* ProcessAssertion.h in Headers */,
</span><span class="cx">                          BC1A7C581136E19C00FB7167 /* ProcessLauncher.h in Headers */,
</span></span></pre>
</div>
</div>

</body>
</html>