<!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>[201708] trunk/Source</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/201708">201708</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2016-06-06 01:25:16 -0700 (Mon, 06 Jun 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Reduce ResourceRequest copying in loading code
https://bugs.webkit.org/show_bug.cgi?id=158251

Patch by Alex Christensen &lt;achristensen@webkit.org&gt; on 2016-06-06
Reviewed by Darin Adler.

Source/WebCore:

No new tests. There should be no change in behavior except fewer unnecessary copies.
Before, we would pass a const ResourceRequest&amp; around, and if we needed to modify it
we would copy the whole thing, modify the copy, and pass the copy along.  This can be
accomplished with move semantics without the now-unnecessary copy.

The biggest conceptual change is that the synchronous ResourceHandleClient::willSendRequest
used to take a non-const ResourceRequest&amp; and modify it, but now it returns a modified
ResourceRequest instead.

* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::cannotShowURLError):
(WebCore::ResourceLoader::willSendRequest):
(WebCore::ResourceLoader::didSendData):
* loader/ResourceLoader.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(ResourceHandleStreamingClient::getOrCreateReadBuffer):
(ResourceHandleStreamingClient::willSendRequest):
(ResourceHandleStreamingClient::didReceiveResponse):
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.cpp:
(WebCore::ResourceHandleClient::~ResourceHandleClient):
(WebCore::ResourceHandleClient::willSendRequest):
(WebCore::ResourceHandleClient::willSendRequestAsync):
(WebCore::ResourceHandleClient::didReceiveResponseAsync):
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::didSendData):
(WebCore::ResourceHandleClient::didReceiveResponse):
(WebCore::ResourceHandleClient::loadingSynchronousXHR):
(WebCore::ResourceHandleClient::willSendRequest): Deleted.
* platform/network/SynchronousLoaderClient.cpp:
(WebCore::SynchronousLoaderClient::~SynchronousLoaderClient):
(WebCore::SynchronousLoaderClient::willSendRequest):
(WebCore::SynchronousLoaderClient::shouldUseCredentialStorage):
* platform/network/SynchronousLoaderClient.h:
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::cancel):
(WebCore::ResourceHandle::willSendRequest):
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::willSendRequest):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::continueWillSendRequest):
* platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
(-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
(-[WebCoreResourceHandleAsDelegate connectionShouldUseCredentialStorage:]):
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::shouldRedirectAsGET):
(WebCore::continueAfterWillSendRequest):
(WebCore::readCallback):
(WebCore::ResourceHandle::continueWillSendRequest):
(WebCore::ResourceHandle::continueDidReceiveResponse):

Source/WebKit2:

* NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::DownloadManager::continueWillSendRequest):
(WebKit::DownloadManager::willDecidePendingDownloadDestination):
* NetworkProcess/Downloads/DownloadManager.h:
* NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::PendingDownload):
(WebKit::PendingDownload::willSendRedirectedRequest):
(WebKit::PendingDownload::continueWillSendRequest):
(WebKit::PendingDownload::canAuthenticateAgainstProtectionSpaceAsync):
* NetworkProcess/Downloads/PendingDownload.h:
* NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTask::firstRequest):
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::cancel):
(WebKit::NetworkLoad::continueWillSendRequest):
(WebKit::NetworkLoad::sharedDidReceiveResponse):
(WebKit::NetworkLoad::sharedWillSendRedirectedRequest):
(WebKit::NetworkLoad::setPendingDownload):
(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didFail):
(WebKit::NetworkLoad::willSendRequestAsync):
* NetworkProcess/NetworkLoad.h:
(WebKit::NetworkLoad::currentRequest):
(WebKit::NetworkLoad::clearCurrentRequest):
(WebKit::NetworkLoad::pendingDownloadID):
* NetworkProcess/NetworkLoadClient.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::NetworkProcess::continueWillSendRequest):
(WebKit::NetworkProcess::pendingDownloadCanceled):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::continueDidReceiveResponse):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/PingLoad.h:
(WebKit::PingLoad::PingLoad):
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::~SpeculativeLoad):
(WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::didBecomeDownload):
(WebKit::NetworkDataTask::willPerformHTTPRedirection):
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::detachFromCoreLoader):
(WebKit::WebResourceLoader::willSendRequest):
* WebProcess/Network/WebResourceLoader.h:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreloaderResourceLoadercpp">trunk/Source/WebCore/loader/ResourceLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderResourceLoaderh">trunk/Source/WebCore/loader/ResourceLoader.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsgstreamerWebKitWebSourceGStreamercpp">trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkResourceHandleh">trunk/Source/WebCore/platform/network/ResourceHandle.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkResourceHandleClientcpp">trunk/Source/WebCore/platform/network/ResourceHandleClient.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkResourceHandleClienth">trunk/Source/WebCore/platform/network/ResourceHandleClient.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkSynchronousLoaderClientcpp">trunk/Source/WebCore/platform/network/SynchronousLoaderClient.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkSynchronousLoaderClienth">trunk/Source/WebCore/platform/network/SynchronousLoaderClient.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcfResourceHandleCFNetcpp">trunk/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcfResourceHandleCFURLConnectionDelegateWithOperationQueuecpp">trunk/Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcfSynchronousResourceHandleCFURLConnectionDelegatecpp">trunk/Source/WebCore/platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkmacResourceHandleMacmm">trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkmacWebCoreResourceHandleAsDelegatemm">trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkmacWebCoreResourceHandleAsOperationQueueDelegatemm">trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworksoupResourceHandleSoupcpp">trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessDownloadsDownloadManagercpp">trunk/Source/WebKit2/NetworkProcess/Downloads/DownloadManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessDownloadsDownloadManagerh">trunk/Source/WebKit2/NetworkProcess/Downloads/DownloadManager.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessDownloadsPendingDownloadcpp">trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessDownloadsPendingDownloadh">trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkDataTaskh">trunk/Source/WebKit2/NetworkProcess/NetworkDataTask.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkLoadcpp">trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkLoadh">trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkLoadClienth">trunk/Source/WebKit2/NetworkProcess/NetworkLoadClient.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkProcesscpp">trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkProcessh">trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkResourceLoadercpp">trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkResourceLoaderh">trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessPingLoadh">trunk/Source/WebKit2/NetworkProcess/PingLoad.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheSpeculativeLoadcpp">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheSpeculativeLoadh">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscocoaNetworkDataTaskCocoamm">trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessNetworkWebResourceLoadercpp">trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessNetworkWebResourceLoaderh">trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/ChangeLog        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -1,3 +1,67 @@
</span><ins>+2016-06-06  Alex Christensen  &lt;achristensen@webkit.org&gt;
+
+        Reduce ResourceRequest copying in loading code
+        https://bugs.webkit.org/show_bug.cgi?id=158251
+
+        Reviewed by Darin Adler.
+
+        No new tests. There should be no change in behavior except fewer unnecessary copies.
+        Before, we would pass a const ResourceRequest&amp; around, and if we needed to modify it
+        we would copy the whole thing, modify the copy, and pass the copy along.  This can be
+        accomplished with move semantics without the now-unnecessary copy.
+        
+        The biggest conceptual change is that the synchronous ResourceHandleClient::willSendRequest
+        used to take a non-const ResourceRequest&amp; and modify it, but now it returns a modified
+        ResourceRequest instead.
+
+        * loader/ResourceLoader.cpp:
+        (WebCore::ResourceLoader::cannotShowURLError):
+        (WebCore::ResourceLoader::willSendRequest):
+        (WebCore::ResourceLoader::didSendData):
+        * loader/ResourceLoader.h:
+        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
+        (ResourceHandleStreamingClient::getOrCreateReadBuffer):
+        (ResourceHandleStreamingClient::willSendRequest):
+        (ResourceHandleStreamingClient::didReceiveResponse):
+        * platform/network/ResourceHandle.h:
+        * platform/network/ResourceHandleClient.cpp:
+        (WebCore::ResourceHandleClient::~ResourceHandleClient):
+        (WebCore::ResourceHandleClient::willSendRequest):
+        (WebCore::ResourceHandleClient::willSendRequestAsync):
+        (WebCore::ResourceHandleClient::didReceiveResponseAsync):
+        * platform/network/ResourceHandleClient.h:
+        (WebCore::ResourceHandleClient::didSendData):
+        (WebCore::ResourceHandleClient::didReceiveResponse):
+        (WebCore::ResourceHandleClient::loadingSynchronousXHR):
+        (WebCore::ResourceHandleClient::willSendRequest): Deleted.
+        * platform/network/SynchronousLoaderClient.cpp:
+        (WebCore::SynchronousLoaderClient::~SynchronousLoaderClient):
+        (WebCore::SynchronousLoaderClient::willSendRequest):
+        (WebCore::SynchronousLoaderClient::shouldUseCredentialStorage):
+        * platform/network/SynchronousLoaderClient.h:
+        * platform/network/cf/ResourceHandleCFNet.cpp:
+        (WebCore::ResourceHandle::cancel):
+        (WebCore::ResourceHandle::willSendRequest):
+        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
+        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
+        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
+        (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::willSendRequest):
+        * platform/network/mac/ResourceHandleMac.mm:
+        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
+        (WebCore::ResourceHandle::willSendRequest):
+        (WebCore::ResourceHandle::continueWillSendRequest):
+        * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
+        (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
+        (-[WebCoreResourceHandleAsDelegate connectionShouldUseCredentialStorage:]):
+        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
+        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
+        * platform/network/soup/ResourceHandleSoup.cpp:
+        (WebCore::shouldRedirectAsGET):
+        (WebCore::continueAfterWillSendRequest):
+        (WebCore::readCallback):
+        (WebCore::ResourceHandle::continueWillSendRequest):
+        (WebCore::ResourceHandle::continueDidReceiveResponse):
+
</ins><span class="cx"> 2016-06-05  Sam Weinig  &lt;sam@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Add experimental support for spring based CSS animations
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderResourceLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/ResourceLoader.cpp (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/ResourceLoader.cpp        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/loader/ResourceLoader.cpp        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -607,11 +607,12 @@
</span><span class="cx">     return frameLoader()-&gt;client().cannotShowURLError(m_request);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ResourceLoader::willSendRequest(ResourceHandle*, ResourceRequest&amp; request, const ResourceResponse&amp; redirectResponse)
</del><ins>+ResourceRequest ResourceLoader::willSendRequest(ResourceHandle*, ResourceRequest&amp;&amp; request, ResourceResponse&amp;&amp; redirectResponse)
</ins><span class="cx"> {
</span><span class="cx">     if (documentLoader()-&gt;applicationCacheHost()-&gt;maybeLoadFallbackForRedirect(this, request, redirectResponse))
</span><del>-        return;
</del><ins>+        return WTFMove(request);
</ins><span class="cx">     willSendRequestInternal(request, redirectResponse);
</span><ins>+    return WTFMove(request);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ResourceLoader::didSendData(ResourceHandle*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent)
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderResourceLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/ResourceLoader.h (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/ResourceLoader.h        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/loader/ResourceLoader.h        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -183,7 +183,7 @@
</span><span class="cx">     void finishNetworkLoad();
</span><span class="cx"> 
</span><span class="cx">     // ResourceHandleClient
</span><del>-    void willSendRequest(ResourceHandle*, ResourceRequest&amp;, const ResourceResponse&amp; redirectResponse) override;
</del><ins>+    ResourceRequest willSendRequest(ResourceHandle*, ResourceRequest&amp;&amp;, ResourceResponse&amp;&amp; redirectResponse) override;
</ins><span class="cx">     void didSendData(ResourceHandle*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent) override;
</span><span class="cx">     void didReceiveResponse(ResourceHandle*, const ResourceResponse&amp;) override;
</span><span class="cx">     void didReceiveData(ResourceHandle*, const char*, unsigned, int encodedDataLength) override;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsgstreamerWebKitWebSourceGStreamercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx"> #if USE(SOUP)
</span><span class="cx">         char* getOrCreateReadBuffer(size_t requestedSize, size_t&amp; actualSize) override;
</span><span class="cx"> #endif
</span><del>-        void willSendRequest(ResourceHandle*, ResourceRequest&amp;, const ResourceResponse&amp;) override;
</del><ins>+        ResourceRequest willSendRequest(ResourceHandle*, ResourceRequest&amp;&amp;, ResourceResponse&amp;&amp;) override;
</ins><span class="cx">         void didReceiveResponse(ResourceHandle*, const ResourceResponse&amp;) override;
</span><span class="cx">         void didReceiveData(ResourceHandle*, const char*, unsigned, int) override;
</span><span class="cx">         void didReceiveBuffer(ResourceHandle*, PassRefPtr&lt;SharedBuffer&gt;, int encodedLength) override;
</span><span class="lines">@@ -1085,8 +1085,9 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-void ResourceHandleStreamingClient::willSendRequest(ResourceHandle*, ResourceRequest&amp;, const ResourceResponse&amp;)
</del><ins>+ResourceRequest ResourceHandleStreamingClient::willSendRequest(ResourceHandle*, ResourceRequest&amp;&amp; request, ResourceResponse&amp;&amp;)
</ins><span class="cx"> {
</span><ins>+    return WTFMove(request);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ResourceHandleStreamingClient::didReceiveResponse(ResourceHandle*, const ResourceResponse&amp; response)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkResourceHandleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/ResourceHandle.h (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/ResourceHandle.h        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/platform/network/ResourceHandle.h        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx">     WEBCORE_EXPORT virtual ~ResourceHandle();
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA) || USE(CFNETWORK)
</span><del>-    void willSendRequest(ResourceRequest&amp;, const ResourceResponse&amp; redirectResponse);
</del><ins>+    ResourceRequest willSendRequest(ResourceRequest&amp;&amp;, ResourceResponse&amp;&amp;);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA) || USE(CFNETWORK) || USE(CURL) || USE(SOUP)
</span><span class="lines">@@ -202,7 +202,7 @@
</span><span class="cx">     WEBCORE_EXPORT void clearClient();
</span><span class="cx"> 
</span><span class="cx">     // Called in response to ResourceHandleClient::willSendRequestAsync().
</span><del>-    WEBCORE_EXPORT void continueWillSendRequest(const ResourceRequest&amp;);
</del><ins>+    WEBCORE_EXPORT void continueWillSendRequest(ResourceRequest&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     // Called in response to ResourceHandleClient::didReceiveResponseAsync().
</span><span class="cx">     WEBCORE_EXPORT virtual void continueDidReceiveResponse();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkResourceHandleClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/ResourceHandleClient.cpp (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/ResourceHandleClient.cpp        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/platform/network/ResourceHandleClient.cpp        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx"> #include &quot;ResourceHandleClient.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ResourceHandle.h&quot;
</span><ins>+#include &quot;ResourceRequest.h&quot;
</ins><span class="cx"> #include &quot;SharedBuffer.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -38,10 +39,15 @@
</span><span class="cx"> ResourceHandleClient::~ResourceHandleClient()
</span><span class="cx"> {
</span><span class="cx"> }
</span><ins>+    
+ResourceRequest ResourceHandleClient::willSendRequest(ResourceHandle*, ResourceRequest&amp;&amp; request, ResourceResponse&amp;&amp;)
+{
+    return WTFMove(request);
+}
</ins><span class="cx"> 
</span><del>-void ResourceHandleClient::willSendRequestAsync(ResourceHandle* handle, const ResourceRequest&amp; request, const ResourceResponse&amp; /*redirectResponse*/)
</del><ins>+void ResourceHandleClient::willSendRequestAsync(ResourceHandle* handle, ResourceRequest&amp;&amp; request, ResourceResponse&amp;&amp; /*redirectResponse*/)
</ins><span class="cx"> {
</span><del>-    handle-&gt;continueWillSendRequest(request);
</del><ins>+    handle-&gt;continueWillSendRequest(WTFMove(request));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ResourceHandleClient::didReceiveResponseAsync(ResourceHandle* handle, const ResourceResponse&amp;)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkResourceHandleClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/ResourceHandleClient.h (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/ResourceHandleClient.h        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/platform/network/ResourceHandleClient.h        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -69,8 +69,7 @@
</span><span class="cx">         WEBCORE_EXPORT ResourceHandleClient();
</span><span class="cx">         WEBCORE_EXPORT virtual ~ResourceHandleClient();
</span><span class="cx"> 
</span><del>-        // Request may be modified.
-        virtual void willSendRequest(ResourceHandle*, ResourceRequest&amp;, const ResourceResponse&amp; /*redirectResponse*/) { }
</del><ins>+        WEBCORE_EXPORT virtual ResourceRequest willSendRequest(ResourceHandle*, ResourceRequest&amp;&amp;, ResourceResponse&amp;&amp;);
</ins><span class="cx">         virtual void didSendData(ResourceHandle*, unsigned long long /*bytesSent*/, unsigned long long /*totalBytesToBeSent*/) { }
</span><span class="cx"> 
</span><span class="cx">         virtual void didReceiveResponse(ResourceHandle*, const ResourceResponse&amp;) { }
</span><span class="lines">@@ -88,7 +87,7 @@
</span><span class="cx">         virtual bool loadingSynchronousXHR() { return false; }
</span><span class="cx"> 
</span><span class="cx">         // Client will pass an updated request using ResourceHandle::continueWillSendRequest() when ready.
</span><del>-        WEBCORE_EXPORT virtual void willSendRequestAsync(ResourceHandle*, const ResourceRequest&amp;, const ResourceResponse&amp; redirectResponse);
</del><ins>+        WEBCORE_EXPORT virtual void willSendRequestAsync(ResourceHandle*, ResourceRequest&amp;&amp;, ResourceResponse&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">         // Client will call ResourceHandle::continueDidReceiveResponse() when ready.
</span><span class="cx">         WEBCORE_EXPORT virtual void didReceiveResponseAsync(ResourceHandle*, const ResourceResponse&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkSynchronousLoaderClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/SynchronousLoaderClient.cpp (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/SynchronousLoaderClient.cpp        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/platform/network/SynchronousLoaderClient.cpp        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -36,16 +36,16 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void SynchronousLoaderClient::willSendRequest(ResourceHandle* handle, ResourceRequest&amp; request, const ResourceResponse&amp; /*redirectResponse*/)
</del><ins>+ResourceRequest SynchronousLoaderClient::willSendRequest(ResourceHandle* handle, ResourceRequest&amp;&amp; request, ResourceResponse&amp;&amp;)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: This needs to be fixed to follow the redirect correctly even for cross-domain requests.
</span><span class="cx">     if (protocolHostAndPortAreEqual(handle-&gt;firstRequest().url(), request.url()))
</span><del>-        return;
</del><ins>+        return WTFMove(request);
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(m_error.isNull());
</span><span class="cx">     m_error = platformBadResponseError();
</span><span class="cx">     m_isDone = true;
</span><del>-    request = ResourceRequest();
</del><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool SynchronousLoaderClient::shouldUseCredentialStorage(ResourceHandle*)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkSynchronousLoaderClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/SynchronousLoaderClient.h (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/SynchronousLoaderClient.h        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/platform/network/SynchronousLoaderClient.h        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx">     WEBCORE_EXPORT static ResourceError platformBadResponseError();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    void willSendRequest(ResourceHandle*, ResourceRequest&amp;, const ResourceResponse&amp; /*redirectResponse*/) override;
</del><ins>+    ResourceRequest willSendRequest(ResourceHandle*, ResourceRequest&amp;&amp;, ResourceResponse&amp;&amp;) override;
</ins><span class="cx">     bool shouldUseCredentialStorage(ResourceHandle*) override;
</span><span class="cx">     void didReceiveAuthenticationChallenge(ResourceHandle*, const AuthenticationChallenge&amp;) override;
</span><span class="cx">     void didReceiveResponse(ResourceHandle*, const ResourceResponse&amp;) override;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcfResourceHandleCFNetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -287,7 +287,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ResourceHandle::willSendRequest(ResourceRequest&amp; request, const ResourceResponse&amp; redirectResponse)
</del><ins>+ResourceRequest ResourceHandle::willSendRequest(ResourceRequest&amp;&amp; request, ResourceResponse&amp;&amp; redirectResponse)
</ins><span class="cx"> {
</span><span class="cx">     const URL&amp; url = request.url();
</span><span class="cx">     d-&gt;m_user = url.user();
</span><span class="lines">@@ -315,18 +315,20 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     Ref&lt;ResourceHandle&gt; protectedThis(*this);
</span><del>-    if (d-&gt;m_usesAsyncCallbacks)
-        client()-&gt;willSendRequestAsync(this, request, redirectResponse);
-    else {
-        client()-&gt;willSendRequest(this, request, redirectResponse);
</del><ins>+    if (d-&gt;m_usesAsyncCallbacks) {
+        client()-&gt;willSendRequestAsync(this, WTFMove(request), WTFMove(redirectResponse));
+        return { };
+    }
+    
+    auto newRequest = client()-&gt;willSendRequest(this, WTFMove(request), WTFMove(redirectResponse));
</ins><span class="cx"> 
</span><del>-        // Client call may not preserve the session, especially if the request is sent over IPC.
-        if (!request.isNull()) {
-            request.setStorageSession(d-&gt;m_storageSession.get());
</del><ins>+    // Client call may not preserve the session, especially if the request is sent over IPC.
+    if (!newRequest.isNull()) {
+        newRequest.setStorageSession(d-&gt;m_storageSession.get());
</ins><span class="cx"> 
</span><del>-            d-&gt;m_currentRequest = request;
-        }
</del><ins>+        d-&gt;m_currentRequest = newRequest;
</ins><span class="cx">     }
</span><ins>+    return newRequest;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool ResourceHandle::shouldUseCredentialStorage()
</span><span class="lines">@@ -650,12 +652,11 @@
</span><span class="cx">     return d-&gt;m_currentRequest;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ResourceHandle::continueWillSendRequest(const ResourceRequest&amp; request)
</del><ins>+void ResourceHandle::continueWillSendRequest(ResourceRequest&amp;&amp; request)
</ins><span class="cx"> {
</span><del>-    ResourceRequest requestResult = request;
-    if (!requestResult.isNull())
-        requestResult.setStorageSession(d-&gt;m_storageSession.get());
-    d-&gt;m_connectionDelegate-&gt;continueWillSendRequest(requestResult.cfURLRequest(UpdateHTTPBody));
</del><ins>+    if (!request.isNull())
+        request.setStorageSession(d-&gt;m_storageSession.get());
+    d-&gt;m_connectionDelegate-&gt;continueWillSendRequest(request.cfURLRequest(UpdateHTTPBody));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ResourceHandle::continueDidReceiveResponse()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcfResourceHandleCFURLConnectionDelegateWithOperationQueuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -118,7 +118,7 @@
</span><span class="cx">         ASSERT(redirectResponse);
</span><span class="cx"> 
</span><span class="cx">         ResourceRequest request = createResourceRequest(cfRequest, redirectResponse.get());
</span><del>-        m_handle-&gt;willSendRequest(request, redirectResponse.get());
</del><ins>+        m_handle-&gt;willSendRequest(WTFMove(request), redirectResponse.get());
</ins><span class="cx">     });
</span><span class="cx"> 
</span><span class="cx">     dispatch_semaphore_wait(m_semaphore, DISPATCH_TIME_FOREVER);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcfSynchronousResourceHandleCFURLConnectionDelegatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -92,15 +92,15 @@
</span><span class="cx">     LOG(Network, &quot;CFNet - SynchronousResourceHandleCFURLConnectionDelegate::willSendRequest(handle=%p) (%s)&quot;, m_handle, m_handle-&gt;firstRequest().url().string().utf8().data());
</span><span class="cx"> 
</span><span class="cx">     ResourceRequest request = createResourceRequest(cfRequest, redirectResponse.get());
</span><del>-    m_handle-&gt;willSendRequest(request, redirectResponse.get());
</del><ins>+    auto newRequest = m_handle-&gt;willSendRequest(WTFMove(request), redirectResponse.get());
</ins><span class="cx"> 
</span><del>-    if (request.isNull())
-        return 0;
</del><ins>+    if (newRequest.isNull())
+        return nullptr;
</ins><span class="cx"> 
</span><del>-    cfRequest = request.cfURLRequest(UpdateHTTPBody);
</del><ins>+    auto newCFRequest = newRequest.cfURLRequest(UpdateHTTPBody);
</ins><span class="cx"> 
</span><del>-    CFRetain(cfRequest);
-    return cfRequest;
</del><ins>+    CFRetain(newCFRequest);
+    return newCFRequest;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if !PLATFORM(COCOA)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkmacResourceHandleMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -440,7 +440,7 @@
</span><span class="cx">     data.swap(client.mutableData());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ResourceHandle::willSendRequest(ResourceRequest&amp; request, const ResourceResponse&amp; redirectResponse)
</del><ins>+ResourceRequest ResourceHandle::willSendRequest(ResourceRequest&amp;&amp; request, ResourceResponse&amp;&amp; redirectResponse)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!redirectResponse.isNull());
</span><span class="cx"> 
</span><span class="lines">@@ -489,23 +489,24 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (d-&gt;m_usesAsyncCallbacks) {
</span><del>-        client()-&gt;willSendRequestAsync(this, request, redirectResponse);
-    } else {
-        Ref&lt;ResourceHandle&gt; protectedThis(*this);
-        client()-&gt;willSendRequest(this, request, redirectResponse);
</del><ins>+        client()-&gt;willSendRequestAsync(this, WTFMove(request), WTFMove(redirectResponse));
+        return { };
+    }
</ins><span class="cx"> 
</span><del>-        // Client call may not preserve the session, especially if the request is sent over IPC.
-        if (!request.isNull())
-            request.setStorageSession(d-&gt;m_storageSession.get());
-    }
</del><ins>+    Ref&lt;ResourceHandle&gt; protectedThis(*this);
+    auto newRequest = client()-&gt;willSendRequest(this, WTFMove(request), WTFMove(redirectResponse));
+
+    // Client call may not preserve the session, especially if the request is sent over IPC.
+    if (!newRequest.isNull())
+        newRequest.setStorageSession(d-&gt;m_storageSession.get());
+    return newRequest;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ResourceHandle::continueWillSendRequest(const ResourceRequest&amp; request)
</del><ins>+void ResourceHandle::continueWillSendRequest(ResourceRequest&amp;&amp; newRequest)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(d-&gt;m_usesAsyncCallbacks);
</span><span class="cx"> 
</span><span class="cx">     // Client call may not preserve the session, especially if the request is sent over IPC.
</span><del>-    ResourceRequest newRequest = request;
</del><span class="cx">     if (!newRequest.isNull())
</span><span class="cx">         newRequest.setStorageSession(d-&gt;m_storageSession.get());
</span><span class="cx">     [(id)delegate() continueWillSendRequest:newRequest.nsURLRequest(UpdateHTTPBody)];
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkmacWebCoreResourceHandleAsDelegatemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -77,11 +77,7 @@
</span><span class="cx">         LOG(Network, &quot;Handle %p delegate connection:%p willSendRequest:%@ redirectResponse:non-HTTP&quot;, m_handle, connection, [newRequest description]); 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    ResourceRequest request = newRequest;
-
-    m_handle-&gt;willSendRequest(request, redirectResponse);
-
-    return request.nsURLRequest(UpdateHTTPBody);
</del><ins>+    return m_handle-&gt;willSendRequest(newRequest, redirectResponse).nsURLRequest(UpdateHTTPBody);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)connectionShouldUseCredentialStorage:(NSURLConnection *)connection
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkmacWebCoreResourceHandleAsOperationQueueDelegatemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -122,9 +122,7 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        ResourceRequest request = newRequest;
-
-        m_handle-&gt;willSendRequest(request, redirectResponse);
</del><ins>+        m_handle-&gt;willSendRequest(newRequest, redirectResponse);
</ins><span class="cx">     });
</span><span class="cx"> 
</span><span class="cx">     dispatch_semaphore_wait(m_semaphore, DISPATCH_TIME_FOREVER);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworksoupResourceHandleSoupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -464,18 +464,17 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void continueAfterWillSendRequest(ResourceHandle* handle, const ResourceRequest&amp; request)
</del><ins>+static void continueAfterWillSendRequest(ResourceHandle* handle, ResourceRequest&amp;&amp; request)
</ins><span class="cx"> {
</span><span class="cx">     // willSendRequest might cancel the load.
</span><span class="cx">     if (handle-&gt;cancelledOrClientless())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    ResourceRequest newRequest(request);
</del><span class="cx">     ResourceHandleInternal* d = handle-&gt;getInternal();
</span><del>-    if (protocolHostAndPortAreEqual(newRequest.url(), d-&gt;m_response.url()))
-        applyAuthenticationToRequest(handle, newRequest, true);
</del><ins>+    if (protocolHostAndPortAreEqual(request.url(), d-&gt;m_response.url()))
+        applyAuthenticationToRequest(handle, request, true);
</ins><span class="cx"> 
</span><del>-    if (!createSoupRequestAndMessageForHandle(handle, newRequest)) {
</del><ins>+    if (!createSoupRequestAndMessageForHandle(handle, request)) {
</ins><span class="cx">         d-&gt;client()-&gt;cannotShowURL(handle);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -532,11 +531,12 @@
</span><span class="cx"> 
</span><span class="cx">     cleanupSoupRequestOperation(handle);
</span><span class="cx"> 
</span><ins>+    ResourceResponse responseCopy = d-&gt;m_response;
</ins><span class="cx">     if (d-&gt;client()-&gt;usesAsyncCallbacks())
</span><del>-        d-&gt;client()-&gt;willSendRequestAsync(handle, newRequest, d-&gt;m_response);
</del><ins>+        d-&gt;client()-&gt;willSendRequestAsync(handle, WTFMove(newRequest), WTFMove(responseCopy));
</ins><span class="cx">     else {
</span><del>-        d-&gt;client()-&gt;willSendRequest(handle, newRequest, d-&gt;m_response);
-        continueAfterWillSendRequest(handle, newRequest);
</del><ins>+        auto request = d-&gt;client()-&gt;willSendRequest(handle, WTFMove(newRequest), WTFMove(responseCopy));
+        continueAfterWillSendRequest(handle, WTFMove(request));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> }
</span><span class="lines">@@ -1367,10 +1367,10 @@
</span><span class="cx">         d-&gt;m_cancellable.get(), readCallback, handle.get());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ResourceHandle::continueWillSendRequest(const ResourceRequest&amp; request)
</del><ins>+void ResourceHandle::continueWillSendRequest(ResourceRequest&amp;&amp; request)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!client() || client()-&gt;usesAsyncCallbacks());
</span><del>-    continueAfterWillSendRequest(this, request);
</del><ins>+    continueAfterWillSendRequest(this, WTFMove(request));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ResourceHandle::continueDidReceiveResponse()
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/ChangeLog        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -1,3 +1,63 @@
</span><ins>+2016-06-06  Alex Christensen  &lt;achristensen@webkit.org&gt;
+
+        Reduce ResourceRequest copying in loading code
+        https://bugs.webkit.org/show_bug.cgi?id=158251
+
+        Reviewed by Darin Adler.
+
+        * NetworkProcess/Downloads/DownloadManager.cpp:
+        (WebKit::DownloadManager::continueCanAuthenticateAgainstProtectionSpace):
+        (WebKit::DownloadManager::continueWillSendRequest):
+        (WebKit::DownloadManager::willDecidePendingDownloadDestination):
+        * NetworkProcess/Downloads/DownloadManager.h:
+        * NetworkProcess/Downloads/PendingDownload.cpp:
+        (WebKit::PendingDownload::PendingDownload):
+        (WebKit::PendingDownload::willSendRedirectedRequest):
+        (WebKit::PendingDownload::continueWillSendRequest):
+        (WebKit::PendingDownload::canAuthenticateAgainstProtectionSpaceAsync):
+        * NetworkProcess/Downloads/PendingDownload.h:
+        * NetworkProcess/NetworkDataTask.h:
+        (WebKit::NetworkDataTask::firstRequest):
+        * NetworkProcess/NetworkLoad.cpp:
+        (WebKit::NetworkLoad::cancel):
+        (WebKit::NetworkLoad::continueWillSendRequest):
+        (WebKit::NetworkLoad::sharedDidReceiveResponse):
+        (WebKit::NetworkLoad::sharedWillSendRedirectedRequest):
+        (WebKit::NetworkLoad::setPendingDownload):
+        (WebKit::NetworkLoad::willPerformHTTPRedirection):
+        (WebKit::NetworkLoad::didReceiveChallenge):
+        (WebKit::NetworkLoad::didFail):
+        (WebKit::NetworkLoad::willSendRequestAsync):
+        * NetworkProcess/NetworkLoad.h:
+        (WebKit::NetworkLoad::currentRequest):
+        (WebKit::NetworkLoad::clearCurrentRequest):
+        (WebKit::NetworkLoad::pendingDownloadID):
+        * NetworkProcess/NetworkLoadClient.h:
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace):
+        (WebKit::NetworkProcess::continueWillSendRequest):
+        (WebKit::NetworkProcess::pendingDownloadCanceled):
+        * NetworkProcess/NetworkProcess.h:
+        * NetworkProcess/NetworkResourceLoader.cpp:
+        (WebKit::NetworkResourceLoader::didFailLoading):
+        (WebKit::NetworkResourceLoader::willSendRedirectedRequest):
+        (WebKit::NetworkResourceLoader::continueWillSendRequest):
+        (WebKit::NetworkResourceLoader::continueDidReceiveResponse):
+        * NetworkProcess/NetworkResourceLoader.h:
+        * NetworkProcess/PingLoad.h:
+        (WebKit::PingLoad::PingLoad):
+        * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
+        (WebKit::NetworkCache::SpeculativeLoad::~SpeculativeLoad):
+        (WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):
+        * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
+        * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
+        (WebKit::NetworkDataTask::didBecomeDownload):
+        (WebKit::NetworkDataTask::willPerformHTTPRedirection):
+        * WebProcess/Network/WebResourceLoader.cpp:
+        (WebKit::WebResourceLoader::detachFromCoreLoader):
+        (WebKit::WebResourceLoader::willSendRequest):
+        * WebProcess/Network/WebResourceLoader.h:
+
</ins><span class="cx"> 2016-06-05  Sam Weinig  &lt;sam@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Add experimental support for spring based CSS animations
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessDownloadsDownloadManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/Downloads/DownloadManager.cpp (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/Downloads/DownloadManager.cpp        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/Downloads/DownloadManager.cpp        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -87,12 +87,12 @@
</span><span class="cx">         pendingDownload-&gt;continueCanAuthenticateAgainstProtectionSpace(canAuthenticate);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void DownloadManager::continueWillSendRequest(DownloadID downloadID, const WebCore::ResourceRequest&amp; request)
</del><ins>+void DownloadManager::continueWillSendRequest(DownloadID downloadID, WebCore::ResourceRequest&amp;&amp; request)
</ins><span class="cx"> {
</span><span class="cx">     auto* pendingDownload = m_pendingDownloads.get(downloadID);
</span><span class="cx">     ASSERT(pendingDownload);
</span><span class="cx">     if (pendingDownload)
</span><del>-        pendingDownload-&gt;continueWillSendRequest(request);
</del><ins>+        pendingDownload-&gt;continueWillSendRequest(WTFMove(request));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DownloadManager::willDecidePendingDownloadDestination(NetworkDataTask&amp; networkDataTask, ResponseCompletionHandler completionHandler)
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessDownloadsDownloadManagerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/Downloads/DownloadManager.h (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/Downloads/DownloadManager.h        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/Downloads/DownloadManager.h        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -78,7 +78,7 @@
</span><span class="cx"> #if USE(NETWORK_SESSION)
</span><span class="cx">     std::pair&lt;RefPtr&lt;NetworkDataTask&gt;, std::unique_ptr&lt;PendingDownload&gt;&gt; dataTaskBecameDownloadTask(DownloadID, std::unique_ptr&lt;Download&gt;&amp;&amp;);
</span><span class="cx">     void continueCanAuthenticateAgainstProtectionSpace(DownloadID, bool canAuthenticate);
</span><del>-    void continueWillSendRequest(DownloadID, const WebCore::ResourceRequest&amp;);
</del><ins>+    void continueWillSendRequest(DownloadID, WebCore::ResourceRequest&amp;&amp;);
</ins><span class="cx">     void willDecidePendingDownloadDestination(NetworkDataTask&amp;, ResponseCompletionHandler);
</span><span class="cx">     void continueDecidePendingDownloadDestination(DownloadID, String destination, const SandboxExtension::Handle&amp;, bool allowOverwrite);
</span><span class="cx"> #else
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessDownloadsPendingDownloadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.cpp (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.cpp        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.cpp        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -45,14 +45,14 @@
</span><span class="cx">     m_networkLoad-&gt;setPendingDownload(*this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void PendingDownload::willSendRedirectedRequest(const WebCore::ResourceRequest&amp;, const WebCore::ResourceRequest&amp; redirectRequest, const WebCore::ResourceResponse&amp; redirectResponse)
</del><ins>+void PendingDownload::willSendRedirectedRequest(WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceRequest&amp;&amp; redirectRequest, WebCore::ResourceResponse&amp;&amp; redirectResponse)
</ins><span class="cx"> {
</span><del>-    send(Messages::DownloadProxy::WillSendRequest(redirectRequest, redirectResponse));
</del><ins>+    send(Messages::DownloadProxy::WillSendRequest(WTFMove(redirectRequest), WTFMove(redirectResponse)));
</ins><span class="cx"> };
</span><span class="cx">     
</span><del>-void PendingDownload::continueWillSendRequest(const WebCore::ResourceRequest&amp; newRequest)
</del><ins>+void PendingDownload::continueWillSendRequest(WebCore::ResourceRequest&amp;&amp; newRequest)
</ins><span class="cx"> {
</span><del>-    m_networkLoad-&gt;continueWillSendRequest(newRequest);
</del><ins>+    m_networkLoad-&gt;continueWillSendRequest(WTFMove(newRequest));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void PendingDownload::canAuthenticateAgainstProtectionSpaceAsync(const WebCore::ProtectionSpace&amp; protectionSpace)
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessDownloadsPendingDownloadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.h (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.h        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.h        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> public:
</span><span class="cx">     PendingDownload(const NetworkLoadParameters&amp;, DownloadID);
</span><span class="cx"> 
</span><del>-    void continueWillSendRequest(const WebCore::ResourceRequest&amp;);
</del><ins>+    void continueWillSendRequest(WebCore::ResourceRequest&amp;&amp;);
</ins><span class="cx">     void continueCanAuthenticateAgainstProtectionSpace(bool canAuthenticate);
</span><span class="cx"> 
</span><span class="cx"> private:    
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">     void didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent) override { }
</span><span class="cx">     void canAuthenticateAgainstProtectionSpaceAsync(const WebCore::ProtectionSpace&amp;) override;
</span><span class="cx">     bool isSynchronous() const override { return false; }
</span><del>-    void willSendRedirectedRequest(const WebCore::ResourceRequest&amp;, const WebCore::ResourceRequest&amp; redirectRequest, const WebCore::ResourceResponse&amp; redirectResponse) override;
</del><ins>+    void willSendRedirectedRequest(WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceRequest&amp;&amp; redirectRequest, WebCore::ResourceResponse&amp;&amp; redirectResponse) override;
</ins><span class="cx">     ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&amp;) override { return ShouldContinueDidReceiveResponse::No; };
</span><span class="cx">     void didReceiveBuffer(RefPtr&lt;WebCore::SharedBuffer&gt;&amp;&amp;, int reportedEncodedDataLength) override { };
</span><span class="cx">     void didFinishLoading(double finishTime) override { };
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkDataTaskh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkDataTask.h (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkDataTask.h        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkDataTask.h        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx"> 
</span><span class="cx"> class NetworkDataTaskClient {
</span><span class="cx"> public:
</span><del>-    virtual void willPerformHTTPRedirection(const WebCore::ResourceResponse&amp;, const WebCore::ResourceRequest&amp;, RedirectCompletionHandler) = 0;
</del><ins>+    virtual void willPerformHTTPRedirection(WebCore::ResourceResponse&amp;&amp;, WebCore::ResourceRequest&amp;&amp;, RedirectCompletionHandler) = 0;
</ins><span class="cx">     virtual void didReceiveChallenge(const WebCore::AuthenticationChallenge&amp;, ChallengeCompletionHandler) = 0;
</span><span class="cx">     virtual void didReceiveResponseNetworkSession(const WebCore::ResourceResponse&amp;, ResponseCompletionHandler) = 0;
</span><span class="cx">     virtual void didReceiveData(RefPtr&lt;WebCore::SharedBuffer&gt;&amp;&amp;) = 0;
</span><span class="lines">@@ -126,7 +126,7 @@
</span><span class="cx">     const WebCore::ResourceRequest&amp; firstRequest() const { return m_firstRequest; }
</span><span class="cx">     WebCore::ResourceRequest currentRequest();
</span><span class="cx">     String suggestedFilename();
</span><del>-    void willPerformHTTPRedirection(const WebCore::ResourceResponse&amp;, WebCore::ResourceRequest&amp;&amp;, RedirectCompletionHandler);
</del><ins>+    void willPerformHTTPRedirection(WebCore::ResourceResponse&amp;&amp;, WebCore::ResourceRequest&amp;&amp;, RedirectCompletionHandler);
</ins><span class="cx">     void transferSandboxExtensionToDownload(Download&amp;);
</span><span class="cx">     bool allowsSpecificHTTPSCertificateForHost(const WebCore::AuthenticationChallenge&amp;);
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkLoadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx">         m_handle-&gt;cancel();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void NetworkLoad::continueWillSendRequest(const WebCore::ResourceRequest&amp; newRequest)
</del><ins>+void NetworkLoad::continueWillSendRequest(WebCore::ResourceRequest&amp;&amp; newRequest)
</ins><span class="cx"> {
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx">     m_currentRequest.updateFromDelegatePreservingOldProperties(newRequest.nsURLRequest(DoNotUpdateHTTPBody));
</span><span class="lines">@@ -128,8 +128,10 @@
</span><span class="cx">             redirectCompletionHandler({ });
</span><span class="cx"> #endif
</span><span class="cx">         return;
</span><del>-    } else if (m_handle)
-        m_handle-&gt;continueWillSendRequest(m_currentRequest);
</del><ins>+    } else if (m_handle) {
+        auto currentRequestCopy = m_currentRequest;
+        m_handle-&gt;continueWillSendRequest(WTFMove(currentRequestCopy));
+    }
</ins><span class="cx"> 
</span><span class="cx"> #if USE(NETWORK_SESSION)
</span><span class="cx">     if (redirectCompletionHandler)
</span><span class="lines">@@ -160,15 +162,15 @@
</span><span class="cx">     return m_client.didReceiveResponse(response);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void NetworkLoad::sharedWillSendRedirectedRequest(const ResourceRequest&amp; request, const ResourceResponse&amp; redirectResponse)
</del><ins>+void NetworkLoad::sharedWillSendRedirectedRequest(ResourceRequest&amp;&amp; request, ResourceResponse&amp;&amp; redirectResponse)
</ins><span class="cx"> {
</span><span class="cx">     // We only expect to get the willSendRequest callback from ResourceHandle as the result of a redirect.
</span><span class="cx">     ASSERT(!redirectResponse.isNull());
</span><span class="cx">     ASSERT(RunLoop::isMain());
</span><span class="cx"> 
</span><del>-    auto oldRequest = m_currentRequest;
</del><ins>+    auto oldRequest = WTFMove(m_currentRequest);
</ins><span class="cx">     m_currentRequest = request;
</span><del>-    m_client.willSendRedirectedRequest(oldRequest, request, redirectResponse);
</del><ins>+    m_client.willSendRedirectedRequest(WTFMove(oldRequest), WTFMove(request), WTFMove(redirectResponse));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if USE(NETWORK_SESSION)
</span><span class="lines">@@ -201,11 +203,11 @@
</span><span class="cx">     m_task-&gt;setPendingDownload(pendingDownload);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void NetworkLoad::willPerformHTTPRedirection(const ResourceResponse&amp; response, const ResourceRequest&amp; request, RedirectCompletionHandler completionHandler)
</del><ins>+void NetworkLoad::willPerformHTTPRedirection(ResourceResponse&amp;&amp; response, ResourceRequest&amp;&amp; request, RedirectCompletionHandler completionHandler)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!m_redirectCompletionHandler);
</span><span class="cx">     m_redirectCompletionHandler = completionHandler;
</span><del>-    sharedWillSendRedirectedRequest(request, response);
</del><ins>+    sharedWillSendRedirectedRequest(WTFMove(request), WTFMove(response));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void NetworkLoad::didReceiveChallenge(const AuthenticationChallenge&amp; challenge, std::function&lt;void(AuthenticationChallengeDisposition, const Credential&amp;)&gt; completionHandler)
</span><span class="lines">@@ -318,10 +320,10 @@
</span><span class="cx">     m_client.didFailLoading(error);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void NetworkLoad::willSendRequestAsync(ResourceHandle* handle, const ResourceRequest&amp; request, const ResourceResponse&amp; redirectResponse)
</del><ins>+void NetworkLoad::willSendRequestAsync(ResourceHandle* handle, ResourceRequest&amp;&amp; request, ResourceResponse&amp;&amp; redirectResponse)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT_UNUSED(handle, handle == m_handle);
</span><del>-    sharedWillSendRedirectedRequest(request, redirectResponse);
</del><ins>+    sharedWillSendRedirectedRequest(WTFMove(request), WTFMove(redirectResponse));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if USE(PROTECTION_SPACE_AUTH_CALLBACK)
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkLoadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx">     const WebCore::ResourceRequest&amp; currentRequest() const { return m_currentRequest; }
</span><span class="cx">     void clearCurrentRequest() { m_currentRequest = WebCore::ResourceRequest(); }
</span><span class="cx"> 
</span><del>-    void continueWillSendRequest(const WebCore::ResourceRequest&amp;);
</del><ins>+    void continueWillSendRequest(WebCore::ResourceRequest&amp;&amp;);
</ins><span class="cx">     void continueDidReceiveResponse();
</span><span class="cx"> 
</span><span class="cx"> #if USE(NETWORK_SESSION)
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx">     DownloadID pendingDownloadID() { return m_task-&gt;pendingDownloadID(); }
</span><span class="cx">     
</span><span class="cx">     // NetworkDataTaskClient
</span><del>-    void willPerformHTTPRedirection(const WebCore::ResourceResponse&amp;, const WebCore::ResourceRequest&amp;, RedirectCompletionHandler) final;
</del><ins>+    void willPerformHTTPRedirection(WebCore::ResourceResponse&amp;&amp;, WebCore::ResourceRequest&amp;&amp;, RedirectCompletionHandler) final;
</ins><span class="cx">     void didReceiveChallenge(const WebCore::AuthenticationChallenge&amp;, ChallengeCompletionHandler) final;
</span><span class="cx">     void didReceiveResponseNetworkSession(const WebCore::ResourceResponse&amp;, ResponseCompletionHandler) final;
</span><span class="cx">     void didReceiveData(RefPtr&lt;WebCore::SharedBuffer&gt;&amp;&amp;) final;
</span><span class="lines">@@ -76,7 +76,7 @@
</span><span class="cx">     void cannotShowURL() override;
</span><span class="cx"> #endif
</span><span class="cx">     // ResourceHandleClient
</span><del>-    void willSendRequestAsync(WebCore::ResourceHandle*, const WebCore::ResourceRequest&amp;, const WebCore::ResourceResponse&amp; redirectResponse) override;
</del><ins>+    void willSendRequestAsync(WebCore::ResourceHandle*, WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceResponse&amp;&amp; redirectResponse) override;
</ins><span class="cx">     void didSendData(WebCore::ResourceHandle*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent) override;
</span><span class="cx">     void didReceiveResponseAsync(WebCore::ResourceHandle*, const WebCore::ResourceResponse&amp;) override;
</span><span class="cx">     void didReceiveData(WebCore::ResourceHandle*, const char*, unsigned, int encodedDataLength) override;
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     NetworkLoadClient::ShouldContinueDidReceiveResponse sharedDidReceiveResponse(const WebCore::ResourceResponse&amp;);
</span><del>-    void sharedWillSendRedirectedRequest(const WebCore::ResourceRequest&amp;, const WebCore::ResourceResponse&amp;);
</del><ins>+    void sharedWillSendRedirectedRequest(WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceResponse&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     NetworkLoadClient&amp; m_client;
</span><span class="cx">     const NetworkLoadParameters m_parameters;
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkLoadClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkLoadClient.h (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkLoadClient.h        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkLoadClient.h        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent) = 0;
</span><span class="cx">     virtual void canAuthenticateAgainstProtectionSpaceAsync(const WebCore::ProtectionSpace&amp;) = 0;
</span><del>-    virtual void willSendRedirectedRequest(const WebCore::ResourceRequest&amp;, const WebCore::ResourceRequest&amp; redirectRequest, const WebCore::ResourceResponse&amp; redirectResponse) = 0;
</del><ins>+    virtual void willSendRedirectedRequest(WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceRequest&amp;&amp; redirectRequest, WebCore::ResourceResponse&amp;&amp; redirectResponse) = 0;
</ins><span class="cx">     enum class ShouldContinueDidReceiveResponse { No, Yes };
</span><span class="cx">     virtual ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&amp;) = 0;
</span><span class="cx">     virtual void didReceiveBuffer(RefPtr&lt;WebCore::SharedBuffer&gt;&amp;&amp;, int reportedEncodedDataLength) = 0;
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkProcesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -486,9 +486,9 @@
</span><span class="cx">     downloadManager().continueCanAuthenticateAgainstProtectionSpace(downloadID, canAuthenticate);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void NetworkProcess::continueWillSendRequest(DownloadID downloadID, const WebCore::ResourceRequest&amp; request)
</del><ins>+void NetworkProcess::continueWillSendRequest(DownloadID downloadID, WebCore::ResourceRequest&amp;&amp; request)
</ins><span class="cx"> {
</span><del>-    downloadManager().continueWillSendRequest(downloadID, request);
</del><ins>+    downloadManager().continueWillSendRequest(downloadID, WTFMove(request));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void NetworkProcess::pendingDownloadCanceled(DownloadID downloadID)
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkProcessh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -172,7 +172,7 @@
</span><span class="cx">     void cancelDownload(DownloadID);
</span><span class="cx"> #if USE(NETWORK_SESSION)
</span><span class="cx">     void continueCanAuthenticateAgainstProtectionSpace(DownloadID, bool canAuthenticate);
</span><del>-    void continueWillSendRequest(DownloadID, const WebCore::ResourceRequest&amp;);
</del><ins>+    void continueWillSendRequest(DownloadID, WebCore::ResourceRequest&amp;&amp;);
</ins><span class="cx">     void continueDecidePendingDownloadDestination(DownloadID, String destination, const SandboxExtension::Handle&amp; sandboxExtensionHandle, bool allowOverwrite);
</span><span class="cx"> #endif
</span><span class="cx">     void setCacheModel(uint32_t);
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkResourceLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -410,7 +410,7 @@
</span><span class="cx">     cleanup();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void NetworkResourceLoader::willSendRedirectedRequest(const ResourceRequest&amp; request, const WebCore::ResourceRequest&amp; redirectRequest, const ResourceResponse&amp; redirectResponse)
</del><ins>+void NetworkResourceLoader::willSendRedirectedRequest(ResourceRequest&amp;&amp; request, WebCore::ResourceRequest&amp;&amp; redirectRequest, ResourceResponse&amp;&amp; redirectResponse)
</ins><span class="cx"> {
</span><span class="cx">     ++m_redirectCount;
</span><span class="cx"> 
</span><span class="lines">@@ -424,7 +424,7 @@
</span><span class="cx">             m_networkLoad-&gt;clearCurrentRequest();
</span><span class="cx">             overridenRequest = ResourceRequest();
</span><span class="cx">         }
</span><del>-        continueWillSendRequest(overridenRequest);
</del><ins>+        continueWillSendRequest(WTFMove(overridenRequest));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     sendAbortingOnFailure(Messages::WebResourceLoader::WillSendRequest(redirectRequest, redirectResponse));
</span><span class="lines">@@ -437,7 +437,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void NetworkResourceLoader::continueWillSendRequest(const ResourceRequest&amp; newRequest)
</del><ins>+void NetworkResourceLoader::continueWillSendRequest(ResourceRequest&amp;&amp; newRequest)
</ins><span class="cx"> {
</span><span class="cx">     NETWORKRESOURCELOADER_LOG_ALWAYS(&quot;Following redirect of network resource: loader = %p, pageID = %llu, frameID = %llu, isMainResource = %d, isSynchronous = %d&quot;, this, static_cast&lt;unsigned long long&gt;(m_parameters.webPageID), static_cast&lt;unsigned long long&gt;(m_parameters.webFrameID), isMainResource(), isSynchronous());
</span><span class="cx"> 
</span><span class="lines">@@ -456,7 +456,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     if (m_networkLoad)
</span><del>-        m_networkLoad-&gt;continueWillSendRequest(newRequest);
</del><ins>+        m_networkLoad-&gt;continueWillSendRequest(WTFMove(newRequest));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void NetworkResourceLoader::continueDidReceiveResponse()
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkResourceLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx"> #if USE(PROTECTION_SPACE_AUTH_CALLBACK)
</span><span class="cx">     void continueCanAuthenticateAgainstProtectionSpace(bool);
</span><span class="cx"> #endif
</span><del>-    void continueWillSendRequest(const WebCore::ResourceRequest&amp; newRequest);
</del><ins>+    void continueWillSendRequest(WebCore::ResourceRequest&amp;&amp; newRequest);
</ins><span class="cx"> 
</span><span class="cx">     WebCore::SharedBuffer* bufferedData() { return m_bufferedData.get(); }
</span><span class="cx">     const WebCore::ResourceResponse&amp; response() const { return m_response; }
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx">     void didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent) override;
</span><span class="cx">     void canAuthenticateAgainstProtectionSpaceAsync(const WebCore::ProtectionSpace&amp;) override;
</span><span class="cx">     bool isSynchronous() const override;
</span><del>-    void willSendRedirectedRequest(const WebCore::ResourceRequest&amp;, const WebCore::ResourceRequest&amp; redirectRequest, const WebCore::ResourceResponse&amp; redirectResponse) override;
</del><ins>+    void willSendRedirectedRequest(WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceRequest&amp;&amp; redirectRequest, WebCore::ResourceResponse&amp;&amp;) override;
</ins><span class="cx">     ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&amp;) override;
</span><span class="cx">     void didReceiveBuffer(RefPtr&lt;WebCore::SharedBuffer&gt;&amp;&amp;, int reportedEncodedDataLength) override;
</span><span class="cx">     void didFinishLoading(double finishTime) override;
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessPingLoadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/PingLoad.h (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/PingLoad.h        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/PingLoad.h        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx"> private:
</span><del>-    void willPerformHTTPRedirection(const WebCore::ResourceResponse&amp;, const WebCore::ResourceRequest&amp;, RedirectCompletionHandler completionHandler) override
</del><ins>+    void willPerformHTTPRedirection(WebCore::ResourceResponse&amp;&amp;, WebCore::ResourceRequest&amp;&amp;, RedirectCompletionHandler completionHandler) override
</ins><span class="cx">     {
</span><span class="cx">         completionHandler({ });
</span><span class="cx">         delete this;
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheSpeculativeLoadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx">     ASSERT(!m_networkLoad);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void SpeculativeLoad::willSendRedirectedRequest(const ResourceRequest&amp;, const ResourceRequest&amp; redirectRequest, const ResourceResponse&amp; redirectResponse)
</del><ins>+void SpeculativeLoad::willSendRedirectedRequest(ResourceRequest&amp;&amp;, ResourceRequest&amp;&amp; redirectRequest, ResourceResponse&amp;&amp; redirectResponse)
</ins><span class="cx"> {
</span><span class="cx">     LOG(NetworkCacheSpeculativePreloading, &quot;(NetworkProcess) Speculative revalidation for %s hit a redirect, aborting the load.&quot;, redirectResponse.url().string().utf8().data());
</span><span class="cx">     // We drop speculative revalidations if they redirect for now as we would need to notify WebCore of such redirects.
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheSpeculativeLoadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">     void didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent) override { }
</span><span class="cx">     void canAuthenticateAgainstProtectionSpaceAsync(const WebCore::ProtectionSpace&amp;) override { }
</span><span class="cx">     bool isSynchronous() const override { return false; }
</span><del>-    void willSendRedirectedRequest(const WebCore::ResourceRequest&amp;, const WebCore::ResourceRequest&amp; redirectRequest, const WebCore::ResourceResponse&amp; redirectResponse) override;
</del><ins>+    void willSendRedirectedRequest(WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceRequest&amp;&amp; redirectRequest, WebCore::ResourceResponse&amp;&amp; redirectResponse) override;
</ins><span class="cx">     ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&amp;) override;
</span><span class="cx">     void didReceiveBuffer(RefPtr&lt;WebCore::SharedBuffer&gt;&amp;&amp;, int reportedEncodedDataLength) override;
</span><span class="cx">     void didFinishLoading(double finishTime) override;
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscocoaNetworkDataTaskCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -187,7 +187,7 @@
</span><span class="cx">         m_client-&gt;didBecomeDownload();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void NetworkDataTask::willPerformHTTPRedirection(const WebCore::ResourceResponse&amp; redirectResponse, WebCore::ResourceRequest&amp;&amp; request, RedirectCompletionHandler completionHandler)
</del><ins>+void NetworkDataTask::willPerformHTTPRedirection(WebCore::ResourceResponse&amp;&amp; redirectResponse, WebCore::ResourceRequest&amp;&amp; request, RedirectCompletionHandler completionHandler)
</ins><span class="cx"> {
</span><span class="cx">     if (redirectResponse.httpStatusCode() == 307 || redirectResponse.httpStatusCode() == 308) {
</span><span class="cx">         ASSERT(m_lastHTTPMethod == request.httpMethod());
</span><span class="lines">@@ -232,7 +232,7 @@
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if (m_client)
</span><del>-        m_client-&gt;willPerformHTTPRedirection(redirectResponse, request, completionHandler);
</del><ins>+        m_client-&gt;willPerformHTTPRedirection(WTFMove(redirectResponse), WTFMove(request), completionHandler);
</ins><span class="cx">     else {
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx">         completionHandler({ });
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessNetworkWebResourceLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.cpp (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.cpp        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.cpp        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -75,22 +75,21 @@
</span><span class="cx">     m_coreLoader = nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebResourceLoader::willSendRequest(const ResourceRequest&amp; proposedRequest, const ResourceResponse&amp; redirectResponse)
</del><ins>+void WebResourceLoader::willSendRequest(ResourceRequest&amp;&amp; proposedRequest, ResourceResponse&amp;&amp; redirectResponse)
</ins><span class="cx"> {
</span><span class="cx">     LOG(Network, &quot;(WebProcess) WebResourceLoader::willSendRequest to '%s'&quot;, proposedRequest.url().string().latin1().data());
</span><span class="cx">     WEBRESOURCELOADER_LOG_ALWAYS(&quot;WebResourceLoader::willSendRequest, WebResourceLoader = %p&quot;, this);
</span><span class="cx"> 
</span><del>-    RefPtr&lt;WebResourceLoader&gt; protect(this);
</del><ins>+    RefPtr&lt;WebResourceLoader&gt; protectedThis(this);
</ins><span class="cx"> 
</span><del>-    ResourceRequest newRequest = proposedRequest;
-    if (m_coreLoader-&gt;documentLoader()-&gt;applicationCacheHost()-&gt;maybeLoadFallbackForRedirect(m_coreLoader.get(), newRequest, redirectResponse))
</del><ins>+    if (m_coreLoader-&gt;documentLoader()-&gt;applicationCacheHost()-&gt;maybeLoadFallbackForRedirect(m_coreLoader.get(), proposedRequest, redirectResponse))
</ins><span class="cx">         return;
</span><span class="cx">     // FIXME: Do we need to update NetworkResourceLoader clientCredentialPolicy in case loader policy is DoNotAskClientForCrossOriginCredentials?
</span><del>-    m_coreLoader-&gt;willSendRequest(WTFMove(newRequest), redirectResponse, [protect](ResourceRequest&amp;&amp; request) {
-        if (!protect-&gt;m_coreLoader)
</del><ins>+    m_coreLoader-&gt;willSendRequest(WTFMove(proposedRequest), redirectResponse, [protectedThis](ResourceRequest&amp;&amp; request) {
+        if (!protectedThis-&gt;m_coreLoader)
</ins><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        protect-&gt;send(Messages::NetworkResourceLoader::ContinueWillSendRequest(request));
</del><ins>+        protectedThis-&gt;send(Messages::NetworkResourceLoader::ContinueWillSendRequest(request));
</ins><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessNetworkWebResourceLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.h (201707 => 201708)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.h        2016-06-06 05:09:51 UTC (rev 201707)
+++ trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.h        2016-06-06 08:25:16 UTC (rev 201708)
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx">     IPC::Connection* messageSenderConnection() override;
</span><span class="cx">     uint64_t messageSenderDestinationID() override;
</span><span class="cx"> 
</span><del>-    void willSendRequest(const WebCore::ResourceRequest&amp;, const WebCore::ResourceResponse&amp; redirectResponse);
</del><ins>+    void willSendRequest(WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceResponse&amp;&amp;);
</ins><span class="cx">     void didSendData(uint64_t bytesSent, uint64_t totalBytesToBeSent);
</span><span class="cx">     void didReceiveResponse(const WebCore::ResourceResponse&amp;, bool needsContinueDidReceiveResponseMessage);
</span><span class="cx">     void didReceiveData(const IPC::DataReference&amp;, int64_t encodedDataLength);
</span></span></pre>
</div>
</div>

</body>
</html>