<!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<Optional<T>>::encode):
(WebKit::NetworkCache::Coder<Optional<T>>::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 <achristensen@webkit.org>
+
+ 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 <rniwa@webkit.org>
</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& response)
</del><ins>+void ResourceLoader::didReceiveResponse(ResourceHandle*, ResourceResponse&& response)
</ins><span class="cx"> {
</span><span class="cx"> if (documentLoader()->applicationCacheHost()->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&&, ResourceResponse&& 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&) override;
</del><ins>+ void didReceiveResponse(ResourceHandle*, ResourceResponse&&) override;
</ins><span class="cx"> void didReceiveData(ResourceHandle*, const char*, unsigned, int encodedDataLength) override;
</span><span class="cx"> void didReceiveBuffer(ResourceHandle*, Ref<SharedBuffer>&&, 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& response)
</del><ins>+void ApplicationCacheGroup::didReceiveResponse(ResourceHandle* handle, ResourceResponse&& 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&) override;
</del><ins>+ void didReceiveResponse(ResourceHandle*, ResourceResponse&&) 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&) 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& actualSize) override;
</span><span class="cx"> #endif
</span><span class="cx"> ResourceRequest willSendRequest(ResourceHandle*, ResourceRequest&&, ResourceResponse&&) override;
</span><del>- void didReceiveResponse(ResourceHandle*, const ResourceResponse&) override;
</del><ins>+ void didReceiveResponse(ResourceHandle*, ResourceResponse&&) override;
</ins><span class="cx"> void didReceiveData(ResourceHandle*, const char*, unsigned, int) override;
</span><span class="cx"> void didReceiveBuffer(ResourceHandle*, Ref<SharedBuffer>&&, 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& response)
</del><ins>+void ResourceHandleStreamingClient::didReceiveResponse(ResourceHandle*, ResourceResponse&& 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&, ResourceResponse&, Vector<char>&);
</span><span class="cx">
</span><del>- void didReceiveResponse(ResourceHandle*, const ResourceResponse&) override;
</del><ins>+ void didReceiveResponse(ResourceHandle*, ResourceResponse&&) override;
</ins><span class="cx"> void didFail(ResourceHandle*, const ResourceError&) 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& response)
</del><ins>+void BlobResourceSynchronousLoader::didReceiveResponse(ResourceHandle* handle, ResourceResponse&& 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() > 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()->didReceiveResponseAsync(this, response);
</del><ins>+ client()->didReceiveResponseAsync(this, WTFMove(response));
</ins><span class="cx"> else
</span><del>- client()->didReceiveResponse(this, response);
</del><ins>+ client()->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()->didReceiveResponseAsync(this, response);
</del><ins>+ client()->didReceiveResponseAsync(this, WTFMove(response));
</ins><span class="cx"> else
</span><del>- client()->didReceiveResponse(this, response);
</del><ins>+ client()->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->client()->didReceiveResponse(handle, response);
</del><ins>+ handle->client()->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->client()) {
</span><span class="cx"> Vector<char> out;
</span><del>- if (base64Decode(data, out, Base64IgnoreSpacesAndNewLines) && out.size() > 0) {
- response.setExpectedContentLength(out.size());
</del><ins>+ if (base64Decode(data, out, Base64IgnoreSpacesAndNewLines) && out.size() > 0)
</ins><span class="cx"> handle->client()->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->client()->didReceiveResponse(handle, response);
</del><ins>+ handle->client()->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->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->client()->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&) override { delete this; }
</del><ins>+ void didReceiveResponse(ResourceHandle*, ResourceResponse&&) override { delete this; }
</ins><span class="cx"> void didReceiveBuffer(ResourceHandle*, Ref<SharedBuffer>&&, int) override { delete this; };
</span><span class="cx"> void didFinishLoading(ResourceHandle*, double) override { delete this; }
</span><span class="cx"> void didFail(ResourceHandle*, const ResourceError&) 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->continueWillSendRequest(WTFMove(request));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void ResourceHandleClient::didReceiveResponseAsync(ResourceHandle* handle, const ResourceResponse&)
</del><ins>+void ResourceHandleClient::didReceiveResponseAsync(ResourceHandle* handle, ResourceResponse&&)
</ins><span class="cx"> {
</span><span class="cx"> handle->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&&, ResourceResponse&&);
</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&) { }
</del><ins>+ virtual void didReceiveResponse(ResourceHandle*, ResourceResponse&&) { }
</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<SharedBuffer>&&, int encodedDataLength);
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx"> WEBCORE_EXPORT virtual void willSendRequestAsync(ResourceHandle*, ResourceRequest&&, ResourceResponse&&);
</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&);
</del><ins>+ WEBCORE_EXPORT virtual void didReceiveResponseAsync(ResourceHandle*, ResourceResponse&&);
</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<const ResourceResponse*>(this)->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<const ResourceResponse*>(this)->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<CertificateInfo>& 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<CertificateInfo> 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 << m_httpHeaderFields;
</span><span class="cx"> encoder << m_resourceLoadTiming;
</span><span class="cx"> encoder << m_httpStatusCode;
</span><del>- encoder << m_includesCertificateInfo;
- if (m_includesCertificateInfo)
- encoder << m_certificateInfo;
</del><ins>+ encoder << m_certificateInfo;
</ins><span class="cx"> encoder.encodeEnum(m_source);
</span><span class="cx"> encoder.encodeEnum(m_type);
</span><span class="cx"> encoder << 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& response)
</del><ins>+void SynchronousLoaderClient::didReceiveResponse(ResourceHandle*, ResourceResponse&& 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&&, ResourceResponse&&) override;
</span><span class="cx"> bool shouldUseCredentialStorage(ResourceHandle*) override;
</span><span class="cx"> void didReceiveAuthenticationChallenge(ResourceHandle*, const AuthenticationChallenge&) override;
</span><del>- void didReceiveResponse(ResourceHandle*, const ResourceResponse&) override;
</del><ins>+ void didReceiveResponse(ResourceHandle*, ResourceResponse&&) 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&) 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->client()->didReceiveResponseAsync(m_handle, resourceResponse);
</del><ins>+ m_handle->client()->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->client()->didReceiveResponse(m_handle, resourceResponse);
</del><ins>+ m_handle->client()->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->client()->didReceiveResponse(m_handle, resourceResponse);
</del><ins>+ m_handle->client()->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->client()->didReceiveResponseAsync(m_handle, resourceResponse);
</del><ins>+ m_handle->client()->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& response) override
</del><ins>+ void didReceiveResponse(ResourceHandle*, ResourceResponse&& 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->m_previousPosition = 0;
</span><span class="cx">
</span><span class="cx"> if (handle->client()->usesAsyncCallbacks())
</span><del>- handle->client()->didReceiveResponseAsync(handle.get(), d->m_response);
</del><ins>+ handle->client()->didReceiveResponseAsync(handle.get(), ResourceResponse(d->m_response));
</ins><span class="cx"> else {
</span><del>- handle->client()->didReceiveResponse(handle.get(), d->m_response);
</del><ins>+ handle->client()->didReceiveResponse(handle.get(), ResourceResponse(d->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->m_inputStream = inputStream;
</span><span class="cx">
</span><span class="cx"> if (d->client()->usesAsyncCallbacks())
</span><del>- handle->client()->didReceiveResponseAsync(handle.get(), d->m_response);
</del><ins>+ handle->client()->didReceiveResponseAsync(handle.get(), ResourceResponse(d->m_response));
</ins><span class="cx"> else {
</span><del>- handle->client()->didReceiveResponse(handle.get(), d->m_response);
</del><ins>+ handle->client()->didReceiveResponse(handle.get(), ResourceResponse(d->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 <achristensen@webkit.org>
+
+ 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<Optional<T>>::encode):
+ (WebKit::NetworkCache::Coder<Optional<T>>::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 <rniwa@webkit.org>
</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&) override;
</span><span class="cx"> bool isSynchronous() const override { return false; }
</span><span class="cx"> void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&& redirectResponse) override;
</span><del>- ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&) override { return ShouldContinueDidReceiveResponse::No; };
</del><ins>+ ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) override { return ShouldContinueDidReceiveResponse::No; };
</ins><span class="cx"> void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) override { };
</span><span class="cx"> void didFinishLoading(double finishTime) override { };
</span><span class="cx"> void didFailLoading(const WebCore::ResourceError&) 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&&, WebCore::ResourceRequest&&, RedirectCompletionHandler) = 0;
</span><span class="cx"> virtual void didReceiveChallenge(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler) = 0;
</span><del>- virtual void didReceiveResponseNetworkSession(const WebCore::ResourceResponse&, ResponseCompletionHandler) = 0;
</del><ins>+ virtual void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler) = 0;
</ins><span class="cx"> virtual void didReceiveData(Ref<WebCore::SharedBuffer>&&) = 0;
</span><span class="cx"> virtual void didCompleteWithError(const WebCore::ResourceError&) = 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&, ChallengeCompletionHandler);
</span><span class="cx"> void didCompleteWithError(const WebCore::ResourceError&);
</span><del>- void didReceiveResponse(const WebCore::ResourceResponse&, ResponseCompletionHandler);
</del><ins>+ void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler);
</ins><span class="cx"> void didReceiveData(Ref<WebCore::SharedBuffer>&&);
</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->continueDidReceiveResponse();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-NetworkLoadClient::ShouldContinueDidReceiveResponse NetworkLoad::sharedDidReceiveResponse(const ResourceResponse& receivedResponse)
</del><ins>+NetworkLoadClient::ShouldContinueDidReceiveResponse NetworkLoad::sharedDidReceiveResponse(ResourceResponse&& 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&& request, ResourceResponse&& 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& response, ResponseCompletionHandler completionHandler)
</del><ins>+void NetworkLoad::didReceiveResponseNetworkSession(ResourceResponse&& response, ResponseCompletionHandler completionHandler)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(isMainThread());
</span><span class="cx"> if (m_task && m_task->pendingDownloadID().downloadID())
</span><span class="cx"> NetworkProcess::singleton().findPendingDownloadLocation(*m_task.get(), completionHandler, m_task->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& receivedResponse)
</del><ins>+void NetworkLoad::didReceiveResponseAsync(ResourceHandle* handle, ResourceResponse&& 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->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&&, WebCore::ResourceRequest&&, RedirectCompletionHandler) final;
</span><span class="cx"> void didReceiveChallenge(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler) final;
</span><del>- void didReceiveResponseNetworkSession(const WebCore::ResourceResponse&, ResponseCompletionHandler) final;
</del><ins>+ void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler) final;
</ins><span class="cx"> void didReceiveData(Ref<WebCore::SharedBuffer>&&) final;
</span><span class="cx"> void didCompleteWithError(const WebCore::ResourceError&) 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&&, WebCore::ResourceResponse&& 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&) override;
</del><ins>+ void didReceiveResponseAsync(WebCore::ResourceHandle*, WebCore::ResourceResponse&&) override;
</ins><span class="cx"> void didReceiveData(WebCore::ResourceHandle*, const char*, unsigned, int encodedDataLength) override;
</span><span class="cx"> void didReceiveBuffer(WebCore::ResourceHandle*, Ref<WebCore::SharedBuffer>&&, 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&);
</del><ins>+ NetworkLoadClient::ShouldContinueDidReceiveResponse sharedDidReceiveResponse(WebCore::ResourceResponse&&);
</ins><span class="cx"> void sharedWillSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceResponse&&);
</span><span class="cx">
</span><span class="cx"> NetworkLoadClient& 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 <WebCore/ResourceError.h>
</span><span class="cx"> #include <WebCore/ResourceRequest.h>
</span><span class="lines">@@ -52,7 +51,7 @@
</span><span class="cx"> virtual void canAuthenticateAgainstProtectionSpaceAsync(const WebCore::ProtectionSpace&) = 0;
</span><span class="cx"> virtual void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&& redirectResponse) = 0;
</span><span class="cx"> enum class ShouldContinueDidReceiveResponse { No, Yes };
</span><del>- virtual ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&) = 0;
</del><ins>+ virtual ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) = 0;
</ins><span class="cx"> virtual void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) = 0;
</span><span class="cx"> virtual void didFinishLoading(double finishTime) = 0;
</span><span class="cx"> virtual void didFailLoading(const WebCore::ResourceError&) = 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->dispatchWillSendRequestForCacheEntry(WTFMove(entry));
</span><span class="cx"> return;
</span><span class="cx"> }
</span><del>- if (loader->m_parameters.needsCertificateInfo && !entry->response().containsCertificateInfo()) {
</del><ins>+ if (loader->m_parameters.needsCertificateInfo && !entry->response().certificateInfo()) {
</ins><span class="cx"> loader->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& receivedResponse) -> ShouldContinueDidReceiveResponse
</del><ins>+auto NetworkResourceLoader::didReceiveResponse(ResourceResponse&& receivedResponse) -> ShouldContinueDidReceiveResponse
</ins><span class="cx"> {
</span><span class="cx"> NETWORKRESOURCELOADER_LOG_ALWAYS("Received network resource response: loader = %p, pageID = %llu, frameID = %llu, isMainResource = %d, isSynchronous = %d, httpStatusCode = %d", 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&) override;
</span><span class="cx"> bool isSynchronous() const override;
</span><span class="cx"> void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&&) override;
</span><del>- ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&) override;
</del><ins>+ ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) override;
</ins><span class="cx"> void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) override;
</span><span class="cx"> void didFinishLoading(double finishTime) override;
</span><span class="cx"> void didFailLoading(const WebCore::ResourceError&) 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&, ResponseCompletionHandler completionHandler) override
</del><ins>+ void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, 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<typename T> struct Coder<Optional<T>> {
+ static void encode(Encoder& encoder, const Optional<T>& optional)
+ {
+ if (!optional) {
+ encoder << false;
+ return;
+ }
+
+ encoder << true;
+ encoder << optional.value();
+ }
+
+ static bool decode(Decoder& decoder, Optional<T>& 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<typename KeyType, typename ValueType> struct Coder<WTF::KeyValuePair<KeyType, ValueType>> {
</span><span class="cx"> static void encode(Encoder& encoder, const WTF::KeyValuePair<KeyType, ValueType>& 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& receivedResponse) -> ShouldContinueDidReceiveResponse
</del><ins>+auto SpeculativeLoad::didReceiveResponse(ResourceResponse&& receivedResponse) -> 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&) override { }
</span><span class="cx"> bool isSynchronous() const override { return false; }
</span><span class="cx"> void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&& redirectResponse) override;
</span><del>- ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&) override;
</del><ins>+ ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) override;
</ins><span class="cx"> void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) override;
</span><span class="cx"> void didFinishLoading(double finishTime) override;
</span><span class="cx"> void didFailLoading(const WebCore::ResourceError&) 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->didCompleteWithError(error);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void NetworkDataTask::didReceiveResponse(const WebCore::ResourceResponse& response, ResponseCompletionHandler completionHandler)
</del><ins>+void NetworkDataTask::didReceiveResponse(WebCore::ResourceResponse&& response, ResponseCompletionHandler completionHandler)
</ins><span class="cx"> {
</span><span class="cx"> if (m_client)
</span><del>- m_client->didReceiveResponseNetworkSession(response, completionHandler);
</del><ins>+ m_client->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->didReceiveResponse(resourceResponse, [completionHandlerCopy, taskIdentifier](WebCore::PolicyAction policyAction) {
</del><ins>+ networkDataTask->didReceiveResponse(WTFMove(resourceResponse), [completionHandlerCopy, taskIdentifier](WebCore::PolicyAction policyAction) {
</ins><span class="cx"> LOG(NetworkSession, "%llu didReceiveResponse completionHandler (cancel)", 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->send(Messages::WebPageProxy::DidCommitLoadForFrame(m_frame->frameID(), documentLoader.navigationID(), documentLoader.response().mimeType(), m_frameHasCustomContentProvider, static_cast<uint32_t>(m_frame->coreFrame()->loader().loadType()), documentLoader.response().certificateInfo(), m_frame->coreFrame()->document()->isPluginDocument(), UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
</del><ins>+ webPage->send(Messages::WebPageProxy::DidCommitLoadForFrame(m_frame->frameID(), documentLoader.navigationID(), documentLoader.response().mimeType(), m_frameHasCustomContentProvider, static_cast<uint32_t>(m_frame->coreFrame()->loader().loadType()), documentLoader.response().certificateInfo().valueOrCompute([] { return CertificateInfo(); }), m_frame->coreFrame()->document()->isPluginDocument(), UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> webPage->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->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->loader().documentLoader();
</span><span class="cx"> if (!documentLoader)
</span><del>- return CertificateInfo();
</del><ins>+ return { };
</ins><span class="cx">
</span><del>- return documentLoader->response().certificateInfo();
</del><ins>+ return documentLoader->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>