Diff
Modified: trunk/Source/WebCore/ChangeLog (201942 => 201943)
--- 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)
@@ -1,3 +1,73 @@
+2016-06-10 Alex Christensen <achristen...@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):
+
2016-06-09 Ryosuke Niwa <rn...@webkit.org>
Add SPI to disable spellchecking on auto-fillable text fields
Modified: trunk/Source/WebCore/loader/ResourceLoader.cpp (201942 => 201943)
--- 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)
@@ -637,7 +637,7 @@
didSendData(bytesSent, totalBytesToBeSent);
}
-void ResourceLoader::didReceiveResponse(ResourceHandle*, const ResourceResponse& response)
+void ResourceLoader::didReceiveResponse(ResourceHandle*, ResourceResponse&& response)
{
if (documentLoader()->applicationCacheHost()->maybeLoadFallbackForResponse(this, response))
return;
Modified: trunk/Source/WebCore/loader/ResourceLoader.h (201942 => 201943)
--- 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)
@@ -185,7 +185,7 @@
// ResourceHandleClient
ResourceRequest willSendRequest(ResourceHandle*, ResourceRequest&&, ResourceResponse&& redirectResponse) override;
void didSendData(ResourceHandle*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent) override;
- void didReceiveResponse(ResourceHandle*, const ResourceResponse&) override;
+ void didReceiveResponse(ResourceHandle*, ResourceResponse&&) override;
void didReceiveData(ResourceHandle*, const char*, unsigned, int encodedDataLength) override;
void didReceiveBuffer(ResourceHandle*, Ref<SharedBuffer>&&, int encodedDataLength) override;
void didFinishLoading(ResourceHandle*, double finishTime) override;
Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp (201942 => 201943)
--- 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)
@@ -489,7 +489,7 @@
return handle;
}
-void ApplicationCacheGroup::didReceiveResponse(ResourceHandle* handle, const ResourceResponse& response)
+void ApplicationCacheGroup::didReceiveResponse(ResourceHandle* handle, ResourceResponse&& response)
{
ASSERT(m_frame);
InspectorInstrumentationCookie cookie = InspectorInstrumentation::willReceiveResourceResponse(m_frame);
Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.h (201942 => 201943)
--- 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)
@@ -108,7 +108,7 @@
// the existing client callback cannot be used, so assume that any client that enables application cache also wants it to use credential storage.
bool shouldUseCredentialStorage(ResourceHandle*) override { return true; }
- void didReceiveResponse(ResourceHandle*, const ResourceResponse&) override;
+ void didReceiveResponse(ResourceHandle*, ResourceResponse&&) override;
void didReceiveData(ResourceHandle*, const char*, unsigned length, int encodedDataLength) override;
void didFinishLoading(ResourceHandle*, double finishTime) override;
void didFail(ResourceHandle*, const ResourceError&) override;
Modified: trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h (201942 => 201943)
--- 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)
@@ -23,8 +23,7 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef PlatformMediaResourceLoader_h
-#define PlatformMediaResourceLoader_h
+#pragma once
#if ENABLE(VIDEO)
@@ -91,4 +90,3 @@
} // namespace WebCore
#endif
-#endif
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp (201942 => 201943)
--- 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)
@@ -96,7 +96,7 @@
char* getOrCreateReadBuffer(size_t requestedSize, size_t& actualSize) override;
#endif
ResourceRequest willSendRequest(ResourceHandle*, ResourceRequest&&, ResourceResponse&&) override;
- void didReceiveResponse(ResourceHandle*, const ResourceResponse&) override;
+ void didReceiveResponse(ResourceHandle*, ResourceResponse&&) override;
void didReceiveData(ResourceHandle*, const char*, unsigned, int) override;
void didReceiveBuffer(ResourceHandle*, Ref<SharedBuffer>&&, int encodedLength) override;
void didFinishLoading(ResourceHandle*, double /*finishTime*/) override;
@@ -1090,7 +1090,7 @@
return WTFMove(request);
}
-void ResourceHandleStreamingClient::didReceiveResponse(ResourceHandle*, const ResourceResponse& response)
+void ResourceHandleStreamingClient::didReceiveResponse(ResourceHandle*, ResourceResponse&& response)
{
handleResponseReceived(response);
}
Modified: trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp (201942 => 201943)
--- 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)
@@ -83,7 +83,7 @@
public:
BlobResourceSynchronousLoader(ResourceError&, ResourceResponse&, Vector<char>&);
- void didReceiveResponse(ResourceHandle*, const ResourceResponse&) override;
+ void didReceiveResponse(ResourceHandle*, ResourceResponse&&) override;
void didFail(ResourceHandle*, const ResourceError&) override;
private:
@@ -99,7 +99,7 @@
{
}
-void BlobResourceSynchronousLoader::didReceiveResponse(ResourceHandle* handle, const ResourceResponse& response)
+void BlobResourceSynchronousLoader::didReceiveResponse(ResourceHandle* handle, ResourceResponse&& response)
{
// We cannot handle the size that is more than maximum integer.
if (response.expectedContentLength() > INT_MAX) {
@@ -583,9 +583,9 @@
// It's currently client's responsibility to know that didReceiveResponseAsync cannot be used to convert a
// load into a download or blobs.
if (usesAsyncCallbacks())
- client()->didReceiveResponseAsync(this, response);
+ client()->didReceiveResponseAsync(this, WTFMove(response));
else
- client()->didReceiveResponse(this, response);
+ client()->didReceiveResponse(this, WTFMove(response));
}
void BlobResourceHandle::notifyResponseOnError()
@@ -615,9 +615,9 @@
// Note that we don't wait for continueDidReceiveResponse when using didReceiveResponseAsync.
// This is not formally correct, but the client has to be a no-op anyway, because blobs can't be downloaded.
if (usesAsyncCallbacks())
- client()->didReceiveResponseAsync(this, response);
+ client()->didReceiveResponseAsync(this, WTFMove(response));
else
- client()->didReceiveResponse(this, response);
+ client()->didReceiveResponse(this, WTFMove(response));
}
void BlobResourceHandle::notifyReceiveData(const char* data, int bytesRead)
Modified: trunk/Source/WebCore/platform/network/DataURL.cpp (201942 => 201943)
--- 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)
@@ -76,25 +76,22 @@
if (base64) {
data = ""
- handle->client()->didReceiveResponse(handle, response);
+ handle->client()->didReceiveResponse(handle, WTFMove(response));
// didReceiveResponse might cause the client to be deleted.
if (handle->client()) {
Vector<char> out;
- if (base64Decode(data, out, Base64IgnoreSpacesAndNewLines) && out.size() > 0) {
- response.setExpectedContentLength(out.size());
+ if (base64Decode(data, out, Base64IgnoreSpacesAndNewLines) && out.size() > 0)
handle->client()->didReceiveData(handle, out.data(), out.size(), 0);
- }
}
} else {
TextEncoding encoding(charset);
data = "" encoding);
- handle->client()->didReceiveResponse(handle, response);
+ handle->client()->didReceiveResponse(handle, WTFMove(response));
// didReceiveResponse might cause the client to be deleted.
if (handle->client()) {
CString encodedData = encoding.encode(data, URLEncodedEntitiesForUnencodables);
- response.setExpectedContentLength(encodedData.length());
if (encodedData.length())
handle->client()->didReceiveData(handle, encodedData.data(), encodedData.length(), 0);
}
Modified: trunk/Source/WebCore/platform/network/PingHandle.h (201942 => 201943)
--- 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)
@@ -56,7 +56,7 @@
}
private:
- void didReceiveResponse(ResourceHandle*, const ResourceResponse&) override { delete this; }
+ void didReceiveResponse(ResourceHandle*, ResourceResponse&&) override { delete this; }
void didReceiveBuffer(ResourceHandle*, Ref<SharedBuffer>&&, int) override { delete this; };
void didFinishLoading(ResourceHandle*, double) override { delete this; }
void didFail(ResourceHandle*, const ResourceError&) override { delete this; }
Modified: trunk/Source/WebCore/platform/network/ResourceHandleClient.cpp (201942 => 201943)
--- 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)
@@ -50,7 +50,7 @@
handle->continueWillSendRequest(WTFMove(request));
}
-void ResourceHandleClient::didReceiveResponseAsync(ResourceHandle* handle, const ResourceResponse&)
+void ResourceHandleClient::didReceiveResponseAsync(ResourceHandle* handle, ResourceResponse&&)
{
handle->continueDidReceiveResponse();
}
Modified: trunk/Source/WebCore/platform/network/ResourceHandleClient.h (201942 => 201943)
--- 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)
@@ -71,7 +71,7 @@
WEBCORE_EXPORT virtual ResourceRequest willSendRequest(ResourceHandle*, ResourceRequest&&, ResourceResponse&&);
virtual void didSendData(ResourceHandle*, unsigned long long /*bytesSent*/, unsigned long long /*totalBytesToBeSent*/) { }
- virtual void didReceiveResponse(ResourceHandle*, const ResourceResponse&) { }
+ virtual void didReceiveResponse(ResourceHandle*, ResourceResponse&&) { }
virtual void didReceiveData(ResourceHandle*, const char*, unsigned, int /*encodedDataLength*/) { }
WEBCORE_EXPORT virtual void didReceiveBuffer(ResourceHandle*, Ref<SharedBuffer>&&, int encodedDataLength);
@@ -89,7 +89,7 @@
WEBCORE_EXPORT virtual void willSendRequestAsync(ResourceHandle*, ResourceRequest&&, ResourceResponse&&);
// Client will call ResourceHandle::continueDidReceiveResponse() when ready.
- WEBCORE_EXPORT virtual void didReceiveResponseAsync(ResourceHandle*, const ResourceResponse&);
+ WEBCORE_EXPORT virtual void didReceiveResponseAsync(ResourceHandle*, ResourceResponse&&);
#if USE(PROTECTION_SPACE_AUTH_CALLBACK)
// Client will pass an updated request using ResourceHandle::continueCanAuthenticateAgainstProtectionSpace() when ready.
Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp (201942 => 201943)
--- 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)
@@ -47,7 +47,6 @@
ResourceResponseBase::ResourceResponseBase()
: m_isNull(true)
, m_expectedContentLength(0)
- , m_includesCertificateInfo(false)
, m_httpStatusCode(0)
{
}
@@ -58,7 +57,7 @@
, m_mimeType(mimeType)
, m_expectedContentLength(expectedLength)
, m_textEncodingName(textEncodingName)
- , m_includesCertificateInfo(true) // Empty but valid for synthetic responses.
+ , m_certificateInfo(CertificateInfo()) // Empty but valid for synthetic responses.
, m_httpStatusCode(0)
{
}
@@ -184,17 +183,11 @@
void ResourceResponseBase::includeCertificateInfo() const
{
- if (m_includesCertificateInfo)
+ if (m_certificateInfo)
return;
m_certificateInfo = static_cast<const ResourceResponse*>(this)->platformCertificateInfo();
- m_includesCertificateInfo = true;
}
-CertificateInfo ResourceResponseBase::certificateInfo() const
-{
- return m_certificateInfo;
-}
-
String ResourceResponseBase::suggestedFilename() const
{
return static_cast<const ResourceResponse*>(this)->platformSuggestedFilename();
Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.h (201942 => 201943)
--- 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)
@@ -114,8 +114,7 @@
WEBCORE_EXPORT String suggestedFilename() const;
WEBCORE_EXPORT void includeCertificateInfo() const;
- bool containsCertificateInfo() const { return m_includesCertificateInfo; }
- WEBCORE_EXPORT CertificateInfo certificateInfo() const;
+ WEBCORE_EXPORT const Optional<CertificateInfo>& certificateInfo() const { return m_certificateInfo; };
// These functions return parsed values of the corresponding response headers.
// NaN means that the header was not present or had invalid value.
@@ -190,8 +189,8 @@
HTTPHeaderMap m_httpHeaderFields;
mutable ResourceLoadTiming m_resourceLoadTiming;
- mutable bool m_includesCertificateInfo;
- mutable CertificateInfo m_certificateInfo;
+#define RESOURCE_RESPONSE_BASE_CERT_INFO_OPTIONAL
+ mutable Optional<CertificateInfo> m_certificateInfo;
int m_httpStatusCode;
@@ -236,9 +235,7 @@
encoder << m_httpHeaderFields;
encoder << m_resourceLoadTiming;
encoder << m_httpStatusCode;
- encoder << m_includesCertificateInfo;
- if (m_includesCertificateInfo)
- encoder << m_certificateInfo;
+ encoder << m_certificateInfo;
encoder.encodeEnum(m_source);
encoder.encodeEnum(m_type);
encoder << m_isRedirected;
@@ -274,12 +271,8 @@
return false;
if (!decoder.decode(response.m_httpStatusCode))
return false;
- if (!decoder.decode(response.m_includesCertificateInfo))
+ if (!decoder.decode(response.m_certificateInfo))
return false;
- if (response.m_includesCertificateInfo) {
- if (!decoder.decode(response.m_certificateInfo))
- return false;
- }
if (!decoder.decodeEnum(response.m_source))
return false;
if (!decoder.decodeEnum(response.m_type))
Modified: trunk/Source/WebCore/platform/network/SynchronousLoaderClient.cpp (201942 => 201943)
--- 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)
@@ -62,9 +62,9 @@
}
#endif
-void SynchronousLoaderClient::didReceiveResponse(ResourceHandle*, const ResourceResponse& response)
+void SynchronousLoaderClient::didReceiveResponse(ResourceHandle*, ResourceResponse&& response)
{
- m_response = response;
+ m_response = WTFMove(response);
}
void SynchronousLoaderClient::didReceiveData(ResourceHandle*, const char* data, unsigned length, int /*encodedDataLength*/)
Modified: trunk/Source/WebCore/platform/network/SynchronousLoaderClient.h (201942 => 201943)
--- 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)
@@ -48,7 +48,7 @@
ResourceRequest willSendRequest(ResourceHandle*, ResourceRequest&&, ResourceResponse&&) override;
bool shouldUseCredentialStorage(ResourceHandle*) override;
void didReceiveAuthenticationChallenge(ResourceHandle*, const AuthenticationChallenge&) override;
- void didReceiveResponse(ResourceHandle*, const ResourceResponse&) override;
+ void didReceiveResponse(ResourceHandle*, ResourceResponse&&) override;
void didReceiveData(ResourceHandle*, const char*, unsigned, int /*encodedDataLength*/) override;
void didFinishLoading(ResourceHandle*, double /*finishTime*/) override;
void didFail(ResourceHandle*, const ResourceError&) override;
Modified: trunk/Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp (201942 => 201943)
--- 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)
@@ -161,7 +161,7 @@
UNUSED_PARAM(connection);
#endif
- m_handle->client()->didReceiveResponseAsync(m_handle, resourceResponse);
+ m_handle->client()->didReceiveResponseAsync(m_handle, WTFMove(resourceResponse));
});
dispatch_semaphore_wait(m_semaphore, DISPATCH_TIME_FOREVER);
}
Modified: trunk/Source/WebCore/platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp (201942 => 201943)
--- 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)
@@ -180,7 +180,7 @@
UNUSED_PARAM(connection);
#endif
- m_handle->client()->didReceiveResponse(m_handle, resourceResponse);
+ m_handle->client()->didReceiveResponse(m_handle, WTFMove(resourceResponse));
}
void SynchronousResourceHandleCFURLConnectionDelegate::didReceiveData(CFDataRef data, CFIndex originalLength)
Modified: trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm (201942 => 201943)
--- 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)
@@ -169,7 +169,7 @@
UNUSED_PARAM(connection);
#endif
- m_handle->client()->didReceiveResponse(m_handle, resourceResponse);
+ m_handle->client()->didReceiveResponse(m_handle, WTFMove(resourceResponse));
}
#if USE(NETWORK_CFDATA_ARRAY_CALLBACK)
Modified: trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm (201942 => 201943)
--- 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)
@@ -215,7 +215,7 @@
#else
UNUSED_PARAM(connection);
#endif
- m_handle->client()->didReceiveResponseAsync(m_handle, resourceResponse);
+ m_handle->client()->didReceiveResponseAsync(m_handle, WTFMove(resourceResponse));
});
dispatch_semaphore_wait(m_semaphore, DISPATCH_TIME_FOREVER);
Modified: trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp (201942 => 201943)
--- 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)
@@ -136,7 +136,7 @@
}
#endif // SOUP_CHECK_VERSION(2, 49, 91)
- void didReceiveResponse(ResourceHandle*, const ResourceResponse& response) override
+ void didReceiveResponse(ResourceHandle*, ResourceResponse&& response) override
{
m_response = response;
}
@@ -654,9 +654,9 @@
d->m_previousPosition = 0;
if (handle->client()->usesAsyncCallbacks())
- handle->client()->didReceiveResponseAsync(handle.get(), d->m_response);
+ handle->client()->didReceiveResponseAsync(handle.get(), ResourceResponse(d->m_response));
else {
- handle->client()->didReceiveResponse(handle.get(), d->m_response);
+ handle->client()->didReceiveResponse(handle.get(), ResourceResponse(d->m_response));
continueAfterDidReceiveResponse(handle.get());
}
}
@@ -718,9 +718,9 @@
d->m_inputStream = inputStream;
if (d->client()->usesAsyncCallbacks())
- handle->client()->didReceiveResponseAsync(handle.get(), d->m_response);
+ handle->client()->didReceiveResponseAsync(handle.get(), ResourceResponse(d->m_response));
else {
- handle->client()->didReceiveResponse(handle.get(), d->m_response);
+ handle->client()->didReceiveResponse(handle.get(), ResourceResponse(d->m_response));
continueAfterDidReceiveResponse(handle.get());
}
}
Modified: trunk/Source/WebKit2/ChangeLog (201942 => 201943)
--- 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)
@@ -1,3 +1,44 @@
+2016-06-10 Alex Christensen <achristen...@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):
+
2016-06-09 Ryosuke Niwa <rn...@webkit.org>
Add SPI to disable spellchecking on auto-fillable text fields
Modified: trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.h (201942 => 201943)
--- 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)
@@ -55,7 +55,7 @@
void canAuthenticateAgainstProtectionSpaceAsync(const WebCore::ProtectionSpace&) override;
bool isSynchronous() const override { return false; }
void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&& redirectResponse) override;
- ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&) override { return ShouldContinueDidReceiveResponse::No; };
+ ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) override { return ShouldContinueDidReceiveResponse::No; };
void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) override { };
void didFinishLoading(double finishTime) override { };
void didFailLoading(const WebCore::ResourceError&) override;
Modified: trunk/Source/WebKit2/NetworkProcess/NetworkDataTask.h (201942 => 201943)
--- 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)
@@ -70,7 +70,7 @@
public:
virtual void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler) = 0;
virtual void didReceiveChallenge(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler) = 0;
- virtual void didReceiveResponseNetworkSession(const WebCore::ResourceResponse&, ResponseCompletionHandler) = 0;
+ virtual void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler) = 0;
virtual void didReceiveData(Ref<WebCore::SharedBuffer>&&) = 0;
virtual void didCompleteWithError(const WebCore::ResourceError&) = 0;
virtual void didBecomeDownload() = 0;
@@ -100,7 +100,7 @@
void didSendData(uint64_t totalBytesSent, uint64_t totalBytesExpectedToSend);
void didReceiveChallenge(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler);
void didCompleteWithError(const WebCore::ResourceError&);
- void didReceiveResponse(const WebCore::ResourceResponse&, ResponseCompletionHandler);
+ void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler);
void didReceiveData(Ref<WebCore::SharedBuffer>&&);
void didBecomeDownload();
Modified: trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp (201942 => 201943)
--- 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)
@@ -153,14 +153,13 @@
m_handle->continueDidReceiveResponse();
}
-NetworkLoadClient::ShouldContinueDidReceiveResponse NetworkLoad::sharedDidReceiveResponse(const ResourceResponse& receivedResponse)
+NetworkLoadClient::ShouldContinueDidReceiveResponse NetworkLoad::sharedDidReceiveResponse(ResourceResponse&& response)
{
- ResourceResponse response = receivedResponse;
response.setSource(ResourceResponse::Source::Network);
if (m_parameters.needsCertificateInfo)
response.includeCertificateInfo();
- return m_client.didReceiveResponse(response);
+ return m_client.didReceiveResponse(WTFMove(response));
}
void NetworkLoad::sharedWillSendRedirectedRequest(ResourceRequest&& request, ResourceResponse&& redirectResponse)
@@ -239,12 +238,12 @@
m_client.canAuthenticateAgainstProtectionSpaceAsync(challenge.protectionSpace());
}
-void NetworkLoad::didReceiveResponseNetworkSession(const ResourceResponse& response, ResponseCompletionHandler completionHandler)
+void NetworkLoad::didReceiveResponseNetworkSession(ResourceResponse&& response, ResponseCompletionHandler completionHandler)
{
ASSERT(isMainThread());
if (m_task && m_task->pendingDownloadID().downloadID())
NetworkProcess::singleton().findPendingDownloadLocation(*m_task.get(), completionHandler, m_task->currentRequest());
- else if (sharedDidReceiveResponse(response) == NetworkLoadClient::ShouldContinueDidReceiveResponse::Yes)
+ else if (sharedDidReceiveResponse(WTFMove(response)) == NetworkLoadClient::ShouldContinueDidReceiveResponse::Yes)
completionHandler(PolicyUse);
else
m_responseCompletionHandler = completionHandler;
@@ -287,10 +286,10 @@
#endif
-void NetworkLoad::didReceiveResponseAsync(ResourceHandle* handle, const ResourceResponse& receivedResponse)
+void NetworkLoad::didReceiveResponseAsync(ResourceHandle* handle, ResourceResponse&& receivedResponse)
{
ASSERT_UNUSED(handle, handle == m_handle);
- if (sharedDidReceiveResponse(receivedResponse) == NetworkLoadClient::ShouldContinueDidReceiveResponse::Yes)
+ if (sharedDidReceiveResponse(WTFMove(receivedResponse)) == NetworkLoadClient::ShouldContinueDidReceiveResponse::Yes)
m_handle->continueDidReceiveResponse();
}
Modified: trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h (201942 => 201943)
--- 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)
@@ -67,7 +67,7 @@
// NetworkDataTaskClient
void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler) final;
void didReceiveChallenge(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler) final;
- void didReceiveResponseNetworkSession(const WebCore::ResourceResponse&, ResponseCompletionHandler) final;
+ void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler) final;
void didReceiveData(Ref<WebCore::SharedBuffer>&&) final;
void didCompleteWithError(const WebCore::ResourceError&) final;
void didBecomeDownload() final;
@@ -78,7 +78,7 @@
// ResourceHandleClient
void willSendRequestAsync(WebCore::ResourceHandle*, WebCore::ResourceRequest&&, WebCore::ResourceResponse&& redirectResponse) override;
void didSendData(WebCore::ResourceHandle*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent) override;
- void didReceiveResponseAsync(WebCore::ResourceHandle*, const WebCore::ResourceResponse&) override;
+ void didReceiveResponseAsync(WebCore::ResourceHandle*, WebCore::ResourceResponse&&) override;
void didReceiveData(WebCore::ResourceHandle*, const char*, unsigned, int encodedDataLength) override;
void didReceiveBuffer(WebCore::ResourceHandle*, Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) override;
void didFinishLoading(WebCore::ResourceHandle*, double finishTime) override;
@@ -116,7 +116,7 @@
#endif
private:
- NetworkLoadClient::ShouldContinueDidReceiveResponse sharedDidReceiveResponse(const WebCore::ResourceResponse&);
+ NetworkLoadClient::ShouldContinueDidReceiveResponse sharedDidReceiveResponse(WebCore::ResourceResponse&&);
void sharedWillSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceResponse&&);
NetworkLoadClient& m_client;
Modified: trunk/Source/WebKit2/NetworkProcess/NetworkLoadClient.h (201942 => 201943)
--- 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)
@@ -23,8 +23,7 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef NetworkLoadClient_h
-#define NetworkLoadClient_h
+#pragma once
#include <WebCore/ResourceError.h>
#include <WebCore/ResourceRequest.h>
@@ -52,7 +51,7 @@
virtual void canAuthenticateAgainstProtectionSpaceAsync(const WebCore::ProtectionSpace&) = 0;
virtual void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&& redirectResponse) = 0;
enum class ShouldContinueDidReceiveResponse { No, Yes };
- virtual ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&) = 0;
+ virtual ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) = 0;
virtual void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) = 0;
virtual void didFinishLoading(double finishTime) = 0;
virtual void didFailLoading(const WebCore::ResourceError&) = 0;
@@ -62,6 +61,3 @@
};
} // namespace WebKit
-
-#endif // NetworkLoadClient_h
-
Modified: trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp (201942 => 201943)
--- 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)
@@ -178,7 +178,7 @@
loader->dispatchWillSendRequestForCacheEntry(WTFMove(entry));
return;
}
- if (loader->m_parameters.needsCertificateInfo && !entry->response().containsCertificateInfo()) {
+ if (loader->m_parameters.needsCertificateInfo && !entry->response().certificateInfo()) {
loader->startNetworkLoad(request);
return;
}
@@ -274,7 +274,7 @@
cleanup();
}
-auto NetworkResourceLoader::didReceiveResponse(const ResourceResponse& receivedResponse) -> ShouldContinueDidReceiveResponse
+auto NetworkResourceLoader::didReceiveResponse(ResourceResponse&& receivedResponse) -> ShouldContinueDidReceiveResponse
{
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());
Modified: trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h (201942 => 201943)
--- 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)
@@ -88,7 +88,7 @@
void canAuthenticateAgainstProtectionSpaceAsync(const WebCore::ProtectionSpace&) override;
bool isSynchronous() const override;
void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&&) override;
- ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&) override;
+ ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) override;
void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) override;
void didFinishLoading(double finishTime) override;
void didFailLoading(const WebCore::ResourceError&) override;
Modified: trunk/Source/WebKit2/NetworkProcess/PingLoad.h (201942 => 201943)
--- 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)
@@ -58,7 +58,7 @@
completionHandler(AuthenticationChallengeDisposition::Cancel, { });
delete this;
}
- void didReceiveResponseNetworkSession(const WebCore::ResourceResponse&, ResponseCompletionHandler completionHandler) override
+ void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler completionHandler) override
{
completionHandler(WebCore::PolicyAction::PolicyIgnore);
delete this;
Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.h (201942 => 201943)
--- 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)
@@ -23,8 +23,7 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef NetworkCacheCoders_h
-#define NetworkCacheCoders_h
+#pragma once
#if ENABLE(NETWORK_CACHE)
@@ -81,6 +80,38 @@
}
};
+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;
+ }
+};
+
template<typename KeyType, typename ValueType> struct Coder<WTF::KeyValuePair<KeyType, ValueType>> {
static void encode(Encoder& encoder, const WTF::KeyValuePair<KeyType, ValueType>& pair)
{
@@ -267,4 +298,3 @@
}
}
#endif
-#endif
Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp (201942 => 201943)
--- 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)
@@ -70,7 +70,7 @@
abort();
}
-auto SpeculativeLoad::didReceiveResponse(const ResourceResponse& receivedResponse) -> ShouldContinueDidReceiveResponse
+auto SpeculativeLoad::didReceiveResponse(ResourceResponse&& receivedResponse) -> ShouldContinueDidReceiveResponse
{
m_response = receivedResponse;
Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h (201942 => 201943)
--- 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)
@@ -57,7 +57,7 @@
void canAuthenticateAgainstProtectionSpaceAsync(const WebCore::ProtectionSpace&) override { }
bool isSynchronous() const override { return false; }
void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&& redirectResponse) override;
- ShouldContinueDidReceiveResponse didReceiveResponse(const WebCore::ResourceResponse&) override;
+ ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) override;
void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) override;
void didFinishLoading(double finishTime) override;
void didFailLoading(const WebCore::ResourceError&) override;
Modified: trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm (201942 => 201943)
--- 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)
@@ -165,10 +165,10 @@
m_client->didCompleteWithError(error);
}
-void NetworkDataTask::didReceiveResponse(const WebCore::ResourceResponse& response, ResponseCompletionHandler completionHandler)
+void NetworkDataTask::didReceiveResponse(WebCore::ResourceResponse&& response, ResponseCompletionHandler completionHandler)
{
if (m_client)
- m_client->didReceiveResponseNetworkSession(response, completionHandler);
+ m_client->didReceiveResponseNetworkSession(WTFMove(response), completionHandler);
else {
ASSERT_NOT_REACHED();
completionHandler(WebCore::PolicyAction::PolicyIgnore);
Modified: trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm (201942 => 201943)
--- 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)
@@ -247,7 +247,7 @@
WebCore::ResourceResponse resourceResponse(response);
copyTimingData([dataTask _timingData], resourceResponse.resourceLoadTiming());
auto completionHandlerCopy = Block_copy(completionHandler);
- networkDataTask->didReceiveResponse(resourceResponse, [completionHandlerCopy, taskIdentifier](WebCore::PolicyAction policyAction) {
+ networkDataTask->didReceiveResponse(WTFMove(resourceResponse), [completionHandlerCopy, taskIdentifier](WebCore::PolicyAction policyAction) {
LOG(NetworkSession, "%llu didReceiveResponse completionHandler (cancel)", taskIdentifier);
completionHandlerCopy(toNSURLSessionResponseDisposition(policyAction));
Block_release(completionHandlerCopy);
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (201942 => 201943)
--- 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)
@@ -468,7 +468,7 @@
// Notify the UIProcess.
- 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())));
+ 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())));
webPage->didCommitLoad(m_frame);
}
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp (201942 => 201943)
--- 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)
@@ -397,16 +397,16 @@
return documentLoader->url().string();
}
-WebCore::CertificateInfo WebFrame::certificateInfo() const
+CertificateInfo WebFrame::certificateInfo() const
{
if (!m_coreFrame)
- return CertificateInfo();
+ return { };
DocumentLoader* documentLoader = m_coreFrame->loader().documentLoader();
if (!documentLoader)
- return CertificateInfo();
+ return { };
- return documentLoader->response().certificateInfo();
+ return documentLoader->response().certificateInfo().valueOrCompute([] { return CertificateInfo(); });
}
String WebFrame::innerText() const