WebKit Bugzilla
Attachment 371830 Details for
Bug 198747
: [curl] Remove member objects of CurlRequest not to share by different threads.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-198747-20190611171007.patch (text/plain), 23.26 KB, created by
Takashi Komori
on 2019-06-11 01:12:28 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Takashi Komori
Created:
2019-06-11 01:12:28 PDT
Size:
23.26 KB
patch
obsolete
>Subversion Revision: 246183 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index f8a27313fe6e785c30a0e22f59663c3e2dfb6ce7..0303de7535ba468b26272b24ae824e0513c708a1 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,42 @@ >+2019-06-11 Takashi Komori <Takashi.Komori@sony.com> >+ >+ [WinCairo] Make objects used in CurlRequest thread safe. >+ https://bugs.webkit.org/show_bug.cgi?id=198747 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Make CertificateInfo and NetworkLoadMetrics objects thread safe. >+ >+ No tests needed, no functionality changes. >+ >+ * platform/network/curl/CurlDownload.cpp: >+ (WebCore::CurlDownload::curlDidComplete): >+ (WebCore::CurlDownload::curlDidFailWithError): >+ * platform/network/curl/CurlDownload.h: >+ * platform/network/curl/CurlRequest.cpp: >+ (WebCore::CurlRequest::start): >+ (WebCore::CurlRequest::didReceiveHeader): >+ (WebCore::CurlRequest::didCompleteTransfer): >+ (WebCore::CurlRequest::networkLoadMetrics): >+ (WebCore::CurlRequest::updateNetworkLoadMetrics): Deleted. >+ * platform/network/curl/CurlRequest.h: >+ (WebCore::CurlRequest::setStartTime): >+ (WebCore::CurlRequest::certificateInfo const): Deleted. >+ (WebCore::CurlRequest::networkLoadMetrics const): Deleted. >+ * platform/network/curl/CurlRequestClient.h: >+ * platform/network/curl/CurlResourceHandleDelegate.cpp: >+ (WebCore::CurlResourceHandleDelegate::curlDidReceiveResponse): >+ (WebCore::CurlResourceHandleDelegate::curlDidComplete): >+ (WebCore::CurlResourceHandleDelegate::curlDidFailWithError): >+ * platform/network/curl/CurlResourceHandleDelegate.h: >+ * platform/network/curl/CurlResponse.h: >+ (WebCore::CurlResponse::isolatedCopy const): >+ * platform/network/curl/ResourceResponse.h: >+ * platform/network/curl/ResourceResponseCurl.cpp: >+ (WebCore::ResourceResponse::ResourceResponse): >+ (WebCore::ResourceResponse::setCertificateInfo): Deleted. >+ (WebCore::ResourceResponse::setDeprecatedNetworkLoadMetrics): Deleted. >+ > 2019-06-06 Brent Fulgham <bfulgham@apple.com> > > Avoid generating new XSLT-based document when already changing the document. >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 5bb5a69e855a277df0b11c7fecde5d815c0e8004..bb550a41f482e92add0a88019d345ed899df114c 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,16 @@ >+2019-06-11 Takashi Komori <Takashi.Komori@sony.com> >+ >+ [WinCairo] Make objects used in CurlRequest thread safe. >+ https://bugs.webkit.org/show_bug.cgi?id=198747 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * NetworkProcess/curl/NetworkDataTaskCurl.cpp: >+ (WebKit::NetworkDataTaskCurl::curlDidReceiveResponse): >+ (WebKit::NetworkDataTaskCurl::curlDidComplete): >+ (WebKit::NetworkDataTaskCurl::curlDidFailWithError): >+ * NetworkProcess/curl/NetworkDataTaskCurl.h: >+ > 2019-06-06 Commit Queue <commit-queue@webkit.org> > > Unreviewed, rolling out r246165. >diff --git a/Source/WebCore/platform/network/curl/CurlDownload.cpp b/Source/WebCore/platform/network/curl/CurlDownload.cpp >index 186420afdf343573d1ef5b52efe3a84f73dc9f34..7ca56fca18753278383caf8c7d05c60f60ef974f 100644 >--- a/Source/WebCore/platform/network/curl/CurlDownload.cpp >+++ b/Source/WebCore/platform/network/curl/CurlDownload.cpp >@@ -112,7 +112,7 @@ void CurlDownload::curlDidReceiveBuffer(CurlRequest& request, Ref<SharedBuffer>& > m_listener->didReceiveDataOfLength(buffer->size()); > } > >-void CurlDownload::curlDidComplete(CurlRequest& request) >+void CurlDownload::curlDidComplete(CurlRequest& request, NetworkLoadMetrics&&) > { > ASSERT(isMainThread()); > >@@ -128,7 +128,7 @@ void CurlDownload::curlDidComplete(CurlRequest& request) > m_listener->didFinish(); > } > >-void CurlDownload::curlDidFailWithError(CurlRequest& request, const ResourceError& resourceError) >+void CurlDownload::curlDidFailWithError(CurlRequest& request, const ResourceError& resourceError, CertificateInfo&&) > { > ASSERT(isMainThread()); > >diff --git a/Source/WebCore/platform/network/curl/CurlDownload.h b/Source/WebCore/platform/network/curl/CurlDownload.h >index a739dfac95eb304f35d046835c6d47ac1f1f06cd..4b565a5dac3547b8b3c76ff2e8990867452f1f55 100644 >--- a/Source/WebCore/platform/network/curl/CurlDownload.h >+++ b/Source/WebCore/platform/network/curl/CurlDownload.h >@@ -73,8 +73,8 @@ private: > void curlDidSendData(CurlRequest&, unsigned long long, unsigned long long) override { } > void curlDidReceiveResponse(CurlRequest&, const CurlResponse&) override; > void curlDidReceiveBuffer(CurlRequest&, Ref<SharedBuffer>&&) override; >- void curlDidComplete(CurlRequest&) override; >- void curlDidFailWithError(CurlRequest&, const ResourceError&) override; >+ void curlDidComplete(CurlRequest&, NetworkLoadMetrics&&) override; >+ void curlDidFailWithError(CurlRequest&, const ResourceError&, CertificateInfo&&) override; > > bool shouldRedirectAsGET(const ResourceRequest&, bool crossOrigin); > void willSendRequest(); >diff --git a/Source/WebCore/platform/network/curl/CurlRequest.cpp b/Source/WebCore/platform/network/curl/CurlRequest.cpp >index 7da599506f384cdc48d376d2d801997add47024a..ed0496c80bdcf0a835602efaff22a976a1662652 100644 >--- a/Source/WebCore/platform/network/curl/CurlRequest.cpp >+++ b/Source/WebCore/platform/network/curl/CurlRequest.cpp >@@ -28,9 +28,11 @@ > > #if USE(CURL) > >+#include "CertificateInfo.h" > #include "CurlRequestClient.h" > #include "CurlRequestScheduler.h" > #include "MIMETypeRegistry.h" >+#include "NetworkLoadMetrics.h" > #include "ResourceError.h" > #include "SharedBuffer.h" > #include <wtf/Language.h> >@@ -107,7 +109,7 @@ void CurlRequest::start() > auto url = m_request.url().isolatedCopy(); > > if (std::isnan(m_requestStartTime)) >- m_requestStartTime = MonotonicTime::now(); >+ m_requestStartTime = MonotonicTime::now().isolatedCopy(); > > if (url.isLocalFile()) > invokeDidReceiveResponseForFile(url); >@@ -350,13 +352,13 @@ size_t CurlRequest::didReceiveHeader(String&& header) > if (auto version = m_curlHandle->getHttpVersion()) > m_response.httpVersion = *version; > >- updateNetworkLoadMetrics(); >- > if (m_response.availableProxyAuth) > CurlContext::singleton().setProxyAuthMethod(m_response.availableProxyAuth); > > if (auto info = m_curlHandle->certificateInfo()) >- m_certificateInfo = *info; >+ m_response.certificateInfo = WTFMove(*info); >+ >+ m_response.networkLoadMetrics = networkLoadMetrics(); > > if (m_enableMultipart) > m_multipartHandle = CurlMultipartHandle::createIfNeeded(*this, m_response); >@@ -451,26 +453,28 @@ void CurlRequest::didCompleteTransfer(CURLcode result) > if (m_multipartHandle) > m_multipartHandle->didComplete(); > >- updateNetworkLoadMetrics(); >+ auto metrics = networkLoadMetrics(); > > finalizeTransfer(); >- callClient([this, protectedThis = makeRef(*this)](CurlRequest& request, CurlRequestClient& client) { >- m_networkLoadMetrics.responseEnd = MonotonicTime::now() - m_requestStartTime; >- m_networkLoadMetrics.markComplete(); >+ callClient([requestStartTime = m_requestStartTime.isolatedCopy(), networkLoadMetrics = WTFMove(metrics)](CurlRequest& request, CurlRequestClient& client) mutable { >+ networkLoadMetrics.responseEnd = MonotonicTime::now() - requestStartTime; >+ networkLoadMetrics.markComplete(); > >- client.curlDidComplete(request); >+ client.curlDidComplete(request, WTFMove(networkLoadMetrics)); > }); > } else { > auto type = (result == CURLE_OPERATION_TIMEDOUT && timeoutInterval()) ? ResourceError::Type::Timeout : ResourceError::Type::General; > auto resourceError = ResourceError::httpError(result, m_request.url(), type); > if (auto sslErrors = m_curlHandle->sslErrors()) > resourceError.setSslErrors(sslErrors); >+ >+ CertificateInfo certificateInfo; > if (auto info = m_curlHandle->certificateInfo()) >- m_certificateInfo = *info; >+ certificateInfo = WTFMove(*info); > > finalizeTransfer(); >- callClient([error = resourceError.isolatedCopy()](CurlRequest& request, CurlRequestClient& client) { >- client.curlDidFailWithError(request, error); >+ callClient([error = WTFMove(resourceError), certificateInfo = WTFMove(certificateInfo)](CurlRequest& request, CurlRequestClient& client) mutable { >+ client.curlDidFailWithError(request, error, WTFMove(certificateInfo)); > }); > } > >@@ -715,19 +719,22 @@ bool CurlRequest::isHandlePaused() const > return m_isHandlePaused; > } > >-void CurlRequest::updateNetworkLoadMetrics() >+NetworkLoadMetrics CurlRequest::networkLoadMetrics() > { >- auto domainLookupStart = m_performStartTime - m_requestStartTime; >+ ASSERT(m_curlHandle); > >- if (auto metrics = m_curlHandle->getNetworkLoadMetrics(domainLookupStart)) { >- m_networkLoadMetrics = *metrics; >- >- if (m_captureExtraMetrics) { >- m_curlHandle->addExtraNetworkLoadMetrics(m_networkLoadMetrics); >- m_networkLoadMetrics.requestHeaders = m_requestHeaders; >- m_networkLoadMetrics.responseBodyDecodedSize = m_totalReceivedSize; >- } >+ auto domainLookupStart = m_performStartTime - m_requestStartTime; >+ auto networkLoadMetrics = m_curlHandle->getNetworkLoadMetrics(domainLookupStart); >+ if (!networkLoadMetrics) >+ return NetworkLoadMetrics(); >+ >+ if (m_captureExtraMetrics) { >+ m_curlHandle->addExtraNetworkLoadMetrics(*networkLoadMetrics); >+ networkLoadMetrics->requestHeaders = m_requestHeaders; >+ networkLoadMetrics->responseBodyDecodedSize = m_totalReceivedSize; > } >+ >+ return WTFMove(*networkLoadMetrics); > } > > void CurlRequest::enableDownloadToFile() >diff --git a/Source/WebCore/platform/network/curl/CurlRequest.h b/Source/WebCore/platform/network/curl/CurlRequest.h >index 9d0e2ded4ff8dd6a66077a875c6a618e5810ea1f..0785cb52189fd5cb990a700df89cf020f4260fe9 100644 >--- a/Source/WebCore/platform/network/curl/CurlRequest.h >+++ b/Source/WebCore/platform/network/curl/CurlRequest.h >@@ -25,13 +25,11 @@ > > #pragma once > >-#include "CertificateInfo.h" > #include "CurlFormDataStream.h" > #include "CurlMultipartHandle.h" > #include "CurlMultipartHandleClient.h" > #include "CurlRequestSchedulerClient.h" > #include "CurlResponse.h" >-#include "NetworkLoadMetrics.h" > #include "ProtectionSpace.h" > #include "ResourceRequest.h" > #include <wtf/FileSystem.h> >@@ -42,6 +40,7 @@ > namespace WebCore { > > class CurlRequestClient; >+class NetworkLoadMetrics; > class ResourceError; > class SharedBuffer; > >@@ -76,7 +75,7 @@ public: > WEBCORE_EXPORT void setUserPass(const String&, const String&); > bool isServerTrustEvaluationDisabled() { return m_shouldDisableServerTrustEvaluation; } > void disableServerTrustEvaluation() { m_shouldDisableServerTrustEvaluation = true; } >- void setStartTime(const MonotonicTime& startTime) { m_requestStartTime = startTime; } >+ void setStartTime(const MonotonicTime& startTime) { m_requestStartTime = startTime.isolatedCopy(); } > > void start(); > void cancel(); >@@ -98,9 +97,6 @@ public: > void enableDownloadToFile(); > const String& getDownloadedFilePath(); > >- const CertificateInfo& certificateInfo() const { return m_certificateInfo; } >- const NetworkLoadMetrics& networkLoadMetrics() const { return m_networkLoadMetrics; } >- > private: > enum class Action { > None, >@@ -154,7 +150,7 @@ private: > void updateHandlePauseState(bool); > bool isHandlePaused() const; > >- void updateNetworkLoadMetrics(); >+ NetworkLoadMetrics networkLoadMetrics(); > > // Download > void writeDataToDownloadFileIfEnabled(const SharedBuffer&); >@@ -211,9 +207,7 @@ private: > String m_downloadFilePath; > FileSystem::PlatformFileHandle m_downloadFileHandle { FileSystem::invalidPlatformFileHandle }; > >- CertificateInfo m_certificateInfo; > bool m_captureExtraMetrics; >- NetworkLoadMetrics m_networkLoadMetrics; > HTTPHeaderMap m_requestHeaders; > MonotonicTime m_requestStartTime { MonotonicTime::nan() }; > MonotonicTime m_performStartTime; >diff --git a/Source/WebCore/platform/network/curl/CurlRequestClient.h b/Source/WebCore/platform/network/curl/CurlRequestClient.h >index 033b8e93a3287bc49ad55b253ca8a0be2dfea5f3..158aa0bbf508e247bad50abdbba3ad4a325c46d2 100644 >--- a/Source/WebCore/platform/network/curl/CurlRequestClient.h >+++ b/Source/WebCore/platform/network/curl/CurlRequestClient.h >@@ -29,8 +29,10 @@ > > namespace WebCore { > >+class CertificateInfo; > class CurlRequest; > class CurlResponse; >+class NetworkLoadMetrics; > class ResourceError; > class SharedBuffer; > >@@ -42,8 +44,8 @@ public: > virtual void curlDidSendData(CurlRequest&, unsigned long long bytesSent, unsigned long long totalBytesToBeSent) = 0; > virtual void curlDidReceiveResponse(CurlRequest&, const CurlResponse&) = 0; > virtual void curlDidReceiveBuffer(CurlRequest&, Ref<SharedBuffer>&&) = 0; >- virtual void curlDidComplete(CurlRequest&) = 0; >- virtual void curlDidFailWithError(CurlRequest&, const ResourceError&) = 0; >+ virtual void curlDidComplete(CurlRequest&, NetworkLoadMetrics&&) = 0; >+ virtual void curlDidFailWithError(CurlRequest&, const ResourceError&, CertificateInfo&&) = 0; > }; > > } // namespace WebCore >diff --git a/Source/WebCore/platform/network/curl/CurlResourceHandleDelegate.cpp b/Source/WebCore/platform/network/curl/CurlResourceHandleDelegate.cpp >index e675f02665249da68e7a3e49ea2082140dfd6090..f1529094275e710dc213c44d4d3f4637b8a11e13 100644 >--- a/Source/WebCore/platform/network/curl/CurlResourceHandleDelegate.cpp >+++ b/Source/WebCore/platform/network/curl/CurlResourceHandleDelegate.cpp >@@ -109,9 +109,6 @@ void CurlResourceHandleDelegate::curlDidReceiveResponse(CurlRequest& request, co > > m_response = ResourceResponse(receivedResponse); > >- m_response.setCertificateInfo(request.certificateInfo().isolatedCopy()); >- m_response.setDeprecatedNetworkLoadMetrics(request.networkLoadMetrics().isolatedCopy()); >- > handleCookieHeaders(d(), request.resourceRequest(), receivedResponse); > > if (m_response.shouldRedirect()) { >@@ -157,20 +154,19 @@ void CurlResourceHandleDelegate::curlDidReceiveBuffer(CurlRequest& request, Ref< > client()->didReceiveBuffer(&m_handle, WTFMove(buffer), buffer->size()); > } > >-void CurlResourceHandleDelegate::curlDidComplete(CurlRequest& request) >+void CurlResourceHandleDelegate::curlDidComplete(CurlRequest& request, NetworkLoadMetrics&&) > { >+ UNUSED_PARAM(request); > ASSERT(isMainThread()); > > if (cancelledOrClientless()) > return; > >- m_response.setDeprecatedNetworkLoadMetrics(request.networkLoadMetrics().isolatedCopy()); >- > CurlCacheManager::singleton().didFinishLoading(m_handle); > client()->didFinishLoading(&m_handle); > } > >-void CurlResourceHandleDelegate::curlDidFailWithError(CurlRequest& request, const ResourceError& resourceError) >+void CurlResourceHandleDelegate::curlDidFailWithError(CurlRequest& request, const ResourceError& resourceError, CertificateInfo&&) > { > UNUSED_PARAM(request); > ASSERT(isMainThread()); >diff --git a/Source/WebCore/platform/network/curl/CurlResourceHandleDelegate.h b/Source/WebCore/platform/network/curl/CurlResourceHandleDelegate.h >index 39b6be9320f123564ca53da369d6a17e5ba03190..9eb271ca4a274dc83d0bb5967b73f479381a501c 100644 >--- a/Source/WebCore/platform/network/curl/CurlResourceHandleDelegate.h >+++ b/Source/WebCore/platform/network/curl/CurlResourceHandleDelegate.h >@@ -54,8 +54,8 @@ public: > void curlDidSendData(CurlRequest&, unsigned long long bytesSent, unsigned long long totalBytesToBeSent) final; > void curlDidReceiveResponse(CurlRequest&, const CurlResponse&) final; > void curlDidReceiveBuffer(CurlRequest&, Ref<SharedBuffer>&&) final; >- void curlDidComplete(CurlRequest&) final; >- void curlDidFailWithError(CurlRequest&, const ResourceError&) final; >+ void curlDidComplete(CurlRequest&, NetworkLoadMetrics&&) final; >+ void curlDidFailWithError(CurlRequest&, const ResourceError&, CertificateInfo&&) final; > > private: > ResourceHandle& m_handle; >diff --git a/Source/WebCore/platform/network/curl/CurlResponse.h b/Source/WebCore/platform/network/curl/CurlResponse.h >index e611ffc4fb1541f4cfd132872cbc1d5dc3d93fa7..0b3c6dc95533467d41d4314ef777c4cc7ea8608f 100644 >--- a/Source/WebCore/platform/network/curl/CurlResponse.h >+++ b/Source/WebCore/platform/network/curl/CurlResponse.h >@@ -25,6 +25,8 @@ > > #pragma once > >+#include "CertificateInfo.h" >+#include "NetworkLoadMetrics.h" > #include <wtf/URL.h> > > namespace WebCore { >@@ -50,6 +52,9 @@ public: > copy.availableProxyAuth = availableProxyAuth; > copy.httpVersion = httpVersion; > >+ copy.certificateInfo = certificateInfo.isolatedCopy(); >+ copy.networkLoadMetrics = networkLoadMetrics.isolatedCopy(); >+ > return copy; > } > >@@ -63,6 +68,9 @@ public: > long availableHttpAuth { 0 }; > long availableProxyAuth { 0 }; > long httpVersion { 0 }; >+ >+ CertificateInfo certificateInfo; >+ NetworkLoadMetrics networkLoadMetrics; > }; > > } // namespace WebCore >diff --git a/Source/WebCore/platform/network/curl/ResourceResponse.h b/Source/WebCore/platform/network/curl/ResourceResponse.h >index 7f5788f4b2260cd43b2f12ab1f9863ac163b4b3a..d0e42c72acbcc41ee9276c1a802f286667c259b2 100644 >--- a/Source/WebCore/platform/network/curl/ResourceResponse.h >+++ b/Source/WebCore/platform/network/curl/ResourceResponse.h >@@ -50,9 +50,6 @@ public: > > void appendHTTPHeaderField(const String&); > >- void setCertificateInfo(CertificateInfo&&); >- void setDeprecatedNetworkLoadMetrics(NetworkLoadMetrics&&); >- > bool shouldRedirect(); > bool isMovedPermanently() const; > bool isFound() const; >diff --git a/Source/WebCore/platform/network/curl/ResourceResponseCurl.cpp b/Source/WebCore/platform/network/curl/ResourceResponseCurl.cpp >index f35705c53e7763687d3502ec73a84007077212b6..f7a172172039b0ed1375ae0c61dc547ce9ed6954 100644 >--- a/Source/WebCore/platform/network/curl/ResourceResponseCurl.cpp >+++ b/Source/WebCore/platform/network/curl/ResourceResponseCurl.cpp >@@ -78,8 +78,10 @@ bool ResourceResponse::isAppendableHeader(const String &key) > } > > ResourceResponse::ResourceResponse(const CurlResponse& response) >- : ResourceResponseBase(response.url, "", response.expectedContentLength, "") >+ : ResourceResponseBase() > { >+ setURL(response.url); >+ setExpectedContentLength(response.expectedContentLength); > setHTTPStatusCode(response.statusCode ? response.statusCode : response.httpConnectCode); > > for (const auto& header : response.headers) >@@ -101,9 +103,13 @@ ResourceResponse::ResourceResponse(const CurlResponse& response) > default: > break; > } >+ > setMimeType(extractMIMETypeFromMediaType(httpHeaderField(HTTPHeaderName::ContentType)).convertToASCIILowercase()); > setTextEncodingName(extractCharsetFromMediaType(httpHeaderField(HTTPHeaderName::ContentType))); > setSource(ResourceResponse::Source::Network); >+ >+ m_certificateInfo = response.certificateInfo; >+ m_networkLoadMetrics = response.networkLoadMetrics; > } > > void ResourceResponse::appendHTTPHeaderField(const String& header) >@@ -143,16 +149,6 @@ void ResourceResponse::setStatusLine(const String& header) > } > } > >-void ResourceResponse::setCertificateInfo(CertificateInfo&& certificateInfo) >-{ >- m_certificateInfo = WTFMove(certificateInfo); >-} >- >-void ResourceResponse::setDeprecatedNetworkLoadMetrics(NetworkLoadMetrics&& networkLoadMetrics) >-{ >- m_networkLoadMetrics = WTFMove(networkLoadMetrics); >-} >- > String ResourceResponse::platformSuggestedFilename() const > { > return filenameFromHTTPContentDisposition(httpHeaderField(HTTPHeaderName::ContentDisposition)); >diff --git a/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp b/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp >index 77633ba44822e4bbc82ce3cb27f724af9679d350..f07f7e39f6ec482ebe911a7cae86a047d74183ee 100644 >--- a/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp >+++ b/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp >@@ -32,6 +32,7 @@ > #include <WebCore/AuthenticationChallenge.h> > #include <WebCore/CookieJar.h> > #include <WebCore/CurlRequest.h> >+#include <WebCore/NetworkLoadMetrics.h> > #include <WebCore/NetworkStorageSession.h> > #include <WebCore/NotImplemented.h> > #include <WebCore/ResourceError.h> >@@ -147,7 +148,6 @@ void NetworkDataTaskCurl::curlDidReceiveResponse(CurlRequest& request, const Cur > return; > > m_response = ResourceResponse(receivedResponse); >- m_response.setDeprecatedNetworkLoadMetrics(request.networkLoadMetrics().isolatedCopy()); > > handleCookieHeaders(request.resourceRequest(), receivedResponse); > >@@ -179,23 +179,23 @@ void NetworkDataTaskCurl::curlDidReceiveBuffer(CurlRequest&, Ref<SharedBuffer>&& > m_client->didReceiveData(WTFMove(buffer)); > } > >-void NetworkDataTaskCurl::curlDidComplete(CurlRequest& request) >+void NetworkDataTaskCurl::curlDidComplete(CurlRequest& request, NetworkLoadMetrics&& networkLoadMetrics) > { >+ UNUSED_PARAM(request); >+ > if (state() == State::Canceling || state() == State::Completed || (!m_client && !isDownload())) > return; > >- m_response.setDeprecatedNetworkLoadMetrics(request.networkLoadMetrics().isolatedCopy()); >- >- m_client->didCompleteWithError({ }, m_response.deprecatedNetworkLoadMetrics()); >+ m_client->didCompleteWithError({ }, WTFMove(networkLoadMetrics)); > } > >-void NetworkDataTaskCurl::curlDidFailWithError(CurlRequest& request, const ResourceError& resourceError) >+void NetworkDataTaskCurl::curlDidFailWithError(CurlRequest& request, const ResourceError& resourceError, CertificateInfo&& certificateInfo) > { > if (state() == State::Canceling || state() == State::Completed || (!m_client && !isDownload())) > return; > > if (resourceError.isSSLCertVerificationError()) { >- tryServerTrustEvaluation(AuthenticationChallenge(request.resourceRequest().url(), request.certificateInfo(), resourceError)); >+ tryServerTrustEvaluation(AuthenticationChallenge(request.resourceRequest().url(), WTFMove(certificateInfo), resourceError)); > return; > } > >diff --git a/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.h b/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.h >index 1b9c0070c20fec3655bda4384b8da515b7bf2b32..fe92096e83814d900a8152f48458fd616e3da97d 100644 >--- a/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.h >+++ b/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.h >@@ -27,7 +27,6 @@ > > #include "NetworkDataTask.h" > #include <WebCore/CurlRequestClient.h> >-#include <WebCore/NetworkLoadMetrics.h> > #include <WebCore/ProtectionSpace.h> > #include <WebCore/ResourceResponse.h> > >@@ -66,8 +65,8 @@ private: > void curlDidSendData(WebCore::CurlRequest&, unsigned long long, unsigned long long) override; > void curlDidReceiveResponse(WebCore::CurlRequest&, const WebCore::CurlResponse&) override; > void curlDidReceiveBuffer(WebCore::CurlRequest&, Ref<WebCore::SharedBuffer>&&) override; >- void curlDidComplete(WebCore::CurlRequest&) override; >- void curlDidFailWithError(WebCore::CurlRequest&, const WebCore::ResourceError&) override; >+ void curlDidComplete(WebCore::CurlRequest&, WebCore::NetworkLoadMetrics&&) override; >+ void curlDidFailWithError(WebCore::CurlRequest&, const WebCore::ResourceError&, WebCore::CertificateInfo&&) override; > > void invokeDidReceiveResponse(); >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 198747
:
371830
|
371842
|
371898
|
371902
|
371936
|
372016
|
372019