<!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>[201943] 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/201943">201943</a></dd>
<dt>Author</dt> <dd>achristensen@apple.com</dd>
<dt>Date</dt> <dd>2016-06-10 15:02:55 -0700 (Fri, 10 Jun 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Reduce ResourceResponse copying
https://bugs.webkit.org/show_bug.cgi?id=158232

Reviewed by Darin Adler.

Source/WebCore:

No new tests.  No change in behavior except removing an unnecessary copy on cocoa platforms.

* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didSendData):
(WebCore::ResourceLoader::didReceiveResponse):
* loader/ResourceLoader.h:
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::createResourceHandle):
(WebCore::ApplicationCacheGroup::didReceiveResponse):
* loader/appcache/ApplicationCacheGroup.h:
* platform/graphics/PlatformMediaResourceLoader.h:
(WebCore::PlatformMediaResourceClient::~PlatformMediaResourceClient):
(WebCore::PlatformMediaResourceClient::responseReceived):
(WebCore::PlatformMediaResourceClient::redirectReceived):
(WebCore::PlatformMediaResourceClient::shouldCacheResponse):
(WebCore::PlatformMediaResourceClient::dataSent):
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(ResourceHandleStreamingClient::willSendRequest):
(ResourceHandleStreamingClient::didReceiveResponse):
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::notifyResponseOnSuccess):
(WebCore::BlobResourceHandle::notifyResponseOnError):
(WebCore::BlobResourceHandle::notifyReceiveData):
* platform/network/DataURL.cpp:
(WebCore::handleDataURL):
* platform/network/PingHandle.h:
(WebCore::PingHandle::PingHandle):
* platform/network/ResourceHandleClient.cpp:
(WebCore::ResourceHandleClient::willSendRequestAsync):
(WebCore::ResourceHandleClient::didReceiveResponseAsync):
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::didSendData):
(WebCore::ResourceHandleClient::didReceiveResponse):
(WebCore::ResourceHandleClient::didReceiveData):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::ResourceResponseBase):
(WebCore::ResourceResponseBase::includeCertificateInfo):
(WebCore::ResourceResponseBase::suggestedFilename):
(WebCore::ResourceResponseBase::certificateInfo): Deleted.
* platform/network/ResourceResponseBase.h:
(WebCore::ResourceResponseBase::certificateInfo):
(WebCore::ResourceResponseBase::encode):
(WebCore::ResourceResponseBase::decode):
(WebCore::ResourceResponseBase::containsCertificateInfo): Deleted.
* platform/network/SynchronousLoaderClient.cpp:
(WebCore::SynchronousLoaderClient::canAuthenticateAgainstProtectionSpace):
(WebCore::SynchronousLoaderClient::didReceiveResponse):
(WebCore::SynchronousLoaderClient::didReceiveData):
* platform/network/SynchronousLoaderClient.h:
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveData):
* platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::nextMultipartResponsePartCallback):
(WebCore::sendRequestCallback):

Source/WebKit2:

