⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 236463 in webkit


Ignore:
Timestamp:
Sep 25, 2018, 10:36:19 AM (8 years ago)
Author:
achristensen@apple.com
Message:

NetworkLoad::didReceiveResponse should pass its completion handler to its client
https://bugs.webkit.org/show_bug.cgi?id=188701

Reviewed by Michael Catanzaro.

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):

Location:
trunk/Source/WebKit
Files:
21 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r236441 r236463  
     12018-09-25  Alex Christensen  <achristensen@webkit.org>
     2
     3        NetworkLoad::didReceiveResponse should pass its completion handler to its client
     4        https://bugs.webkit.org/show_bug.cgi?id=188701
     5
     6        Reviewed by Michael Catanzaro.
     7
     8        Right now we have a confusing enum ShouldContinueDidReceiveResponse and a complicated flow
     9        that involves many objects and implicitly using NetworkLoad's destructor as part of the
     10        loading flow.  This makes the responsibilities of the objects clear.
     11
     12        * NetworkProcess/Downloads/PendingDownload.cpp:
     13        (WebKit::PendingDownload::didReceiveResponse):
     14        * NetworkProcess/Downloads/PendingDownload.h:
     15        * NetworkProcess/NetworkCORSPreflightChecker.cpp:
     16        (WebKit::NetworkCORSPreflightChecker::didReceiveResponse):
     17        (WebKit::NetworkCORSPreflightChecker::didReceiveResponseNetworkSession): Deleted.
     18        * NetworkProcess/NetworkCORSPreflightChecker.h:
     19        * NetworkProcess/NetworkDataTask.cpp:
     20        (WebKit::NetworkDataTask::didReceiveResponse):
     21        * NetworkProcess/NetworkDataTask.h:
     22        * NetworkProcess/NetworkLoad.cpp:
     23        (WebKit::NetworkLoad::~NetworkLoad):
     24        (WebKit::NetworkLoad::convertTaskToDownload):
     25        (WebKit::NetworkLoad::didReceiveResponse):
     26        (WebKit::NetworkLoad::notifyDidReceiveResponse):
     27        (WebKit::NetworkLoad::continueDidReceiveResponse): Deleted.
     28        (WebKit::NetworkLoad::didReceiveResponseNetworkSession): Deleted.
     29        * NetworkProcess/NetworkLoad.h:
     30        * NetworkProcess/NetworkLoadClient.h:
     31        * NetworkProcess/NetworkResourceLoader.cpp:
     32        (WebKit::NetworkResourceLoader::~NetworkResourceLoader):
     33        (WebKit::NetworkResourceLoader::didReceiveResponse):
     34        (WebKit::NetworkResourceLoader::didFinishWithRedirectResponse):
     35        (WebKit::NetworkResourceLoader::continueDidReceiveResponse):
     36        * NetworkProcess/NetworkResourceLoader.h:
     37        * NetworkProcess/PingLoad.cpp:
     38        (WebKit::PingLoad::didReceiveResponse):
     39        (WebKit::PingLoad::didReceiveResponseNetworkSession): Deleted.
     40        * NetworkProcess/PingLoad.h:
     41        * NetworkProcess/PreconnectTask.cpp:
     42        (WebKit::PreconnectTask::didReceiveResponse):
     43        * NetworkProcess/PreconnectTask.h:
     44        * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
     45        (WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse):
     46        * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
     47        * NetworkProcess/capture/NetworkDataTaskReplay.cpp:
     48        (WebKit::NetworkCapture::NetworkDataTaskReplay::didReceiveResponse):
     49
    1502018-09-24  Alex Christensen  <achristensen@webkit.org>
    251
  • trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.cpp

    r235511 r236463  
    8686}
    8787
    88 void DownloadManager::convertNetworkLoadToDownload(DownloadID downloadID, std::unique_ptr<NetworkLoad>&& networkLoad, Vector<RefPtr<WebCore::BlobDataFileReference>>&& blobFileReferences, const ResourceRequest& request, const ResourceResponse& response)
     88void DownloadManager::convertNetworkLoadToDownload(DownloadID downloadID, std::unique_ptr<NetworkLoad>&& networkLoad, ResponseCompletionHandler&& completionHandler, Vector<RefPtr<WebCore::BlobDataFileReference>>&& blobFileReferences, const ResourceRequest& request, const ResourceResponse& response)
    8989{
    9090    ASSERT(!m_pendingDownloads.contains(downloadID));
    91     m_pendingDownloads.add(downloadID, std::make_unique<PendingDownload>(WTFMove(networkLoad), downloadID, request, response));
     91    m_pendingDownloads.add(downloadID, std::make_unique<PendingDownload>(WTFMove(networkLoad), WTFMove(completionHandler), downloadID, request, response));
    9292}
    9393
  • trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.h

    r235511 r236463  
    8080    void continueWillSendRequest(DownloadID, WebCore::ResourceRequest&&);
    8181    void willDecidePendingDownloadDestination(NetworkDataTask&, ResponseCompletionHandler&&);
    82     void convertNetworkLoadToDownload(DownloadID, std::unique_ptr<NetworkLoad>&&, Vector<RefPtr<WebCore::BlobDataFileReference>>&&, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);
     82    void convertNetworkLoadToDownload(DownloadID, std::unique_ptr<NetworkLoad>&&, ResponseCompletionHandler&&,  Vector<RefPtr<WebCore::BlobDataFileReference>>&&, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);
    8383    void continueDecidePendingDownloadDestination(DownloadID, String destination, SandboxExtension::Handle&&, bool allowOverwrite);
    8484
  • trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp

    r235511 r236463  
    4848}
    4949
    50 PendingDownload::PendingDownload(std::unique_ptr<NetworkLoad>&& networkLoad, DownloadID downloadID, const ResourceRequest& request, const ResourceResponse& response)
     50PendingDownload::PendingDownload(std::unique_ptr<NetworkLoad>&& networkLoad, ResponseCompletionHandler&& completionHandler, DownloadID downloadID, const ResourceRequest& request, const ResourceResponse& response)
    5151    : m_networkLoad(WTFMove(networkLoad))
    5252{
     
    5656    send(Messages::DownloadProxy::DidStart(request, String()));
    5757
    58     m_networkLoad->convertTaskToDownload(*this, request, response);
     58    m_networkLoad->convertTaskToDownload(*this, request, response, WTFMove(completionHandler));
    5959}
    6060
     
    8686}
    8787
     88void PendingDownload::didReceiveResponse(WebCore::ResourceResponse&& response, ResponseCompletionHandler&& completionHandler)
     89{
     90    completionHandler(WebCore::PolicyAction::Download);
     91}
     92
    8893uint64_t PendingDownload::messageSenderDestinationID()
    8994{
  • trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.h

    r235511 r236463  
    4444public:
    4545    PendingDownload(NetworkLoadParameters&&, DownloadID, NetworkSession&, const String& suggestedName);
    46     PendingDownload(std::unique_ptr<NetworkLoad>&&, DownloadID, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);
     46    PendingDownload(std::unique_ptr<NetworkLoad>&&, ResponseCompletionHandler&&, DownloadID, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);
    4747
    4848    void continueWillSendRequest(WebCore::ResourceRequest&&);
     
    5555    bool isAllowedToAskUserForCredentials() const final { return m_isAllowedToAskUserForCredentials; }
    5656    void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&& redirectResponse) override;
    57     ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) override { return ShouldContinueDidReceiveResponse::No; };
     57    void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) override;
    5858    void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) override { };
    5959    void didFinishLoading(const WebCore::NetworkLoadMetrics&) override { };
  • trunk/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp

    r236344 r236463  
    107107}
    108108
    109 void NetworkCORSPreflightChecker::didReceiveResponseNetworkSession(WebCore::ResourceResponse&& response, ResponseCompletionHandler&& completionHandler)
     109void NetworkCORSPreflightChecker::didReceiveResponse(WebCore::ResourceResponse&& response, ResponseCompletionHandler&& completionHandler)
    110110{
    111     RELEASE_LOG_IF_ALLOWED("didReceiveResponseNetworkSession");
     111    RELEASE_LOG_IF_ALLOWED("didReceiveResponse");
    112112
    113113    if (m_shouldCaptureExtraNetworkLoadMetrics)
  • trunk/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h

    r235511 r236463  
    6666    void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&&) final;
    6767    void didReceiveChallenge(WebCore::AuthenticationChallenge&&, ChallengeCompletionHandler&&) final;
    68     void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) final;
     68    void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) final;
    6969    void didReceiveData(Ref<WebCore::SharedBuffer>&&) final;
    7070    void didCompleteWithError(const WebCore::ResourceError&, const WebCore::NetworkLoadMetrics&) final;
  • trunk/Source/WebKit/NetworkProcess/NetworkDataTask.cpp

    r235511 r236463  
    114114        }
    115115    }
    116     m_client->didReceiveResponseNetworkSession(WTFMove(response), WTFMove(completionHandler));
     116    m_client->didReceiveResponse(WTFMove(response), WTFMove(completionHandler));
    117117}
    118118
  • trunk/Source/WebKit/NetworkProcess/NetworkDataTask.h

    r235511 r236463  
    6161    virtual void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&&) = 0;
    6262    virtual void didReceiveChallenge(WebCore::AuthenticationChallenge&&, ChallengeCompletionHandler&&) = 0;
    63     virtual void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) = 0;
     63    virtual void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) = 0;
    6464    virtual void didReceiveData(Ref<WebCore::SharedBuffer>&&) = 0;
    6565    virtual void didCompleteWithError(const WebCore::ResourceError&, const WebCore::NetworkLoadMetrics&) = 0;
  • trunk/Source/WebKit/NetworkProcess/NetworkLoad.cpp

    r236344 r236463  
    122122    if (m_redirectCompletionHandler)
    123123        m_redirectCompletionHandler({ });
    124     if (m_responseCompletionHandler)
    125         m_responseCompletionHandler(PolicyAction::Ignore);
    126124    if (m_task)
    127125        m_task->clearClient();
     
    177175}
    178176
    179 void NetworkLoad::continueDidReceiveResponse()
    180 {
    181     if (m_responseCompletionHandler) {
    182         auto responseCompletionHandler = std::exchange(m_responseCompletionHandler, nullptr);
    183         responseCompletionHandler(PolicyAction::Use);
    184     }
    185 }
    186 
    187177bool NetworkLoad::shouldCaptureExtraNetworkLoadMetrics() const
    188178{
     
    195185}
    196186
    197 void NetworkLoad::convertTaskToDownload(PendingDownload& pendingDownload, const ResourceRequest& updatedRequest, const ResourceResponse& response)
     187void NetworkLoad::convertTaskToDownload(PendingDownload& pendingDownload, const ResourceRequest& updatedRequest, const ResourceResponse& response, ResponseCompletionHandler&& completionHandler)
    198188{
    199189    if (!m_task)
    200         return;
     190        return completionHandler(PolicyAction::Ignore);
    201191
    202192    m_client = pendingDownload;
    203193    m_currentRequest = updatedRequest;
    204194    m_task->setPendingDownload(pendingDownload);
    205 
    206     if (m_responseCompletionHandler)
    207         NetworkProcess::singleton().findPendingDownloadLocation(*m_task.get(), std::exchange(m_responseCompletionHandler, nullptr), response);
     195   
     196    NetworkProcess::singleton().findPendingDownloadLocation(*m_task.get(), WTFMove(completionHandler), response);
    208197}
    209198
     
    270259}
    271260
    272 void NetworkLoad::didReceiveResponseNetworkSession(ResourceResponse&& response, ResponseCompletionHandler&& completionHandler)
     261void NetworkLoad::didReceiveResponse(ResourceResponse&& response, ResponseCompletionHandler&& completionHandler)
    273262{
    274263    ASSERT(RunLoop::isMain());
     
    302291        response.includeCertificateInfo();
    303292
    304     if (m_client.get().didReceiveResponse(WTFMove(response)) == NetworkLoadClient::ShouldContinueDidReceiveResponse::No) {
    305         m_responseCompletionHandler = WTFMove(completionHandler);
    306         return;
    307     }
    308     completionHandler(PolicyAction::Use);
     293    m_client.get().didReceiveResponse(WTFMove(response), WTFMove(completionHandler));
    309294}
    310295
  • trunk/Source/WebKit/NetworkProcess/NetworkLoad.h

    r235511 r236463  
    6060
    6161    void continueWillSendRequest(WebCore::ResourceRequest&&);
    62     void continueDidReceiveResponse();
    6362
    64     void convertTaskToDownload(PendingDownload&, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);
     63    void convertTaskToDownload(PendingDownload&, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, ResponseCompletionHandler&&);
    6564    void setPendingDownloadID(DownloadID);
    6665    void setSuggestedFilename(const String&);
     
    8281    void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&&) final;
    8382    void didReceiveChallenge(WebCore::AuthenticationChallenge&&, ChallengeCompletionHandler&&) final;
    84     void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) final;
     83    void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) final;
    8584    void didReceiveData(Ref<WebCore::SharedBuffer>&&) final;
    8685    void didCompleteWithError(const WebCore::ResourceError&, const WebCore::NetworkLoadMetrics&) final;
     
    9695    CompletionHandler<void(WebCore::ResourceRequest&&)> m_redirectCompletionHandler;
    9796    RefPtr<NetworkDataTask> m_task;
    98     ResponseCompletionHandler m_responseCompletionHandler;
    9997   
    10098    struct Throttle;
  • trunk/Source/WebKit/NetworkProcess/NetworkLoadClient.h

    r235511 r236463  
    3535class ProtectionSpace;
    3636class SharedBuffer;
     37enum class PolicyAction;
    3738}
    3839
    3940namespace WebKit {
     41
     42using ResponseCompletionHandler = CompletionHandler<void(WebCore::PolicyAction)>;
    4043
    4144class NetworkLoadClient {
     
    4952    virtual void didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent) = 0;
    5053    virtual void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&& redirectResponse) = 0;
    51     enum class ShouldContinueDidReceiveResponse { No, Yes };
    52     virtual ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) = 0;
     54    virtual void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) = 0;
    5355    virtual void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) = 0;
    5456    virtual void didFinishLoading(const WebCore::NetworkLoadMetrics&) = 0;
  • trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp

    r236365 r236463  
    135135    ASSERT(!m_networkLoad);
    136136    ASSERT(!isSynchronous() || !m_synchronousLoadData->delayedReply);
     137    if (m_responseCompletionHandler)
     138        m_responseCompletionHandler(PolicyAction::Ignore);
    137139}
    138140
     
    345347    }
    346348
    347     NetworkProcess::singleton().downloadManager().convertNetworkLoadToDownload(downloadID, std::exchange(m_networkLoad, nullptr), WTFMove(m_fileReferences), request, response);
     349    ASSERT(m_responseCompletionHandler);
     350    NetworkProcess::singleton().downloadManager().convertNetworkLoadToDownload(downloadID, std::exchange(m_networkLoad, nullptr), WTFMove(m_responseCompletionHandler), WTFMove(m_fileReferences), request, response);
    348351}
    349352
     
    427430}
    428431
    429 auto NetworkResourceLoader::didReceiveResponse(ResourceResponse&& receivedResponse) -> ShouldContinueDidReceiveResponse
     432void NetworkResourceLoader::didReceiveResponse(ResourceResponse&& receivedResponse, ResponseCompletionHandler&& completionHandler)
    430433{
    431434    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());
     
    457460    }
    458461    if (m_cacheEntryForValidation)
    459         return ShouldContinueDidReceiveResponse::Yes;
     462        return completionHandler(PolicyAction::Use);
    460463
    461464    if (isMainResource() && shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptions(m_response)) {
    462465        send(Messages::WebResourceLoader::StopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied { });
    463         return ShouldContinueDidReceiveResponse::No;
     466        return completionHandler(PolicyAction::Ignore);
    464467    }
    465468
     
    471474                    protectedThis->didFailLoading(error);
    472475            });
    473             return ShouldContinueDidReceiveResponse::No;
     476            return completionHandler(PolicyAction::Ignore);
    474477        }
    475478    }
     
    478481    if (isSynchronous()) {
    479482        m_synchronousLoadData->response = WTFMove(response);
    480         return ShouldContinueDidReceiveResponse::Yes;
     483        return completionHandler(PolicyAction::Use);
    481484    }
    482485
     
    485488    bool willWaitForContinueDidReceiveResponse = isMainResource();
    486489    send(Messages::WebResourceLoader::DidReceiveResponse { response, willWaitForContinueDidReceiveResponse });
    487     return willWaitForContinueDidReceiveResponse ? ShouldContinueDidReceiveResponse::No : ShouldContinueDidReceiveResponse::Yes;
     490    if (willWaitForContinueDidReceiveResponse)
     491        m_responseCompletionHandler = WTFMove(completionHandler);
     492    else
     493        completionHandler(PolicyAction::Use);
    488494}
    489495
     
    632638{
    633639    redirectResponse.setType(ResourceResponse::Type::Opaqueredirect);
    634     didReceiveResponse(WTFMove(redirectResponse));
     640    didReceiveResponse(WTFMove(redirectResponse), [] (auto) { });
    635641
    636642    WebCore::NetworkLoadMetrics networkLoadMetrics;
     
    707713void NetworkResourceLoader::continueDidReceiveResponse()
    708714{
    709     if (m_cacheEntryWaitingForContinueDidReceiveResponse) {
     715    if (m_cacheEntryWaitingForContinueDidReceiveResponse)
    710716        continueProcessingCachedEntryAfterDidReceiveResponse(WTFMove(m_cacheEntryWaitingForContinueDidReceiveResponse));
    711         return;
    712     }
    713 
    714     // FIXME: Remove this check once BlobResourceHandle implements didReceiveResponseAsync correctly.
    715     // Currently, it does not wait for response, so the load is likely to finish before continueDidReceiveResponse.
    716     if (m_networkLoad)
    717         m_networkLoad->continueDidReceiveResponse();
     717
     718    if (m_responseCompletionHandler)
     719        m_responseCompletionHandler(PolicyAction::Use);
    718720}
    719721
  • trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.h

    r235511 r236463  
    9898    bool isAllowedToAskUserForCredentials() const override { return m_isAllowedToAskUserForCredentials; }
    9999    void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&&) override;
    100     ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) override;
     100    void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) override;
    101101    void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) override;
    102102    void didFinishLoading(const WebCore::NetworkLoadMetrics&) override;
     
    207207    std::unique_ptr<NetworkLoadChecker> m_networkLoadChecker;
    208208    bool m_shouldRestartLoad { false };
     209    ResponseCompletionHandler m_responseCompletionHandler;
    209210
    210211    std::optional<NetworkActivityTracker> m_networkActivityTracker;
  • trunk/Source/WebKit/NetworkProcess/PingLoad.cpp

    r236344 r236463  
    123123}
    124124
    125 void PingLoad::didReceiveResponseNetworkSession(ResourceResponse&& response, ResponseCompletionHandler&& completionHandler)
     125void PingLoad::didReceiveResponse(ResourceResponse&& response, ResponseCompletionHandler&& completionHandler)
    126126{
    127     RELEASE_LOG_IF_ALLOWED("didReceiveResponseNetworkSession - httpStatusCode: %d", response.httpStatusCode());
     127    RELEASE_LOG_IF_ALLOWED("didReceiveResponse - httpStatusCode: %d", response.httpStatusCode());
    128128    auto weakThis = makeWeakPtr(*this);
    129129    completionHandler(PolicyAction::Ignore);
  • trunk/Source/WebKit/NetworkProcess/PingLoad.h

    r235511 r236463  
    5757    void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&&) final;
    5858    void didReceiveChallenge(WebCore::AuthenticationChallenge&&, ChallengeCompletionHandler&&) final;
    59     void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) final;
     59    void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) final;
    6060    void didReceiveData(Ref<WebCore::SharedBuffer>&&) final;
    6161    void didCompleteWithError(const WebCore::ResourceError&, const WebCore::NetworkLoadMetrics&) final;
  • trunk/Source/WebKit/NetworkProcess/PreconnectTask.cpp

    r235511 r236463  
    6969}
    7070
    71 auto PreconnectTask::didReceiveResponse(ResourceResponse&&) -> ShouldContinueDidReceiveResponse
     71void PreconnectTask::didReceiveResponse(ResourceResponse&& response, ResponseCompletionHandler&& completionHandler)
    7272{
    7373    ASSERT_NOT_REACHED();
    74     return ShouldContinueDidReceiveResponse::No;
     74    completionHandler(PolicyAction::Ignore);
    7575}
    7676
  • trunk/Source/WebKit/NetworkProcess/PreconnectTask.h

    r235511 r236463  
    5252    void didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent) final;
    5353    void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&& redirectResponse) final;
    54     ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) final;
     54    void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) final;
    5555    void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) final;
    5656    void didFinishLoading(const WebCore::NetworkLoadMetrics&) final;
  • trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp

    r235511 r236463  
    8181}
    8282
    83 auto SpeculativeLoad::didReceiveResponse(ResourceResponse&& receivedResponse) -> ShouldContinueDidReceiveResponse
     83void SpeculativeLoad::didReceiveResponse(ResourceResponse&& receivedResponse, ResponseCompletionHandler&& completionHandler)
    8484{
    8585    m_response = receivedResponse;
     
    9494        m_cacheEntry = nullptr;
    9595
    96     return ShouldContinueDidReceiveResponse::Yes;
     96    completionHandler(PolicyAction::Use);
    9797}
    9898
  • trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h

    r235511 r236463  
    5757    bool isAllowedToAskUserForCredentials() const final { return false; }
    5858    void willSendRedirectedRequest(WebCore::ResourceRequest&&, WebCore::ResourceRequest&& redirectRequest, WebCore::ResourceResponse&& redirectResponse) override;
    59     ShouldContinueDidReceiveResponse didReceiveResponse(WebCore::ResourceResponse&&) override;
     59    void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) override;
    6060    void didReceiveBuffer(Ref<WebCore::SharedBuffer>&&, int reportedEncodedDataLength) override;
    6161    void didFinishLoading(const WebCore::NetworkLoadMetrics&) override;
  • trunk/Source/WebKit/NetworkProcess/capture/NetworkDataTaskReplay.cpp

    r235511 r236463  
    241241
    242242    ASSERT(m_client);
    243     m_client->didReceiveResponseNetworkSession(WTFMove(response), [this, protectedThis = makeRef(*this)](WebCore::PolicyAction policyAction) {
     243    m_client->didReceiveResponse(WTFMove(response), [this, protectedThis = makeRef(*this)](WebCore::PolicyAction policyAction) {
    244244        DEBUG_LOG("didReceiveResponse callback (%u)", static_cast<unsigned>(policyAction));
    245245
Note: See TracChangeset for help on using the changeset viewer.