WebKit Bugzilla
Attachment 347369 Details for
Bug 188701
: NetworkLoad::didReceiveResponse should pass its completion handler to its client
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-188701-20180817110029.patch (text/plain), 26.77 KB, created by
Alex Christensen
on 2018-08-17 11:00:29 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Alex Christensen
Created:
2018-08-17 11:00:29 PDT
Size:
26.77 KB
patch
obsolete
>Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 234987) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,52 @@ >+2018-08-17 Alex Christensen <achristensen@webkit.org> >+ >+ NetworkLoad::didReceiveResponse should pass its completion handler to its client >+ https://bugs.webkit.org/show_bug.cgi?id=188701 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Right now we have a confusing enum ShouldContinueDidReceiveResponse and a complicated flow >+ that involves many objects and implicitly using NetworkLoad's destructor as part of the >+ loading flow. This makes the responsibilities of the objects clear. >+ >+ * NetworkProcess/Downloads/PendingDownload.cpp: >+ (WebKit::PendingDownload::didReceiveResponse): >+ * NetworkProcess/Downloads/PendingDownload.h: >+ * NetworkProcess/NetworkCORSPreflightChecker.cpp: >+ (WebKit::NetworkCORSPreflightChecker::didReceiveResponse): >+ (WebKit::NetworkCORSPreflightChecker::didReceiveResponseNetworkSession): Deleted. >+ * NetworkProcess/NetworkCORSPreflightChecker.h: >+ * NetworkProcess/NetworkDataTask.cpp: >+ (WebKit::NetworkDataTask::didReceiveResponse): >+ * NetworkProcess/NetworkDataTask.h: >+ * NetworkProcess/NetworkLoad.cpp: >+ (WebKit::NetworkLoad::~NetworkLoad): >+ (WebKit::NetworkLoad::convertTaskToDownload): >+ (WebKit::NetworkLoad::didReceiveResponse): >+ (WebKit::NetworkLoad::notifyDidReceiveResponse): >+ (WebKit::NetworkLoad::continueDidReceiveResponse): Deleted. >+ (WebKit::NetworkLoad::didReceiveResponseNetworkSession): Deleted. >+ * NetworkProcess/NetworkLoad.h: >+ * NetworkProcess/NetworkLoadClient.h: >+ * NetworkProcess/NetworkResourceLoader.cpp: >+ (WebKit::NetworkResourceLoader::~NetworkResourceLoader): >+ (WebKit::NetworkResourceLoader::didReceiveResponse): >+ (WebKit::NetworkResourceLoader::didFinishWithRedirectResponse): >+ (WebKit::NetworkResourceLoader::continueDidReceiveResponse): >+ * NetworkProcess/NetworkResourceLoader.h: >+ * NetworkProcess/PingLoad.cpp: >+ (WebKit::PingLoad::didReceiveResponse): >+ (WebKit::PingLoad::didReceiveResponseNetworkSession): Deleted. >+ * NetworkProcess/PingLoad.h: >+ * NetworkProcess/PreconnectTask.cpp: >+ (WebKit::PreconnectTask::didReceiveResponse): >+ * NetworkProcess/PreconnectTask.h: >+ * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: >+ (WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse): >+ * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h: >+ * NetworkProcess/capture/NetworkDataTaskReplay.cpp: >+ (WebKit::NetworkCapture::NetworkDataTaskReplay::didReceiveResponse): >+ > 2018-08-17 Alex Christensen <achristensen@webkit.org> > > Replace WebPageProxy::loadAlternateHTMLString with loadAlternateHTML >Index: Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp (revision 234941) >+++ Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp (working copy) >@@ -105,9 +105,9 @@ void NetworkCORSPreflightChecker::didRec > NetworkProcess::singleton().authenticationManager().didReceiveAuthenticationChallenge(m_parameters.pageID, m_parameters.frameID, challenge, WTFMove(completionHandler)); > } > >-void NetworkCORSPreflightChecker::didReceiveResponseNetworkSession(WebCore::ResourceResponse&& response, ResponseCompletionHandler&& completionHandler) >+void NetworkCORSPreflightChecker::didReceiveResponse(WebCore::ResourceResponse&& response, ResponseCompletionHandler&& completionHandler) > { >- RELEASE_LOG_IF_ALLOWED("didReceiveResponseNetworkSession"); >+ RELEASE_LOG_IF_ALLOWED("didReceiveResponse"); > > if (m_shouldCaptureExtraNetworkLoadMetrics) > m_loadInformation.response = response; >Index: Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h (revision 234941) >+++ Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h (working copy) >@@ -65,7 +65,7 @@ public: > private: > void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&&) final; > void didReceiveChallenge(WebCore::AuthenticationChallenge&&, ChallengeCompletionHandler&&) final; >- void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) final; >+ void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) final; > void didReceiveData(Ref<WebCore::SharedBuffer>&&) final; > void didCompleteWithError(const WebCore::ResourceError&, const WebCore::NetworkLoadMetrics&) final; > void didSendData(uint64_t totalBytesSent, uint64_t totalBytesExpectedToSend) final; >Index: Source/WebKit/NetworkProcess/NetworkDataTask.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkDataTask.cpp (revision 234932) >+++ Source/WebKit/NetworkProcess/NetworkDataTask.cpp (working copy) >@@ -114,7 +114,7 @@ void NetworkDataTask::didReceiveResponse > return; > } > } >- m_client->didReceiveResponseNetworkSession(WTFMove(response), WTFMove(completionHandler)); >+ m_client->didReceiveResponse(WTFMove(response), WTFMove(completionHandler)); > } > > bool NetworkDataTask::shouldCaptureExtraNetworkLoadMetrics() const >Index: Source/WebKit/NetworkProcess/NetworkDataTask.h >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkDataTask.h (revision 234932) >+++ Source/WebKit/NetworkProcess/NetworkDataTask.h (working copy) >@@ -60,7 +60,7 @@ class NetworkDataTaskClient { > public: > virtual void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&&) = 0; > virtual void didReceiveChallenge(WebCore::AuthenticationChallenge&&, ChallengeCompletionHandler&&) = 0; >- virtual void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) = 0; >+ virtual void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) = 0; > virtual void didReceiveData(Ref<WebCore::SharedBuffer>&&) = 0; > virtual void didCompleteWithError(const WebCore::ResourceError&, const WebCore::NetworkLoadMetrics&) = 0; > virtual void didSendData(uint64_t totalBytesSent, uint64_t totalBytesExpectedToSend) = 0; >Index: Source/WebKit/NetworkProcess/NetworkLoad.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkLoad.cpp (revision 234941) >+++ Source/WebKit/NetworkProcess/NetworkLoad.cpp (working copy) >@@ -120,8 +120,6 @@ NetworkLoad::~NetworkLoad() > ASSERT(RunLoop::isMain()); > if (m_redirectCompletionHandler) > m_redirectCompletionHandler({ }); >- if (m_responseCompletionHandler) >- m_responseCompletionHandler(PolicyAction::Ignore); > if (m_task) > m_task->clearClient(); > } >@@ -175,14 +173,6 @@ void NetworkLoad::continueWillSendReques > redirectCompletionHandler(ResourceRequest(m_currentRequest)); > } > >-void NetworkLoad::continueDidReceiveResponse() >-{ >- if (m_responseCompletionHandler) { >- auto responseCompletionHandler = std::exchange(m_responseCompletionHandler, nullptr); >- responseCompletionHandler(PolicyAction::Use); >- } >-} >- > bool NetworkLoad::shouldCaptureExtraNetworkLoadMetrics() const > { > return m_client.get().shouldCaptureExtraNetworkLoadMetrics(); >@@ -201,9 +191,6 @@ void NetworkLoad::convertTaskToDownload( > m_client = pendingDownload; > m_currentRequest = updatedRequest; > m_task->setPendingDownload(pendingDownload); >- >- if (m_responseCompletionHandler) >- NetworkProcess::singleton().findPendingDownloadLocation(*m_task.get(), std::exchange(m_responseCompletionHandler, nullptr), response); > } > > void NetworkLoad::setPendingDownloadID(DownloadID downloadID) >@@ -274,7 +261,7 @@ void NetworkLoad::didReceiveChallenge(Au > NetworkProcess::singleton().authenticationManager().didReceiveAuthenticationChallenge(m_parameters.webPageID, m_parameters.webFrameID, challenge, WTFMove(completionHandler)); > } > >-void NetworkLoad::didReceiveResponseNetworkSession(ResourceResponse&& response, ResponseCompletionHandler&& completionHandler) >+void NetworkLoad::didReceiveResponse(ResourceResponse&& response, ResponseCompletionHandler&& completionHandler) > { > ASSERT(RunLoop::isMain()); > ASSERT(!m_throttle); >@@ -306,11 +293,7 @@ void NetworkLoad::notifyDidReceiveRespon > if (m_parameters.needsCertificateInfo) > response.includeCertificateInfo(); > >- if (m_client.get().didReceiveResponse(WTFMove(response)) == NetworkLoadClient::ShouldContinueDidReceiveResponse::No) { >- m_responseCompletionHandler = WTFMove(completionHandler); >- return; >- } >- completionHandler(PolicyAction::Use); >+ m_client.get().didReceiveResponse(WTFMove(response), WTFMove(completionHandler)); > } > > void NetworkLoad::didReceiveData(Ref<SharedBuffer>&& buffer) >Index: Source/WebKit/NetworkProcess/NetworkLoad.h >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkLoad.h (revision 234941) >+++ Source/WebKit/NetworkProcess/NetworkLoad.h (working copy) >@@ -59,7 +59,6 @@ public: > const NetworkLoadParameters& parameters() const { return m_parameters; } > > void continueWillSendRequest(WebCore::ResourceRequest&&); >- void continueDidReceiveResponse(); > > void convertTaskToDownload(PendingDownload&, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&); > void setPendingDownloadID(DownloadID); >@@ -81,7 +80,7 @@ private: > // NetworkDataTaskClient > void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&&) final; > void didReceiveChallenge(WebCore::AuthenticationChallenge&&, ChallengeCompletionHandler&&) final; >- void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) final; >+ void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) final; > void didReceiveData(Ref<WebCore::SharedBuffer>&&) final; > void didCompleteWithError(const WebCore::ResourceError&, const WebCore::NetworkLoadMetrics&) final; > void didSendData(uint64_t totalBytesSent, uint64_t totalBytesExpectedToSend) final; >@@ -95,7 +94,6 @@ private: > const NetworkLoadParameters m_parameters; > CompletionHandler<void(WebCore::ResourceRequest&&)> m_redirectCompletionHandler; > RefPtr<NetworkDataTask> m_task; >- ResponseCompletionHandler m_responseCompletionHandler; > > struct Throttle; > std::unique_ptr<Throttle> m_throttle; >Index: Source/WebKit/NetworkProcess/NetworkLoadClient.h >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkLoadClient.h (revision 234941) >+++ Source/WebKit/NetworkProcess/NetworkLoadClient.h (working copy) >@@ -34,10 +34,13 @@ namespace WebCore { > class NetworkLoadMetrics; > class ProtectionSpace; > class SharedBuffer; >+enum class PolicyAction; > } > > namespace WebKit { > >+using ResponseCompletionHandler = CompletionHandler<void(WebCore::PolicyAction)>; >+ > class NetworkLoadClient { > public: > virtual ~NetworkLoadClient() { } >@@ -48,8 +51,7 @@ public: > > virtual void didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent) = 0; > virtual void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&& redirectResponse) = 0; >- enum class ShouldContinueDidReceiveResponse { No, Yes }; >- virtual ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) = 0; >+ virtual void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) = 0; > virtual void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) = 0; > virtual void didFinishLoading(const WebCore::NetworkLoadMetrics&) = 0; > virtual void didFailLoading(const WebCore::ResourceError&) = 0; >Index: Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (revision 234941) >+++ Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (working copy) >@@ -134,6 +134,8 @@ NetworkResourceLoader::~NetworkResourceL > ASSERT(RunLoop::isMain()); > ASSERT(!m_networkLoad); > ASSERT(!isSynchronous() || !m_synchronousLoadData->delayedReply); >+ if (m_responseCompletionHandler) >+ m_responseCompletionHandler(PolicyAction::Ignore); > } > > bool NetworkResourceLoader::canUseCache(const ResourceRequest& request) const >@@ -426,7 +428,7 @@ bool NetworkResourceLoader::shouldInterr > return false; > } > >-auto NetworkResourceLoader::didReceiveResponse(ResourceResponse&& receivedResponse) -> ShouldContinueDidReceiveResponse >+void NetworkResourceLoader::didReceiveResponse(ResourceResponse&& receivedResponse, ResponseCompletionHandler&& completionHandler) > { > RELEASE_LOG_IF_ALLOWED("didReceiveResponse: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", httpStatusCode = %d, length = %" PRId64 ")", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, receivedResponse.httpStatusCode(), receivedResponse.expectedContentLength()); > >@@ -456,11 +458,11 @@ auto NetworkResourceLoader::didReceiveRe > m_cacheEntryForValidation = nullptr; > } > if (m_cacheEntryForValidation) >- return ShouldContinueDidReceiveResponse::Yes; >+ return completionHandler(PolicyAction::Use); > > if (isMainResource() && shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptions(m_response)) { > send(Messages::WebResourceLoader::StopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied { }); >- return ShouldContinueDidReceiveResponse::No; >+ return completionHandler(PolicyAction::Ignore); > } > > if (m_networkLoadChecker) { >@@ -470,21 +472,24 @@ auto NetworkResourceLoader::didReceiveRe > if (protectedThis->m_networkLoad) > protectedThis->didFailLoading(error); > }); >- return ShouldContinueDidReceiveResponse::No; >+ return completionHandler(PolicyAction::Ignore); > } > } > > auto response = sanitizeResponseIfPossible(ResourceResponse { m_response }, ResourceResponse::SanitizationType::CrossOriginSafe); > if (isSynchronous()) { > m_synchronousLoadData->response = WTFMove(response); >- return ShouldContinueDidReceiveResponse::Yes; >+ return completionHandler(PolicyAction::Use); > } > > // We wait to receive message NetworkResourceLoader::ContinueDidReceiveResponse before continuing a load for > // a main resource because the embedding client must decide whether to allow the load. > bool willWaitForContinueDidReceiveResponse = isMainResource(); > send(Messages::WebResourceLoader::DidReceiveResponse { response, willWaitForContinueDidReceiveResponse }); >- return willWaitForContinueDidReceiveResponse ? ShouldContinueDidReceiveResponse::No : ShouldContinueDidReceiveResponse::Yes; >+ if (willWaitForContinueDidReceiveResponse) >+ m_responseCompletionHandler = WTFMove(completionHandler); >+ else >+ completionHandler(PolicyAction::Use); > } > > void NetworkResourceLoader::didReceiveBuffer(Ref<SharedBuffer>&& buffer, int reportedEncodedDataLength) >@@ -631,7 +636,9 @@ void NetworkResourceLoader::continueWill > void NetworkResourceLoader::didFinishWithRedirectResponse(ResourceResponse&& redirectResponse) > { > redirectResponse.setType(ResourceResponse::Type::Opaqueredirect); >- didReceiveResponse(WTFMove(redirectResponse)); >+ didReceiveResponse(WTFMove(redirectResponse), [](auto action) { >+ ASSERT_UNUSED(action, action == PolicyAction::Use); >+ }); > > WebCore::NetworkLoadMetrics networkLoadMetrics; > networkLoadMetrics.markComplete(); >@@ -706,15 +713,11 @@ void NetworkResourceLoader::continueWill > > void NetworkResourceLoader::continueDidReceiveResponse() > { >- if (m_cacheEntryWaitingForContinueDidReceiveResponse) { >- continueProcessingCachedEntryAfterDidReceiveResponse(WTFMove(m_cacheEntryWaitingForContinueDidReceiveResponse)); >- return; >- } >+ if (m_responseCompletionHandler) >+ m_responseCompletionHandler(PolicyAction::Use); > >- // FIXME: Remove this check once BlobResourceHandle implements didReceiveResponseAsync correctly. >- // Currently, it does not wait for response, so the load is likely to finish before continueDidReceiveResponse. >- if (m_networkLoad) >- m_networkLoad->continueDidReceiveResponse(); >+ if (m_cacheEntryWaitingForContinueDidReceiveResponse) >+ continueProcessingCachedEntryAfterDidReceiveResponse(WTFMove(m_cacheEntryWaitingForContinueDidReceiveResponse)); > } > > void NetworkResourceLoader::didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent) >Index: Source/WebKit/NetworkProcess/NetworkResourceLoader.h >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkResourceLoader.h (revision 234941) >+++ Source/WebKit/NetworkProcess/NetworkResourceLoader.h (working copy) >@@ -97,7 +97,7 @@ public: > bool isSynchronous() const override; > bool isAllowedToAskUserForCredentials() const override { return m_isAllowedToAskUserForCredentials; } > void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&&) override; >- ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) override; >+ void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) override; > void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) override; > void didFinishLoading(const WebCore::NetworkLoadMetrics&) override; > void didFailLoading(const WebCore::ResourceError&) override; >@@ -206,6 +206,7 @@ private: > std::unique_ptr<NetworkCache::Entry> m_cacheEntryWaitingForContinueDidReceiveResponse; > std::unique_ptr<NetworkLoadChecker> m_networkLoadChecker; > bool m_shouldRestartLoad { false }; >+ ResponseCompletionHandler m_responseCompletionHandler; > > std::optional<NetworkActivityTracker> m_networkActivityTracker; > }; >Index: Source/WebKit/NetworkProcess/PingLoad.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/PingLoad.cpp (revision 234932) >+++ Source/WebKit/NetworkProcess/PingLoad.cpp (working copy) >@@ -121,9 +121,9 @@ void PingLoad::didReceiveChallenge(Authe > didFinish(ResourceError { String(), 0, currentURL(), "Failed HTTP authentication"_s, ResourceError::Type::AccessControl }); > } > >-void PingLoad::didReceiveResponseNetworkSession(ResourceResponse&& response, ResponseCompletionHandler&& completionHandler) >+void PingLoad::didReceiveResponse(ResourceResponse&& response, ResponseCompletionHandler&& completionHandler) > { >- RELEASE_LOG_IF_ALLOWED("didReceiveResponseNetworkSession - httpStatusCode: %d", response.httpStatusCode()); >+ RELEASE_LOG_IF_ALLOWED("didReceiveResponse - httpStatusCode: %d", response.httpStatusCode()); > auto weakThis = makeWeakPtr(*this); > completionHandler(PolicyAction::Ignore); > if (!weakThis) >Index: Source/WebKit/NetworkProcess/PingLoad.h >=================================================================== >--- Source/WebKit/NetworkProcess/PingLoad.h (revision 234932) >+++ Source/WebKit/NetworkProcess/PingLoad.h (working copy) >@@ -56,7 +56,7 @@ private: > > void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&&) final; > void didReceiveChallenge(WebCore::AuthenticationChallenge&&, ChallengeCompletionHandler&&) final; >- void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) final; >+ void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) final; > void didReceiveData(Ref<WebCore::SharedBuffer>&&) final; > void didCompleteWithError(const WebCore::ResourceError&, const WebCore::NetworkLoadMetrics&) final; > void didSendData(uint64_t totalBytesSent, uint64_t totalBytesExpectedToSend) final; >Index: Source/WebKit/NetworkProcess/PreconnectTask.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/PreconnectTask.cpp (revision 234941) >+++ Source/WebKit/NetworkProcess/PreconnectTask.cpp (working copy) >@@ -68,10 +68,10 @@ void PreconnectTask::willSendRedirectedR > ASSERT_NOT_REACHED(); > } > >-auto PreconnectTask::didReceiveResponse(ResourceResponse&&) -> ShouldContinueDidReceiveResponse >+void PreconnectTask::didReceiveResponse(ResourceResponse&& response, ResponseCompletionHandler&& completionHandler) > { > ASSERT_NOT_REACHED(); >- return ShouldContinueDidReceiveResponse::No; >+ completionHandler(PolicyAction::Ignore); > } > > void PreconnectTask::didReceiveBuffer(Ref<SharedBuffer>&&, int reportedEncodedDataLength) >Index: Source/WebKit/NetworkProcess/PreconnectTask.h >=================================================================== >--- Source/WebKit/NetworkProcess/PreconnectTask.h (revision 234941) >+++ Source/WebKit/NetworkProcess/PreconnectTask.h (working copy) >@@ -51,7 +51,7 @@ private: > bool isAllowedToAskUserForCredentials() const final { return false; } > void didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent) final; > void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&& redirectResponse) final; >- ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) final; >+ void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) final; > void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) final; > void didFinishLoading(const WebCore::NetworkLoadMetrics&) final; > void didFailLoading(const WebCore::ResourceError&) final; >Index: Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp (revision 234941) >+++ Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp (working copy) >@@ -86,6 +86,11 @@ IPC::Connection* PendingDownload::messag > return NetworkProcess::singleton().parentProcessConnection(); > } > >+void PendingDownload::didReceiveResponse(WebCore::ResourceResponse&& response, ResponseCompletionHandler&& completionHandler) >+{ >+ completionHandler(WebCore::PolicyAction::Download); >+} >+ > uint64_t PendingDownload::messageSenderDestinationID() > { > return m_networkLoad->pendingDownloadID().downloadID(); >Index: Source/WebKit/NetworkProcess/Downloads/PendingDownload.h >=================================================================== >--- Source/WebKit/NetworkProcess/Downloads/PendingDownload.h (revision 234941) >+++ Source/WebKit/NetworkProcess/Downloads/PendingDownload.h (working copy) >@@ -54,7 +54,7 @@ private: > bool isSynchronous() const override { return false; } > bool isAllowedToAskUserForCredentials() const final { return m_isAllowedToAskUserForCredentials; } > void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&& redirectResponse) override; >- ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) override { return ShouldContinueDidReceiveResponse::No; }; >+ void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) override; > void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) override { }; > void didFinishLoading(const WebCore::NetworkLoadMetrics&) override { }; > void didFailLoading(const WebCore::ResourceError&) override; >Index: Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp (revision 234941) >+++ Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp (working copy) >@@ -78,7 +78,7 @@ void SpeculativeLoad::willSendRedirected > didComplete(); > } > >-auto SpeculativeLoad::didReceiveResponse(ResourceResponse&& receivedResponse) -> ShouldContinueDidReceiveResponse >+void SpeculativeLoad::didReceiveResponse(ResourceResponse&& receivedResponse, ResponseCompletionHandler&& completionHandler) > { > m_response = receivedResponse; > >@@ -91,7 +91,7 @@ auto SpeculativeLoad::didReceiveResponse > else > m_cacheEntry = nullptr; > >- return ShouldContinueDidReceiveResponse::Yes; >+ completionHandler(PolicyAction::Use); > } > > void SpeculativeLoad::didReceiveBuffer(Ref<SharedBuffer>&& buffer, int reportedEncodedDataLength) >Index: Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h >=================================================================== >--- Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h (revision 234941) >+++ Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h (working copy) >@@ -56,7 +56,7 @@ private: > bool isSynchronous() const override { return false; } > bool isAllowedToAskUserForCredentials() const final { return false; } > void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&& redirectResponse) override; >- ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) override; >+ void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) override; > void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) override; > void didFinishLoading(const WebCore::NetworkLoadMetrics&) override; > void didFailLoading(const WebCore::ResourceError&) override; >Index: Source/WebKit/NetworkProcess/capture/NetworkDataTaskReplay.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/capture/NetworkDataTaskReplay.cpp (revision 234932) >+++ Source/WebKit/NetworkProcess/capture/NetworkDataTaskReplay.cpp (working copy) >@@ -240,7 +240,7 @@ void NetworkDataTaskReplay::didReceiveRe > DEBUG_LOG("URL = " STRING_SPECIFIER, DEBUG_STR(m_firstRequest.url().string())); > > ASSERT(m_client); >- m_client->didReceiveResponseNetworkSession(WTFMove(response), [this, protectedThis = makeRef(*this)](WebCore::PolicyAction policyAction) { >+ m_client->didReceiveResponse(WTFMove(response), [this, protectedThis = makeRef(*this)](WebCore::PolicyAction policyAction) { > DEBUG_LOG("didReceiveResponse callback (%u)", static_cast<unsigned>(policyAction)); > > if (m_state == State::Canceling || m_state == State::Completed) {
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 188701
:
347369
|
347379
|
347385
|
347443
|
350701