* NetworkProcess/Downloads/PendingDownload.h:
* NetworkProcess/NetworkDataTask.h:
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::continueDidReceiveResponse):
(WebKit::NetworkLoad::sharedDidReceiveResponse):
(WebKit::NetworkLoad::sharedWillSendRedirectedRequest):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::didReceiveResponseAsync):
* NetworkProcess/NetworkLoad.h:
* NetworkProcess/NetworkLoadClient.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::abort):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/PingLoad.h:
* NetworkProcess/cache/NetworkCacheCoders.h:
(WebKit::NetworkCache::Coder&lt;Optional&lt;T&gt;&gt;::encode):
(WebKit::NetworkCache::Coder&lt;Optional&lt;T&gt;&gt;::decode):
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::didCompleteWithError):
(WebKit::NetworkDataTask::didReceiveResponse):
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::url):
(WebKit::WebFrame::certificateInfo):
(WebKit::WebFrame::innerText):</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="#trunkSourceWebCoreloaderappcacheApplicationCacheGroupcpp">trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderappcacheApplicationCacheGrouph">trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsPlatformMediaResourceLoaderh">trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsgstreamerWebKitWebSourceGStreamercpp">trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkBlobResourceHandlecpp">trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkDataURLcpp">trunk/Source/WebCore/platform/network/DataURL.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkPingHandleh">trunk/Source/WebCore/platform/network/PingHandle.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="#trunkSourceWebCoreplatformnetworkResourceResponseBasecpp">trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkResourceResponseBaseh">trunk/Source/WebCore/platform/network/ResourceResponseBase.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="#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="#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="#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="#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="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheCodersh">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.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="#trunkSourceWebKit2NetworkProcesscocoaNetworkSessionCocoamm">trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebFramecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/ChangeLog        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -1,3 +1,73 @@
</span><ins>+2016-06-10  Alex Christensen  &lt;achristensen@webkit.org&gt;
+
+        Reduce ResourceResponse copying
+        https://bugs.webkit.org/show_bug.cgi?id=158232
+
+        Reviewed by Darin Adler.
+
+        No new tests.  No change in behavior except removing an unnecessary copy on cocoa platforms.
+
+        * loader/ResourceLoader.cpp:
+        (WebCore::ResourceLoader::didSendData):
+        (WebCore::ResourceLoader::didReceiveResponse):
+        * loader/ResourceLoader.h:
+        * loader/appcache/ApplicationCacheGroup.cpp:
+        (WebCore::ApplicationCacheGroup::createResourceHandle):
+        (WebCore::ApplicationCacheGroup::didReceiveResponse):
+        * loader/appcache/ApplicationCacheGroup.h:
+        * platform/graphics/PlatformMediaResourceLoader.h:
+        (WebCore::PlatformMediaResourceClient::~PlatformMediaResourceClient):
+        (WebCore::PlatformMediaResourceClient::responseReceived):
+        (WebCore::PlatformMediaResourceClient::redirectReceived):
+        (WebCore::PlatformMediaResourceClient::shouldCacheResponse):
+        (WebCore::PlatformMediaResourceClient::dataSent):
+        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
+        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
+        (ResourceHandleStreamingClient::willSendRequest):
+        (ResourceHandleStreamingClient::didReceiveResponse):
+        * platform/network/BlobResourceHandle.cpp:
+        (WebCore::BlobResourceHandle::notifyResponseOnSuccess):
+        (WebCore::BlobResourceHandle::notifyResponseOnError):
+        (WebCore::BlobResourceHandle::notifyReceiveData):
+        * platform/network/DataURL.cpp:
+        (WebCore::handleDataURL):
+        * platform/network/PingHandle.h:
+        (WebCore::PingHandle::PingHandle):
+        * platform/network/ResourceHandleClient.cpp:
+        (WebCore::ResourceHandleClient::willSendRequestAsync):
+        (WebCore::ResourceHandleClient::didReceiveResponseAsync):
+        * platform/network/ResourceHandleClient.h:
+        (WebCore::ResourceHandleClient::didSendData):
+        (WebCore::ResourceHandleClient::didReceiveResponse):
+        (WebCore::ResourceHandleClient::didReceiveData):
+        * platform/network/ResourceResponseBase.cpp:
+        (WebCore::ResourceResponseBase::ResourceResponseBase):
+        (WebCore::ResourceResponseBase::includeCertificateInfo):
+        (WebCore::ResourceResponseBase::suggestedFilename):
+        (WebCore::ResourceResponseBase::certificateInfo): Deleted.
+        * platform/network/ResourceResponseBase.h:
+        (WebCore::ResourceResponseBase::certificateInfo):
+        (WebCore::ResourceResponseBase::encode):
+        (WebCore::ResourceResponseBase::decode):
+        (WebCore::ResourceResponseBase::containsCertificateInfo): Deleted.
+        * platform/network/SynchronousLoaderClient.cpp:
+        (WebCore::SynchronousLoaderClient::canAuthenticateAgainstProtectionSpace):
+        (WebCore::SynchronousLoaderClient::didReceiveResponse):
+        (WebCore::SynchronousLoaderClient::didReceiveData):
+        * platform/network/SynchronousLoaderClient.h:
+        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
+        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
+        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
+        (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
+        (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveData):
+        * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
+        (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
+        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
+        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
+        * platform/network/soup/ResourceHandleSoup.cpp:
+        (WebCore::nextMultipartResponsePartCallback):
+        (WebCore::sendRequestCallback):
+
</ins><span class="cx"> 2016-06-09  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Add SPI to disable spellchecking on auto-fillable text fields
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderResourceLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/ResourceLoader.cpp (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/ResourceLoader.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/loader/ResourceLoader.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -637,7 +637,7 @@
</span><span class="cx">     didSendData(bytesSent, totalBytesToBeSent);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ResourceLoader::didReceiveResponse(ResourceHandle*, const ResourceResponse&amp; response)
</del><ins>+void ResourceLoader::didReceiveResponse(ResourceHandle*, ResourceResponse&amp;&amp; response)
</ins><span class="cx"> {
</span><span class="cx">     if (documentLoader()-&gt;applicationCacheHost()-&gt;maybeLoadFallbackForResponse(this, response))
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderResourceLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/ResourceLoader.h (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/ResourceLoader.h        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/loader/ResourceLoader.h        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -185,7 +185,7 @@
</span><span class="cx">     // ResourceHandleClient
</span><span class="cx">     ResourceRequest willSendRequest(ResourceHandle*, ResourceRequest&amp;&amp;, ResourceResponse&amp;&amp; redirectResponse) override;
</span><span class="cx">     void didSendData(ResourceHandle*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent) override;
</span><del>-    void didReceiveResponse(ResourceHandle*, const ResourceResponse&amp;) override;
</del><ins>+    void didReceiveResponse(ResourceHandle*, ResourceResponse&amp;&amp;) override;
</ins><span class="cx">     void didReceiveData(ResourceHandle*, const char*, unsigned, int encodedDataLength) override;
</span><span class="cx">     void didReceiveBuffer(ResourceHandle*, Ref&lt;SharedBuffer&gt;&amp;&amp;, int encodedDataLength) override;
</span><span class="cx">     void didFinishLoading(ResourceHandle*, double finishTime) override;
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderappcacheApplicationCacheGroupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -489,7 +489,7 @@
</span><span class="cx">     return handle;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ApplicationCacheGroup::didReceiveResponse(ResourceHandle* handle, const ResourceResponse&amp; response)
</del><ins>+void ApplicationCacheGroup::didReceiveResponse(ResourceHandle* handle, ResourceResponse&amp;&amp; response)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_frame);
</span><span class="cx">     InspectorInstrumentationCookie cookie = InspectorInstrumentation::willReceiveResourceResponse(m_frame);
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderappcacheApplicationCacheGrouph"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.h (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.h        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.h        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx">     // the existing client callback cannot be used, so assume that any client that enables application cache also wants it to use credential storage.
</span><span class="cx">     bool shouldUseCredentialStorage(ResourceHandle*) override { return true; }
</span><span class="cx"> 
</span><del>-    void didReceiveResponse(ResourceHandle*, const ResourceResponse&amp;) override;
</del><ins>+    void didReceiveResponse(ResourceHandle*, ResourceResponse&amp;&amp;) override;
</ins><span class="cx">     void didReceiveData(ResourceHandle*, const char*, unsigned length, int encodedDataLength) override;
</span><span class="cx">     void didFinishLoading(ResourceHandle*, double finishTime) override;
</span><span class="cx">     void didFail(ResourceHandle*, const ResourceError&amp;) override;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsPlatformMediaResourceLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -23,8 +23,7 @@
</span><span class="cx">  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef PlatformMediaResourceLoader_h
-#define PlatformMediaResourceLoader_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO)
</span><span class="cx"> 
</span><span class="lines">@@ -91,4 +90,3 @@
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><del>-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsgstreamerWebKitWebSourceGStreamercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -96,7 +96,7 @@
</span><span class="cx">         char* getOrCreateReadBuffer(size_t requestedSize, size_t&amp; actualSize) override;
</span><span class="cx"> #endif
</span><span class="cx">         ResourceRequest willSendRequest(ResourceHandle*, ResourceRequest&amp;&amp;, ResourceResponse&amp;&amp;) override;
</span><del>-        void didReceiveResponse(ResourceHandle*, const ResourceResponse&amp;) override;
</del><ins>+        void didReceiveResponse(ResourceHandle*, ResourceResponse&amp;&amp;) override;
</ins><span class="cx">         void didReceiveData(ResourceHandle*, const char*, unsigned, int) override;
</span><span class="cx">         void didReceiveBuffer(ResourceHandle*, Ref&lt;SharedBuffer&gt;&amp;&amp;, int encodedLength) override;
</span><span class="cx">         void didFinishLoading(ResourceHandle*, double /*finishTime*/) override;
</span><span class="lines">@@ -1090,7 +1090,7 @@
</span><span class="cx">     return WTFMove(request);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ResourceHandleStreamingClient::didReceiveResponse(ResourceHandle*, const ResourceResponse&amp; response)
</del><ins>+void ResourceHandleStreamingClient::didReceiveResponse(ResourceHandle*, ResourceResponse&amp;&amp; response)
</ins><span class="cx"> {
</span><span class="cx">     handleResponseReceived(response);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkBlobResourceHandlecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx"> public:
</span><span class="cx">     BlobResourceSynchronousLoader(ResourceError&amp;, ResourceResponse&amp;, Vector&lt;char&gt;&amp;);
</span><span class="cx"> 
</span><del>-    void didReceiveResponse(ResourceHandle*, const ResourceResponse&amp;) override;
</del><ins>+    void didReceiveResponse(ResourceHandle*, ResourceResponse&amp;&amp;) override;
</ins><span class="cx">     void didFail(ResourceHandle*, const ResourceError&amp;) override;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void BlobResourceSynchronousLoader::didReceiveResponse(ResourceHandle* handle, const ResourceResponse&amp; response)
</del><ins>+void BlobResourceSynchronousLoader::didReceiveResponse(ResourceHandle* handle, ResourceResponse&amp;&amp; response)
</ins><span class="cx"> {
</span><span class="cx">     // We cannot handle the size that is more than maximum integer.
</span><span class="cx">     if (response.expectedContentLength() &gt; INT_MAX) {
</span><span class="lines">@@ -583,9 +583,9 @@
</span><span class="cx">     // It's currently client's responsibility to know that didReceiveResponseAsync cannot be used to convert a
</span><span class="cx">     // load into a download or blobs.
</span><span class="cx">     if (usesAsyncCallbacks())
</span><del>-        client()-&gt;didReceiveResponseAsync(this, response);
</del><ins>+        client()-&gt;didReceiveResponseAsync(this, WTFMove(response));
</ins><span class="cx">     else
</span><del>-        client()-&gt;didReceiveResponse(this, response);
</del><ins>+        client()-&gt;didReceiveResponse(this, WTFMove(response));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void BlobResourceHandle::notifyResponseOnError()
</span><span class="lines">@@ -615,9 +615,9 @@
</span><span class="cx">     // Note that we don't wait for continueDidReceiveResponse when using didReceiveResponseAsync.
</span><span class="cx">     // This is not formally correct, but the client has to be a no-op anyway, because blobs can't be downloaded.
</span><span class="cx">     if (usesAsyncCallbacks())
</span><del>-        client()-&gt;didReceiveResponseAsync(this, response);
</del><ins>+        client()-&gt;didReceiveResponseAsync(this, WTFMove(response));
</ins><span class="cx">     else
</span><del>-        client()-&gt;didReceiveResponse(this, response);
</del><ins>+        client()-&gt;didReceiveResponse(this, WTFMove(response));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void BlobResourceHandle::notifyReceiveData(const char* data, int bytesRead)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkDataURLcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/DataURL.cpp (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/DataURL.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/network/DataURL.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -76,25 +76,22 @@
</span><span class="cx"> 
</span><span class="cx">     if (base64) {
</span><span class="cx">         data = decodeURLEscapeSequences(data);
</span><del>-        handle-&gt;client()-&gt;didReceiveResponse(handle, response);
</del><ins>+        handle-&gt;client()-&gt;didReceiveResponse(handle, WTFMove(response));
</ins><span class="cx"> 
</span><span class="cx">         // didReceiveResponse might cause the client to be deleted.
</span><span class="cx">         if (handle-&gt;client()) {
</span><span class="cx">             Vector&lt;char&gt; out;
</span><del>-            if (base64Decode(data, out, Base64IgnoreSpacesAndNewLines) &amp;&amp; out.size() &gt; 0) {
-                response.setExpectedContentLength(out.size());
</del><ins>+            if (base64Decode(data, out, Base64IgnoreSpacesAndNewLines) &amp;&amp; out.size() &gt; 0)
</ins><span class="cx">                 handle-&gt;client()-&gt;didReceiveData(handle, out.data(), out.size(), 0);
</span><del>-            }
</del><span class="cx">         }
</span><span class="cx">     } else {
</span><span class="cx">         TextEncoding encoding(charset);
</span><span class="cx">         data = decodeURLEscapeSequences(data, encoding);
</span><del>-        handle-&gt;client()-&gt;didReceiveResponse(handle, response);
</del><ins>+        handle-&gt;client()-&gt;didReceiveResponse(handle, WTFMove(response));
</ins><span class="cx"> 
</span><span class="cx">         // didReceiveResponse might cause the client to be deleted.
</span><span class="cx">         if (handle-&gt;client()) {
</span><span class="cx">             CString encodedData = encoding.encode(data, URLEncodedEntitiesForUnencodables);
</span><del>-            response.setExpectedContentLength(encodedData.length());
</del><span class="cx">             if (encodedData.length())
</span><span class="cx">                 handle-&gt;client()-&gt;didReceiveData(handle, encodedData.data(), encodedData.length(), 0);
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkPingHandleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/PingHandle.h (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/PingHandle.h        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/network/PingHandle.h        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    void didReceiveResponse(ResourceHandle*, const ResourceResponse&amp;) override { delete this; }
</del><ins>+    void didReceiveResponse(ResourceHandle*, ResourceResponse&amp;&amp;) override { delete this; }
</ins><span class="cx">     void didReceiveBuffer(ResourceHandle*, Ref&lt;SharedBuffer&gt;&amp;&amp;, int) override { delete this; };
</span><span class="cx">     void didFinishLoading(ResourceHandle*, double) override { delete this; }
</span><span class="cx">     void didFail(ResourceHandle*, const ResourceError&amp;) override { delete this; }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkResourceHandleClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/ResourceHandleClient.cpp (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/ResourceHandleClient.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/network/ResourceHandleClient.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx">     handle-&gt;continueWillSendRequest(WTFMove(request));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ResourceHandleClient::didReceiveResponseAsync(ResourceHandle* handle, const ResourceResponse&amp;)
</del><ins>+void ResourceHandleClient::didReceiveResponseAsync(ResourceHandle* handle, ResourceResponse&amp;&amp;)
</ins><span class="cx"> {
</span><span class="cx">     handle-&gt;continueDidReceiveResponse();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkResourceHandleClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/ResourceHandleClient.h (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/ResourceHandleClient.h        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/network/ResourceHandleClient.h        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx">         WEBCORE_EXPORT virtual ResourceRequest willSendRequest(ResourceHandle*, ResourceRequest&amp;&amp;, ResourceResponse&amp;&amp;);
</span><span class="cx">         virtual void didSendData(ResourceHandle*, unsigned long long /*bytesSent*/, unsigned long long /*totalBytesToBeSent*/) { }
</span><span class="cx"> 
</span><del>-        virtual void didReceiveResponse(ResourceHandle*, const ResourceResponse&amp;) { }
</del><ins>+        virtual void didReceiveResponse(ResourceHandle*, ResourceResponse&amp;&amp;) { }
</ins><span class="cx">         
</span><span class="cx">         virtual void didReceiveData(ResourceHandle*, const char*, unsigned, int /*encodedDataLength*/) { }
</span><span class="cx">         WEBCORE_EXPORT virtual void didReceiveBuffer(ResourceHandle*, Ref&lt;SharedBuffer&gt;&amp;&amp;, int encodedDataLength);
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx">         WEBCORE_EXPORT virtual void willSendRequestAsync(ResourceHandle*, ResourceRequest&amp;&amp;, ResourceResponse&amp;&amp;);
</span><span class="cx"> 
</span><span class="cx">         // Client will call ResourceHandle::continueDidReceiveResponse() when ready.
</span><del>-        WEBCORE_EXPORT virtual void didReceiveResponseAsync(ResourceHandle*, const ResourceResponse&amp;);
</del><ins>+        WEBCORE_EXPORT virtual void didReceiveResponseAsync(ResourceHandle*, ResourceResponse&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx"> #if USE(PROTECTION_SPACE_AUTH_CALLBACK)
</span><span class="cx">         // Client will pass an updated request using ResourceHandle::continueCanAuthenticateAgainstProtectionSpace() when ready.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkResourceResponseBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -47,7 +47,6 @@
</span><span class="cx"> ResourceResponseBase::ResourceResponseBase()
</span><span class="cx">     : m_isNull(true)
</span><span class="cx">     , m_expectedContentLength(0)
</span><del>-    , m_includesCertificateInfo(false)
</del><span class="cx">     , m_httpStatusCode(0)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -58,7 +57,7 @@
</span><span class="cx">     , m_mimeType(mimeType)
</span><span class="cx">     , m_expectedContentLength(expectedLength)
</span><span class="cx">     , m_textEncodingName(textEncodingName)
</span><del>-    , m_includesCertificateInfo(true) // Empty but valid for synthetic responses.
</del><ins>+    , m_certificateInfo(CertificateInfo()) // Empty but valid for synthetic responses.
</ins><span class="cx">     , m_httpStatusCode(0)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -184,17 +183,11 @@
</span><span class="cx"> 
</span><span class="cx"> void ResourceResponseBase::includeCertificateInfo() const
</span><span class="cx"> {
</span><del>-    if (m_includesCertificateInfo)
</del><ins>+    if (m_certificateInfo)
</ins><span class="cx">         return;
</span><span class="cx">     m_certificateInfo = static_cast&lt;const ResourceResponse*&gt;(this)-&gt;platformCertificateInfo();
</span><del>-    m_includesCertificateInfo = true;
</del><span class="cx"> }
</span><span class="cx"> 
</span><del>-CertificateInfo ResourceResponseBase::certificateInfo() const
-{
-    return m_certificateInfo;
-}
-
</del><span class="cx"> String ResourceResponseBase::suggestedFilename() const
</span><span class="cx"> {
</span><span class="cx">     return static_cast&lt;const ResourceResponse*&gt;(this)-&gt;platformSuggestedFilename();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkResourceResponseBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.h (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/ResourceResponseBase.h        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/network/ResourceResponseBase.h        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -114,8 +114,7 @@
</span><span class="cx">     WEBCORE_EXPORT String suggestedFilename() const;
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT void includeCertificateInfo() const;
</span><del>-    bool containsCertificateInfo() const { return m_includesCertificateInfo; }
-    WEBCORE_EXPORT CertificateInfo certificateInfo() const;
</del><ins>+    WEBCORE_EXPORT const Optional&lt;CertificateInfo&gt;&amp; certificateInfo() const { return m_certificateInfo; };
</ins><span class="cx">     
</span><span class="cx">     // These functions return parsed values of the corresponding response headers.
</span><span class="cx">     // NaN means that the header was not present or had invalid value.
</span><span class="lines">@@ -190,8 +189,8 @@
</span><span class="cx">     HTTPHeaderMap m_httpHeaderFields;
</span><span class="cx">     mutable ResourceLoadTiming m_resourceLoadTiming;
</span><span class="cx"> 
</span><del>-    mutable bool m_includesCertificateInfo;
-    mutable CertificateInfo m_certificateInfo;
</del><ins>+#define RESOURCE_RESPONSE_BASE_CERT_INFO_OPTIONAL
+    mutable Optional&lt;CertificateInfo&gt; m_certificateInfo;
</ins><span class="cx"> 
</span><span class="cx">     int m_httpStatusCode;
</span><span class="cx"> 
</span><span class="lines">@@ -236,9 +235,7 @@
</span><span class="cx">     encoder &lt;&lt; m_httpHeaderFields;
</span><span class="cx">     encoder &lt;&lt; m_resourceLoadTiming;
</span><span class="cx">     encoder &lt;&lt; m_httpStatusCode;
</span><del>-    encoder &lt;&lt; m_includesCertificateInfo;
-    if (m_includesCertificateInfo)
-        encoder &lt;&lt; m_certificateInfo;
</del><ins>+    encoder &lt;&lt; m_certificateInfo;
</ins><span class="cx">     encoder.encodeEnum(m_source);
</span><span class="cx">     encoder.encodeEnum(m_type);
</span><span class="cx">     encoder &lt;&lt; m_isRedirected;
</span><span class="lines">@@ -274,12 +271,8 @@
</span><span class="cx">         return false;
</span><span class="cx">     if (!decoder.decode(response.m_httpStatusCode))
</span><span class="cx">         return false;
</span><del>-    if (!decoder.decode(response.m_includesCertificateInfo))
</del><ins>+    if (!decoder.decode(response.m_certificateInfo))
</ins><span class="cx">         return false;
</span><del>-    if (response.m_includesCertificateInfo) {
-        if (!decoder.decode(response.m_certificateInfo))
-            return false;
-    }
</del><span class="cx">     if (!decoder.decodeEnum(response.m_source))
</span><span class="cx">         return false;
</span><span class="cx">     if (!decoder.decodeEnum(response.m_type))
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkSynchronousLoaderClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/SynchronousLoaderClient.cpp (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/SynchronousLoaderClient.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/network/SynchronousLoaderClient.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -62,9 +62,9 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-void SynchronousLoaderClient::didReceiveResponse(ResourceHandle*, const ResourceResponse&amp; response)
</del><ins>+void SynchronousLoaderClient::didReceiveResponse(ResourceHandle*, ResourceResponse&amp;&amp; response)
</ins><span class="cx"> {
</span><del>-    m_response = response;
</del><ins>+    m_response = WTFMove(response);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SynchronousLoaderClient::didReceiveData(ResourceHandle*, const char* data, unsigned length, int /*encodedDataLength*/)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkSynchronousLoaderClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/SynchronousLoaderClient.h (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/SynchronousLoaderClient.h        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/network/SynchronousLoaderClient.h        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx">     ResourceRequest willSendRequest(ResourceHandle*, ResourceRequest&amp;&amp;, ResourceResponse&amp;&amp;) override;
</span><span class="cx">     bool shouldUseCredentialStorage(ResourceHandle*) override;
</span><span class="cx">     void didReceiveAuthenticationChallenge(ResourceHandle*, const AuthenticationChallenge&amp;) override;
</span><del>-    void didReceiveResponse(ResourceHandle*, const ResourceResponse&amp;) override;
</del><ins>+    void didReceiveResponse(ResourceHandle*, ResourceResponse&amp;&amp;) override;
</ins><span class="cx">     void didReceiveData(ResourceHandle*, const char*, unsigned, int /*encodedDataLength*/) override;
</span><span class="cx">     void didFinishLoading(ResourceHandle*, double /*finishTime*/) override;
</span><span class="cx">     void didFail(ResourceHandle*, const ResourceError&amp;) override;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcfResourceHandleCFURLConnectionDelegateWithOperationQueuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx">         UNUSED_PARAM(connection);
</span><span class="cx"> #endif
</span><span class="cx">         
</span><del>-        m_handle-&gt;client()-&gt;didReceiveResponseAsync(m_handle, resourceResponse);
</del><ins>+        m_handle-&gt;client()-&gt;didReceiveResponseAsync(m_handle, WTFMove(resourceResponse));
</ins><span class="cx">     });
</span><span class="cx">     dispatch_semaphore_wait(m_semaphore, DISPATCH_TIME_FOREVER);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcfSynchronousResourceHandleCFURLConnectionDelegatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -180,7 +180,7 @@
</span><span class="cx">     UNUSED_PARAM(connection);
</span><span class="cx"> #endif
</span><span class="cx">     
</span><del>-    m_handle-&gt;client()-&gt;didReceiveResponse(m_handle, resourceResponse);
</del><ins>+    m_handle-&gt;client()-&gt;didReceiveResponse(m_handle, WTFMove(resourceResponse));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SynchronousResourceHandleCFURLConnectionDelegate::didReceiveData(CFDataRef data, CFIndex originalLength)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkmacWebCoreResourceHandleAsDelegatemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -169,7 +169,7 @@
</span><span class="cx">     UNUSED_PARAM(connection);
</span><span class="cx"> #endif
</span><span class="cx">     
</span><del>-    m_handle-&gt;client()-&gt;didReceiveResponse(m_handle, resourceResponse);
</del><ins>+    m_handle-&gt;client()-&gt;didReceiveResponse(m_handle, WTFMove(resourceResponse));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if USE(NETWORK_CFDATA_ARRAY_CALLBACK)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkmacWebCoreResourceHandleAsOperationQueueDelegatemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -215,7 +215,7 @@
</span><span class="cx"> #else
</span><span class="cx">         UNUSED_PARAM(connection);
</span><span class="cx"> #endif
</span><del>-        m_handle-&gt;client()-&gt;didReceiveResponseAsync(m_handle, resourceResponse);
</del><ins>+        m_handle-&gt;client()-&gt;didReceiveResponseAsync(m_handle, WTFMove(resourceResponse));
</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 (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -136,7 +136,7 @@
</span><span class="cx">     }
</span><span class="cx"> #endif // SOUP_CHECK_VERSION(2, 49, 91)
</span><span class="cx"> 
</span><del>-    void didReceiveResponse(ResourceHandle*, const ResourceResponse&amp; response) override
</del><ins>+    void didReceiveResponse(ResourceHandle*, ResourceResponse&amp;&amp; response) override
</ins><span class="cx">     {
</span><span class="cx">         m_response = response;
</span><span class="cx">     }
</span><span class="lines">@@ -654,9 +654,9 @@
</span><span class="cx">     d-&gt;m_previousPosition = 0;
</span><span class="cx"> 
</span><span class="cx">     if (handle-&gt;client()-&gt;usesAsyncCallbacks())
</span><del>-        handle-&gt;client()-&gt;didReceiveResponseAsync(handle.get(), d-&gt;m_response);
</del><ins>+        handle-&gt;client()-&gt;didReceiveResponseAsync(handle.get(), ResourceResponse(d-&gt;m_response));
</ins><span class="cx">     else {
</span><del>-        handle-&gt;client()-&gt;didReceiveResponse(handle.get(), d-&gt;m_response);
</del><ins>+        handle-&gt;client()-&gt;didReceiveResponse(handle.get(), ResourceResponse(d-&gt;m_response));
</ins><span class="cx">         continueAfterDidReceiveResponse(handle.get());
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -718,9 +718,9 @@
</span><span class="cx">         d-&gt;m_inputStream = inputStream;
</span><span class="cx"> 
</span><span class="cx">     if (d-&gt;client()-&gt;usesAsyncCallbacks())
</span><del>-        handle-&gt;client()-&gt;didReceiveResponseAsync(handle.get(), d-&gt;m_response);
</del><ins>+        handle-&gt;client()-&gt;didReceiveResponseAsync(handle.get(), ResourceResponse(d-&gt;m_response));
</ins><span class="cx">     else {
</span><del>-        handle-&gt;client()-&gt;didReceiveResponse(handle.get(), d-&gt;m_response);
</del><ins>+        handle-&gt;client()-&gt;didReceiveResponse(handle.get(), ResourceResponse(d-&gt;m_response));
</ins><span class="cx">         continueAfterDidReceiveResponse(handle.get());
</span><span class="cx">     }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/ChangeLog        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -1,3 +1,44 @@
</span><ins>+2016-06-10  Alex Christensen  &lt;achristensen@webkit.org&gt;
+
+        Reduce ResourceResponse copying
+        https://bugs.webkit.org/show_bug.cgi?id=158232
+
+        Reviewed by Darin Adler.
+
+        * NetworkProcess/Downloads/PendingDownload.h:
+        * NetworkProcess/NetworkDataTask.h:
+        * NetworkProcess/NetworkLoad.cpp:
+        (WebKit::NetworkLoad::continueDidReceiveResponse):
+        (WebKit::NetworkLoad::sharedDidReceiveResponse):
+        (WebKit::NetworkLoad::sharedWillSendRedirectedRequest):
+        (WebKit::NetworkLoad::didReceiveChallenge):
+        (WebKit::NetworkLoad::didReceiveResponseNetworkSession):
+        (WebKit::NetworkLoad::didReceiveResponseAsync):
+        * NetworkProcess/NetworkLoad.h:
+        * NetworkProcess/NetworkLoadClient.h:
+        * NetworkProcess/NetworkResourceLoader.cpp:
+        (WebKit::NetworkResourceLoader::retrieveCacheEntry):
+        (WebKit::NetworkResourceLoader::abort):
+        * NetworkProcess/NetworkResourceLoader.h:
+        * NetworkProcess/PingLoad.h:
+        * NetworkProcess/cache/NetworkCacheCoders.h:
+        (WebKit::NetworkCache::Coder&lt;Optional&lt;T&gt;&gt;::encode):
+        (WebKit::NetworkCache::Coder&lt;Optional&lt;T&gt;&gt;::decode):
+        * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
+        (WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):
+        * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
+        * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
+        (WebKit::NetworkDataTask::didCompleteWithError):
+        (WebKit::NetworkDataTask::didReceiveResponse):
+        * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+        (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
+        * WebProcess/WebPage/WebFrame.cpp:
+        (WebKit::WebFrame::url):
+        (WebKit::WebFrame::certificateInfo):
+        (WebKit::WebFrame::innerText):
+
</ins><span class="cx"> 2016-06-09  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Add SPI to disable spellchecking on auto-fillable text fields
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessDownloadsPendingDownloadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.h (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.h        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.h        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx">     void canAuthenticateAgainstProtectionSpaceAsync(const WebCore::ProtectionSpace&amp;) override;
</span><span class="cx">     bool isSynchronous() const override { return false; }
</span><span class="cx">     void willSendRedirectedRequest(WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceRequest&amp;&amp; redirectRequest, WebCore::ResourceResponse&amp;&amp; redirectResponse) override;
</span><del>-    ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&amp;) override { return ShouldContinueDidReceiveResponse::No; };
</del><ins>+    ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&amp;&amp;) override { return ShouldContinueDidReceiveResponse::No; };
</ins><span class="cx">     void didReceiveBuffer(Ref&lt;WebCore::SharedBuffer&gt;&amp;&amp;, int reportedEncodedDataLength) override { };
</span><span class="cx">     void didFinishLoading(double finishTime) override { };
</span><span class="cx">     void didFailLoading(const WebCore::ResourceError&amp;) override;
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkDataTaskh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkDataTask.h (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkDataTask.h        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkDataTask.h        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> public:
</span><span class="cx">     virtual void willPerformHTTPRedirection(WebCore::ResourceResponse&amp;&amp;, WebCore::ResourceRequest&amp;&amp;, RedirectCompletionHandler) = 0;
</span><span class="cx">     virtual void didReceiveChallenge(const WebCore::AuthenticationChallenge&amp;, ChallengeCompletionHandler) = 0;
</span><del>-    virtual void didReceiveResponseNetworkSession(const WebCore::ResourceResponse&amp;, ResponseCompletionHandler) = 0;
</del><ins>+    virtual void didReceiveResponseNetworkSession(WebCore::ResourceResponse&amp;&amp;, ResponseCompletionHandler) = 0;
</ins><span class="cx">     virtual void didReceiveData(Ref&lt;WebCore::SharedBuffer&gt;&amp;&amp;) = 0;
</span><span class="cx">     virtual void didCompleteWithError(const WebCore::ResourceError&amp;) = 0;
</span><span class="cx">     virtual void didBecomeDownload() = 0;
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx">     void didSendData(uint64_t totalBytesSent, uint64_t totalBytesExpectedToSend);
</span><span class="cx">     void didReceiveChallenge(const WebCore::AuthenticationChallenge&amp;, ChallengeCompletionHandler);
</span><span class="cx">     void didCompleteWithError(const WebCore::ResourceError&amp;);
</span><del>-    void didReceiveResponse(const WebCore::ResourceResponse&amp;, ResponseCompletionHandler);
</del><ins>+    void didReceiveResponse(WebCore::ResourceResponse&amp;&amp;, ResponseCompletionHandler);
</ins><span class="cx">     void didReceiveData(Ref&lt;WebCore::SharedBuffer&gt;&amp;&amp;);
</span><span class="cx">     void didBecomeDownload();
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkLoadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -153,14 +153,13 @@
</span><span class="cx">         m_handle-&gt;continueDidReceiveResponse();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-NetworkLoadClient::ShouldContinueDidReceiveResponse NetworkLoad::sharedDidReceiveResponse(const ResourceResponse&amp; receivedResponse)
</del><ins>+NetworkLoadClient::ShouldContinueDidReceiveResponse NetworkLoad::sharedDidReceiveResponse(ResourceResponse&amp;&amp; response)
</ins><span class="cx"> {
</span><del>-    ResourceResponse response = receivedResponse;
</del><span class="cx">     response.setSource(ResourceResponse::Source::Network);
</span><span class="cx">     if (m_parameters.needsCertificateInfo)
</span><span class="cx">         response.includeCertificateInfo();
</span><span class="cx"> 
</span><del>-    return m_client.didReceiveResponse(response);
</del><ins>+    return m_client.didReceiveResponse(WTFMove(response));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void NetworkLoad::sharedWillSendRedirectedRequest(ResourceRequest&amp;&amp; request, ResourceResponse&amp;&amp; redirectResponse)
</span><span class="lines">@@ -239,12 +238,12 @@
</span><span class="cx">         m_client.canAuthenticateAgainstProtectionSpaceAsync(challenge.protectionSpace());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void NetworkLoad::didReceiveResponseNetworkSession(const ResourceResponse&amp; response, ResponseCompletionHandler completionHandler)
</del><ins>+void NetworkLoad::didReceiveResponseNetworkSession(ResourceResponse&amp;&amp; response, ResponseCompletionHandler completionHandler)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx">     if (m_task &amp;&amp; m_task-&gt;pendingDownloadID().downloadID())
</span><span class="cx">         NetworkProcess::singleton().findPendingDownloadLocation(*m_task.get(), completionHandler, m_task-&gt;currentRequest());
</span><del>-    else if (sharedDidReceiveResponse(response) == NetworkLoadClient::ShouldContinueDidReceiveResponse::Yes)
</del><ins>+    else if (sharedDidReceiveResponse(WTFMove(response)) == NetworkLoadClient::ShouldContinueDidReceiveResponse::Yes)
</ins><span class="cx">         completionHandler(PolicyUse);
</span><span class="cx">     else
</span><span class="cx">         m_responseCompletionHandler = completionHandler;
</span><span class="lines">@@ -287,10 +286,10 @@
</span><span class="cx">     
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-void NetworkLoad::didReceiveResponseAsync(ResourceHandle* handle, const ResourceResponse&amp; receivedResponse)
</del><ins>+void NetworkLoad::didReceiveResponseAsync(ResourceHandle* handle, ResourceResponse&amp;&amp; receivedResponse)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT_UNUSED(handle, handle == m_handle);
</span><del>-    if (sharedDidReceiveResponse(receivedResponse) == NetworkLoadClient::ShouldContinueDidReceiveResponse::Yes)
</del><ins>+    if (sharedDidReceiveResponse(WTFMove(receivedResponse)) == NetworkLoadClient::ShouldContinueDidReceiveResponse::Yes)
</ins><span class="cx">         m_handle-&gt;continueDidReceiveResponse();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkLoadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx">     // NetworkDataTaskClient
</span><span class="cx">     void willPerformHTTPRedirection(WebCore::ResourceResponse&amp;&amp;, WebCore::ResourceRequest&amp;&amp;, RedirectCompletionHandler) final;
</span><span class="cx">     void didReceiveChallenge(const WebCore::AuthenticationChallenge&amp;, ChallengeCompletionHandler) final;
</span><del>-    void didReceiveResponseNetworkSession(const WebCore::ResourceResponse&amp;, ResponseCompletionHandler) final;
</del><ins>+    void didReceiveResponseNetworkSession(WebCore::ResourceResponse&amp;&amp;, ResponseCompletionHandler) final;
</ins><span class="cx">     void didReceiveData(Ref&lt;WebCore::SharedBuffer&gt;&amp;&amp;) final;
</span><span class="cx">     void didCompleteWithError(const WebCore::ResourceError&amp;) final;
</span><span class="cx">     void didBecomeDownload() final;
</span><span class="lines">@@ -78,7 +78,7 @@
</span><span class="cx">     // ResourceHandleClient
</span><span class="cx">     void willSendRequestAsync(WebCore::ResourceHandle*, WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceResponse&amp;&amp; redirectResponse) override;
</span><span class="cx">     void didSendData(WebCore::ResourceHandle*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent) override;
</span><del>-    void didReceiveResponseAsync(WebCore::ResourceHandle*, const WebCore::ResourceResponse&amp;) override;
</del><ins>+    void didReceiveResponseAsync(WebCore::ResourceHandle*, WebCore::ResourceResponse&amp;&amp;) override;
</ins><span class="cx">     void didReceiveData(WebCore::ResourceHandle*, const char*, unsigned, int encodedDataLength) override;
</span><span class="cx">     void didReceiveBuffer(WebCore::ResourceHandle*, Ref&lt;WebCore::SharedBuffer&gt;&amp;&amp;, int reportedEncodedDataLength) override;
</span><span class="cx">     void didFinishLoading(WebCore::ResourceHandle*, double finishTime) override;
</span><span class="lines">@@ -116,7 +116,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    NetworkLoadClient::ShouldContinueDidReceiveResponse sharedDidReceiveResponse(const WebCore::ResourceResponse&amp;);
</del><ins>+    NetworkLoadClient::ShouldContinueDidReceiveResponse sharedDidReceiveResponse(WebCore::ResourceResponse&amp;&amp;);
</ins><span class="cx">     void sharedWillSendRedirectedRequest(WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceResponse&amp;&amp;);
</span><span class="cx"> 
</span><span class="cx">     NetworkLoadClient&amp; m_client;
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkLoadClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkLoadClient.h (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkLoadClient.h        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkLoadClient.h        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -23,8 +23,7 @@
</span><span class="cx">  * THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef NetworkLoadClient_h
-#define NetworkLoadClient_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &lt;WebCore/ResourceError.h&gt;
</span><span class="cx"> #include &lt;WebCore/ResourceRequest.h&gt;
</span><span class="lines">@@ -52,7 +51,7 @@
</span><span class="cx">     virtual void canAuthenticateAgainstProtectionSpaceAsync(const WebCore::ProtectionSpace&amp;) = 0;
</span><span class="cx">     virtual void willSendRedirectedRequest(WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceRequest&amp;&amp; redirectRequest, WebCore::ResourceResponse&amp;&amp; redirectResponse) = 0;
</span><span class="cx">     enum class ShouldContinueDidReceiveResponse { No, Yes };
</span><del>-    virtual ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&amp;) = 0;
</del><ins>+    virtual ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&amp;&amp;) = 0;
</ins><span class="cx">     virtual void didReceiveBuffer(Ref&lt;WebCore::SharedBuffer&gt;&amp;&amp;, int reportedEncodedDataLength) = 0;
</span><span class="cx">     virtual void didFinishLoading(double finishTime) = 0;
</span><span class="cx">     virtual void didFailLoading(const WebCore::ResourceError&amp;) = 0;
</span><span class="lines">@@ -62,6 +61,3 @@
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span><del>-
-#endif // NetworkLoadClient_h
-
</del></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkResourceLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -178,7 +178,7 @@
</span><span class="cx">             loader-&gt;dispatchWillSendRequestForCacheEntry(WTFMove(entry));
</span><span class="cx">             return;
</span><span class="cx">         }
</span><del>-        if (loader-&gt;m_parameters.needsCertificateInfo &amp;&amp; !entry-&gt;response().containsCertificateInfo()) {
</del><ins>+        if (loader-&gt;m_parameters.needsCertificateInfo &amp;&amp; !entry-&gt;response().certificateInfo()) {
</ins><span class="cx">             loader-&gt;startNetworkLoad(request);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="lines">@@ -274,7 +274,7 @@
</span><span class="cx">     cleanup();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-auto NetworkResourceLoader::didReceiveResponse(const ResourceResponse&amp; receivedResponse) -&gt; ShouldContinueDidReceiveResponse
</del><ins>+auto NetworkResourceLoader::didReceiveResponse(ResourceResponse&amp;&amp; receivedResponse) -&gt; ShouldContinueDidReceiveResponse
</ins><span class="cx"> {
</span><span class="cx">     NETWORKRESOURCELOADER_LOG_ALWAYS(&quot;Received network resource response: loader = %p, pageID = %llu, frameID = %llu, isMainResource = %d, isSynchronous = %d, httpStatusCode = %d&quot;, this, m_parameters.webPageID, m_parameters.webFrameID, isMainResource(), isSynchronous(), receivedResponse.httpStatusCode());
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkResourceLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx">     void canAuthenticateAgainstProtectionSpaceAsync(const WebCore::ProtectionSpace&amp;) override;
</span><span class="cx">     bool isSynchronous() const override;
</span><span class="cx">     void willSendRedirectedRequest(WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceRequest&amp;&amp; redirectRequest, WebCore::ResourceResponse&amp;&amp;) override;
</span><del>-    ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&amp;) override;
</del><ins>+    ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&amp;&amp;) override;
</ins><span class="cx">     void didReceiveBuffer(Ref&lt;WebCore::SharedBuffer&gt;&amp;&amp;, int reportedEncodedDataLength) override;
</span><span class="cx">     void didFinishLoading(double finishTime) override;
</span><span class="cx">     void didFailLoading(const WebCore::ResourceError&amp;) override;
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessPingLoadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/PingLoad.h (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/PingLoad.h        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/NetworkProcess/PingLoad.h        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">         completionHandler(AuthenticationChallengeDisposition::Cancel, { });
</span><span class="cx">         delete this;
</span><span class="cx">     }
</span><del>-    void didReceiveResponseNetworkSession(const WebCore::ResourceResponse&amp;, ResponseCompletionHandler completionHandler) override
</del><ins>+    void didReceiveResponseNetworkSession(WebCore::ResourceResponse&amp;&amp;, ResponseCompletionHandler completionHandler) override
</ins><span class="cx">     {
</span><span class="cx">         completionHandler(WebCore::PolicyAction::PolicyIgnore);
</span><span class="cx">         delete this;
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheCodersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.h (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.h        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.h        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -23,8 +23,7 @@
</span><span class="cx">  * THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef NetworkCacheCoders_h
-#define NetworkCacheCoders_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETWORK_CACHE)
</span><span class="cx"> 
</span><span class="lines">@@ -81,6 +80,38 @@
</span><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><ins>+template&lt;typename T&gt; struct Coder&lt;Optional&lt;T&gt;&gt; {
+    static void encode(Encoder&amp; encoder, const Optional&lt;T&gt;&amp; optional)
+    {
+        if (!optional) {
+            encoder &lt;&lt; false;
+            return;
+        }
+        
+        encoder &lt;&lt; true;
+        encoder &lt;&lt; optional.value();
+    }
+    
+    static bool decode(Decoder&amp; decoder, Optional&lt;T&gt;&amp; optional)
+    {
+        bool isEngaged;
+        if (!decoder.decode(isEngaged))
+            return false;
+        
+        if (!isEngaged) {
+            optional = Nullopt;
+            return true;
+        }
+        
+        T value;
+        if (!decoder.decode(value))
+            return false;
+        
+        optional = WTFMove(value);
+        return true;
+    }
+};
+
</ins><span class="cx"> template&lt;typename KeyType, typename ValueType&gt; struct Coder&lt;WTF::KeyValuePair&lt;KeyType, ValueType&gt;&gt; {
</span><span class="cx">     static void encode(Encoder&amp; encoder, const WTF::KeyValuePair&lt;KeyType, ValueType&gt;&amp; pair)
</span><span class="cx">     {
</span><span class="lines">@@ -267,4 +298,3 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><del>-#endif
</del></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheSpeculativeLoadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx">     abort();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-auto SpeculativeLoad::didReceiveResponse(const ResourceResponse&amp; receivedResponse) -&gt; ShouldContinueDidReceiveResponse
</del><ins>+auto SpeculativeLoad::didReceiveResponse(ResourceResponse&amp;&amp; receivedResponse) -&gt; ShouldContinueDidReceiveResponse
</ins><span class="cx"> {
</span><span class="cx">     m_response = receivedResponse;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheSpeculativeLoadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx">     void canAuthenticateAgainstProtectionSpaceAsync(const WebCore::ProtectionSpace&amp;) override { }
</span><span class="cx">     bool isSynchronous() const override { return false; }
</span><span class="cx">     void willSendRedirectedRequest(WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceRequest&amp;&amp; redirectRequest, WebCore::ResourceResponse&amp;&amp; redirectResponse) override;
</span><del>-    ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&amp;) override;
</del><ins>+    ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&amp;&amp;) override;
</ins><span class="cx">     void didReceiveBuffer(Ref&lt;WebCore::SharedBuffer&gt;&amp;&amp;, int reportedEncodedDataLength) override;
</span><span class="cx">     void didFinishLoading(double finishTime) override;
</span><span class="cx">     void didFailLoading(const WebCore::ResourceError&amp;) override;
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscocoaNetworkDataTaskCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -165,10 +165,10 @@
</span><span class="cx">         m_client-&gt;didCompleteWithError(error);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void NetworkDataTask::didReceiveResponse(const WebCore::ResourceResponse&amp; response, ResponseCompletionHandler completionHandler)
</del><ins>+void NetworkDataTask::didReceiveResponse(WebCore::ResourceResponse&amp;&amp; response, ResponseCompletionHandler completionHandler)
</ins><span class="cx"> {
</span><span class="cx">     if (m_client)
</span><del>-        m_client-&gt;didReceiveResponseNetworkSession(response, completionHandler);
</del><ins>+        m_client-&gt;didReceiveResponseNetworkSession(WTFMove(response), completionHandler);
</ins><span class="cx">     else {
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx">         completionHandler(WebCore::PolicyAction::PolicyIgnore);
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscocoaNetworkSessionCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -247,7 +247,7 @@
</span><span class="cx">         WebCore::ResourceResponse resourceResponse(response);
</span><span class="cx">         copyTimingData([dataTask _timingData], resourceResponse.resourceLoadTiming());
</span><span class="cx">         auto completionHandlerCopy = Block_copy(completionHandler);
</span><del>-        networkDataTask-&gt;didReceiveResponse(resourceResponse, [completionHandlerCopy, taskIdentifier](WebCore::PolicyAction policyAction) {
</del><ins>+        networkDataTask-&gt;didReceiveResponse(WTFMove(resourceResponse), [completionHandlerCopy, taskIdentifier](WebCore::PolicyAction policyAction) {
</ins><span class="cx">             LOG(NetworkSession, &quot;%llu didReceiveResponse completionHandler (cancel)&quot;, taskIdentifier);
</span><span class="cx">             completionHandlerCopy(toNSURLSessionResponseDisposition(policyAction));
</span><span class="cx">             Block_release(completionHandlerCopy);
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -468,7 +468,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><span class="cx"> 
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidCommitLoadForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), documentLoader.response().mimeType(), m_frameHasCustomContentProvider, static_cast&lt;uint32_t&gt;(m_frame-&gt;coreFrame()-&gt;loader().loadType()), documentLoader.response().certificateInfo(), m_frame-&gt;coreFrame()-&gt;document()-&gt;isPluginDocument(), UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidCommitLoadForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), documentLoader.response().mimeType(), m_frameHasCustomContentProvider, static_cast&lt;uint32_t&gt;(m_frame-&gt;coreFrame()-&gt;loader().loadType()), documentLoader.response().certificateInfo().valueOrCompute([] { return CertificateInfo(); }), m_frame-&gt;coreFrame()-&gt;document()-&gt;isPluginDocument(), UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx">     webPage-&gt;didCommitLoad(m_frame);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp (201942 => 201943)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp        2016-06-10 22:00:23 UTC (rev 201942)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp        2016-06-10 22:02:55 UTC (rev 201943)
</span><span class="lines">@@ -397,16 +397,16 @@
</span><span class="cx">     return documentLoader-&gt;url().string();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebCore::CertificateInfo WebFrame::certificateInfo() const
</del><ins>+CertificateInfo WebFrame::certificateInfo() const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_coreFrame)
</span><del>-        return CertificateInfo();
</del><ins>+        return { };
</ins><span class="cx"> 
</span><span class="cx">     DocumentLoader* documentLoader = m_coreFrame-&gt;loader().documentLoader();
</span><span class="cx">     if (!documentLoader)
</span><del>-        return CertificateInfo();
</del><ins>+        return { };
</ins><span class="cx"> 
</span><del>-    return documentLoader-&gt;response().certificateInfo();
</del><ins>+    return documentLoader-&gt;response().certificateInfo().valueOrCompute([] { return CertificateInfo(); });
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String WebFrame::innerText() const
</span></span></pre>
</div>
</div>

</body>
</html>