Title: [233277] trunk/Source
Revision
233277
Author
[email protected]
Date
2018-06-27 14:15:23 -0700 (Wed, 27 Jun 2018)

Log Message

NetworkLoadChecker should not need to hard ref NetworkConnectionToWebProcess
https://bugs.webkit.org/show_bug.cgi?id=186551

Reviewed by Daniel Bates.

Source/WebCore:

No change of behavior.
Add a way to set the client receiving any CSP warning/error notification.

* page/csp/ContentSecurityPolicy.h:
(WebCore::ContentSecurityPolicy::setClient):

Source/WebKit:

Removed the need for NetworkLoadChecker to reference a NetworkConnectionToWebProcess.
Instead a CSP client is given to NetworkLoadChecker when needed.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::loadPing):
* NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::check):
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::checkRequest):
(WebKit::NetworkLoadChecker::contentSecurityPolicy):
(WebKit::NetworkLoadChecker::addConsoleMessage): Deleted.
(WebKit::NetworkLoadChecker::sendCSPViolationReport): Deleted.
(WebKit::NetworkLoadChecker::enqueueSecurityPolicyViolationEvent): Deleted.
* NetworkProcess/NetworkLoadChecker.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
* NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::PingLoad):
(WebKit::PingLoad::willPerformHTTPRedirection):
* NetworkProcess/PingLoad.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (233276 => 233277)


--- trunk/Source/WebCore/ChangeLog	2018-06-27 21:10:20 UTC (rev 233276)
+++ trunk/Source/WebCore/ChangeLog	2018-06-27 21:15:23 UTC (rev 233277)
@@ -1,3 +1,16 @@
+2018-06-27  Youenn Fablet  <[email protected]>
+
+        NetworkLoadChecker should not need to hard ref NetworkConnectionToWebProcess
+        https://bugs.webkit.org/show_bug.cgi?id=186551
+
+        Reviewed by Daniel Bates.
+
+        No change of behavior.
+        Add a way to set the client receiving any CSP warning/error notification.
+
+        * page/csp/ContentSecurityPolicy.h:
+        (WebCore::ContentSecurityPolicy::setClient):
+
 2018-06-27  Zalan Bujtas  <[email protected]>
 
         [LFC] Do not collapse margin with the parent when element has border/padding.

Modified: trunk/Source/WebCore/page/csp/ContentSecurityPolicy.h (233276 => 233277)


--- trunk/Source/WebCore/page/csp/ContentSecurityPolicy.h	2018-06-27 21:10:20 UTC (rev 233276)
+++ trunk/Source/WebCore/page/csp/ContentSecurityPolicy.h	2018-06-27 21:15:23 UTC (rev 233277)
@@ -169,6 +169,8 @@
     void inheritInsecureNavigationRequestsToUpgradeFromOpener(const ContentSecurityPolicy&);
     void setInsecureNavigationRequestsToUpgrade(HashSet<SecurityOriginData>&&);
 
+    void setClient(ContentSecurityPolicyClient* client) { m_client = client; }
+
 private:
     void logToConsole(const String& message, const String& contextURL = String(), const WTF::OrdinalNumber& contextLine = WTF::OrdinalNumber::beforeFirst(), JSC::ExecState* = nullptr) const;
     void updateSourceSelf(const SecurityOrigin&);

Modified: trunk/Source/WebKit/ChangeLog (233276 => 233277)


--- trunk/Source/WebKit/ChangeLog	2018-06-27 21:10:20 UTC (rev 233276)
+++ trunk/Source/WebKit/ChangeLog	2018-06-27 21:15:23 UTC (rev 233277)
@@ -1,3 +1,33 @@
+2018-06-27  Youenn Fablet  <[email protected]>
+
+        NetworkLoadChecker should not need to hard ref NetworkConnectionToWebProcess
+        https://bugs.webkit.org/show_bug.cgi?id=186551
+
+        Reviewed by Daniel Bates.
+
+        Removed the need for NetworkLoadChecker to reference a NetworkConnectionToWebProcess.
+        Instead a CSP client is given to NetworkLoadChecker when needed.
+
+        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+        (WebKit::NetworkConnectionToWebProcess::loadPing):
+        * NetworkProcess/NetworkLoadChecker.cpp:
+        (WebKit::NetworkLoadChecker::NetworkLoadChecker):
+        (WebKit::NetworkLoadChecker::check):
+        (WebKit::NetworkLoadChecker::checkRedirection):
+        (WebKit::NetworkLoadChecker::checkRequest):
+        (WebKit::NetworkLoadChecker::contentSecurityPolicy):
+        (WebKit::NetworkLoadChecker::addConsoleMessage): Deleted.
+        (WebKit::NetworkLoadChecker::sendCSPViolationReport): Deleted.
+        (WebKit::NetworkLoadChecker::enqueueSecurityPolicyViolationEvent): Deleted.
+        * NetworkProcess/NetworkLoadChecker.h:
+        * NetworkProcess/NetworkResourceLoader.cpp:
+        (WebKit::NetworkResourceLoader::start):
+        (WebKit::NetworkResourceLoader::willSendRedirectedRequest):
+        * NetworkProcess/PingLoad.cpp:
+        (WebKit::PingLoad::PingLoad):
+        (WebKit::PingLoad::willPerformHTTPRedirection):
+        * NetworkProcess/PingLoad.h:
+
 2018-06-27  Stephan Szabo  <[email protected]>
 
         [Wincairo] Add support for context menus to non-legacy minibrowser

Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp (233276 => 233277)


--- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp	2018-06-27 21:10:20 UTC (rev 233276)
+++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp	2018-06-27 21:15:23 UTC (rev 233277)
@@ -262,7 +262,7 @@
     };
 
     // PingLoad manages its own lifetime, deleting itself when its purpose has been fulfilled.
-    new PingLoad(WTFMove(loadParameters), *this, WTFMove(completionHandler));
+    new PingLoad(WTFMove(loadParameters), WTFMove(completionHandler));
 }
 
 void NetworkConnectionToWebProcess::didFinishPingLoad(uint64_t pingLoadIdentifier, const ResourceError& error, const ResourceResponse& response)

Modified: trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp (233276 => 233277)


--- trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp	2018-06-27 21:10:20 UTC (rev 233276)
+++ trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp	2018-06-27 21:15:23 UTC (rev 233277)
@@ -40,6 +40,7 @@
 #include <WebCore/CrossOriginPreflightResultCache.h>
 #include <WebCore/HTTPParsers.h>
 #include <WebCore/SchemeRegistry.h>
+#include <wtf/Scope.h>
 
 #define RELEASE_LOG_IF_ALLOWED(fmt, ...) RELEASE_LOG_IF(m_sessionID.isAlwaysOnLoggingAllowed(), Network, "%p - NetworkLoadChecker::" fmt, this, ##__VA_ARGS__)
 
@@ -52,12 +53,8 @@
     return url.protocolIsData() || url.protocolIsBlob() || !origin || origin->canRequest(url);
 }
 
-NetworkLoadChecker::NetworkLoadChecker(NetworkConnectionToWebProcess& connection, uint64_t webPageID, uint64_t webFrameID, ResourceLoadIdentifier loadIdentifier, FetchOptions&& options, PAL::SessionID sessionID, HTTPHeaderMap&& originalRequestHeaders, URL&& url, RefPtr<SecurityOrigin>&& sourceOrigin, PreflightPolicy preflightPolicy, String&& referrer, bool shouldCaptureExtraNetworkLoadMetrics)
-    : m_connection(connection)
-    , m_webPageID(webPageID)
-    , m_webFrameID(webFrameID)
-    , m_loadIdentifier(loadIdentifier)
-    , m_options(WTFMove(options))
+NetworkLoadChecker::NetworkLoadChecker(FetchOptions&& options, PAL::SessionID sessionID, HTTPHeaderMap&& originalRequestHeaders, URL&& url, RefPtr<SecurityOrigin>&& sourceOrigin, PreflightPolicy preflightPolicy, String&& referrer, bool shouldCaptureExtraNetworkLoadMetrics)
+    : m_options(WTFMove(options))
     , m_sessionID(sessionID)
     , m_originalRequestHeaders(WTFMove(originalRequestHeaders))
     , m_url(WTFMove(url))
@@ -82,7 +79,7 @@
 
 NetworkLoadChecker::~NetworkLoadChecker() = default;
 
-void NetworkLoadChecker::check(ResourceRequest&& request, ValidationHandler&& handler)
+void NetworkLoadChecker::check(ResourceRequest&& request, ContentSecurityPolicyClient* client, ValidationHandler&& handler)
 {
     ASSERT(!isChecking());
 
@@ -96,7 +93,7 @@
         m_dntHeaderValue = "1";
         request.setHTTPHeaderField(HTTPHeaderName::DNT, m_dntHeaderValue);
     }
-    checkRequest(WTFMove(request), WTFMove(handler));
+    checkRequest(WTFMove(request), client, WTFMove(handler));
 }
 
 void NetworkLoadChecker::prepareRedirectedRequest(ResourceRequest& request)
@@ -105,7 +102,7 @@
         request.setHTTPHeaderField(HTTPHeaderName::DNT, m_dntHeaderValue);
 }
 
-void NetworkLoadChecker::checkRedirection(ResourceResponse& redirectResponse, ResourceRequest&& request, ValidationHandler&& handler)
+void NetworkLoadChecker::checkRedirection(ResourceResponse& redirectResponse, ResourceRequest&& request, ContentSecurityPolicyClient* client, ValidationHandler&& handler)
 {
     ASSERT(!isChecking());
 
@@ -132,7 +129,7 @@
     m_previousURL = WTFMove(m_url);
     m_url = request.url();
 
-    checkRequest(WTFMove(request), WTFMove(handler));
+    checkRequest(WTFMove(request), client, WTFMove(handler));
 }
 
 ResourceError NetworkLoadChecker::validateResponse(ResourceResponse& response)
@@ -177,7 +174,7 @@
     return makeUnexpected(ResourceError { String { }, 0, m_url, WTFMove(message), ResourceError::Type::AccessControl });
 }
 
-void NetworkLoadChecker::checkRequest(ResourceRequest&& request, ValidationHandler&& handler)
+void NetworkLoadChecker::checkRequest(ResourceRequest&& request, ContentSecurityPolicyClient* client, ValidationHandler&& handler)
 {
     if (auto* contentSecurityPolicy = this->contentSecurityPolicy()) {
         if (isRedirected()) {
@@ -184,7 +181,7 @@
             auto type = m_options.mode == FetchOptions::Mode::Navigate ? ContentSecurityPolicy::InsecureRequestType::Navigation : ContentSecurityPolicy::InsecureRequestType::Load;
             contentSecurityPolicy->upgradeInsecureRequestIfNeeded(request, type);
         }
-        if (!isAllowedByContentSecurityPolicy(request)) {
+        if (!isAllowedByContentSecurityPolicy(request, client)) {
             handler(accessControlErrorForValidationHandler("Blocked by Content Security Policy."_s));
             return;
         }
@@ -208,22 +205,27 @@
 #endif
 }
 
-bool NetworkLoadChecker::isAllowedByContentSecurityPolicy(const ResourceRequest& request)
+bool NetworkLoadChecker::isAllowedByContentSecurityPolicy(const ResourceRequest& request, WebCore::ContentSecurityPolicyClient* client)
 {
-    ASSERT(contentSecurityPolicy());
+    auto* contentSecurityPolicy = this->contentSecurityPolicy();
+    contentSecurityPolicy->setClient(client);
+    auto clearContentSecurityPolicyClient = makeScopeExit([&] {
+        contentSecurityPolicy->setClient(nullptr);
+    });
+
     auto redirectResponseReceived = isRedirected() ? ContentSecurityPolicy::RedirectResponseReceived::Yes : ContentSecurityPolicy::RedirectResponseReceived::No;
     switch (m_options.destination) {
     case FetchOptions::Destination::Worker:
     case FetchOptions::Destination::Serviceworker:
     case FetchOptions::Destination::Sharedworker:
-        return contentSecurityPolicy()->allowChildContextFromSource(request.url(), redirectResponseReceived);
+        return contentSecurityPolicy->allowChildContextFromSource(request.url(), redirectResponseReceived);
     case FetchOptions::Destination::Script:
-        if (request.requester() == ResourceRequest::Requester::ImportScripts && !contentSecurityPolicy()->allowScriptFromSource(request.url(), redirectResponseReceived))
+        if (request.requester() == ResourceRequest::Requester::ImportScripts && !contentSecurityPolicy->allowScriptFromSource(request.url(), redirectResponseReceived))
             return false;
         // FIXME: Check CSP for non-importScripts() initiated loads.
         return true;
     case FetchOptions::Destination::EmptyString:
-        return contentSecurityPolicy()->allowConnectToSource(request.url(), redirectResponseReceived);
+        return contentSecurityPolicy->allowConnectToSource(request.url(), redirectResponseReceived);
     case FetchOptions::Destination::Audio:
     case FetchOptions::Destination::Document:
     case FetchOptions::Destination::Embed:
@@ -374,7 +376,7 @@
 {
     if (!m_contentSecurityPolicy && m_cspResponseHeaders) {
         // FIXME: Pass the URL of the protected resource instead of its origin.
-        m_contentSecurityPolicy = std::make_unique<ContentSecurityPolicy>(URL { URL { }, m_origin->toString() }, this);
+        m_contentSecurityPolicy = std::make_unique<ContentSecurityPolicy>(URL { URL { }, m_origin->toString() });
         m_contentSecurityPolicy->didReceiveHeaders(*m_cspResponseHeaders, String { m_referrer }, ContentSecurityPolicy::ReportParsingErrors::No);
     }
     return m_contentSecurityPolicy.get();
@@ -403,24 +405,6 @@
 }
 #endif // ENABLE(CONTENT_EXTENSIONS)
 
-void NetworkLoadChecker::addConsoleMessage(MessageSource messageSource, MessageLevel messageLevel, const String& message, unsigned long)
-{
-    if (m_webPageID && m_webFrameID)
-        m_connection->connection().send(Messages::WebPage::AddConsoleMessage { m_webFrameID,  messageSource, messageLevel, message, m_loadIdentifier }, m_webPageID);
-}
-
-void NetworkLoadChecker::sendCSPViolationReport(URL&& reportURL, Ref<FormData>&& report)
-{
-    if (m_webPageID && m_webFrameID)
-        m_connection->connection().send(Messages::WebPage::SendCSPViolationReport { m_webFrameID, WTFMove(reportURL), IPC::FormDataReference { WTFMove(report) } }, m_webPageID);
-}
-
-void NetworkLoadChecker::enqueueSecurityPolicyViolationEvent(SecurityPolicyViolationEvent::Init&& eventInit)
-{
-    if (m_webPageID && m_webFrameID)
-        m_connection->connection().send(Messages::WebPage::EnqueueSecurityPolicyViolationEvent { m_webFrameID, WTFMove(eventInit) }, m_webPageID);
-}
-
 void NetworkLoadChecker::storeRedirectionIfNeeded(const ResourceRequest& request, const ResourceResponse& response)
 {
     if (!m_shouldCaptureExtraNetworkLoadMetrics)

Modified: trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.h (233276 => 233277)


--- trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.h	2018-06-27 21:10:20 UTC (rev 233276)
+++ trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.h	2018-06-27 21:15:23 UTC (rev 233277)
@@ -37,6 +37,7 @@
 
 namespace WebCore {
 class ContentSecurityPolicy;
+struct ContentSecurityPolicyClient;
 }
 
 namespace WebKit {
@@ -44,15 +45,15 @@
 class NetworkConnectionToWebProcess;
 class NetworkCORSPreflightChecker;
 
-class NetworkLoadChecker : public WebCore::ContentSecurityPolicyClient, public CanMakeWeakPtr<NetworkLoadChecker> {
+class NetworkLoadChecker : public CanMakeWeakPtr<NetworkLoadChecker> {
 public:
-    NetworkLoadChecker(NetworkConnectionToWebProcess&, uint64_t webPageID, uint64_t webFrameID, ResourceLoadIdentifier, WebCore::FetchOptions&&, PAL::SessionID, WebCore::HTTPHeaderMap&&, WebCore::URL&&, RefPtr<WebCore::SecurityOrigin>&&, WebCore::PreflightPolicy, String&& referrer, bool shouldCaptureExtraNetworkLoadMetrics = false);
+    NetworkLoadChecker(WebCore::FetchOptions&&, PAL::SessionID, WebCore::HTTPHeaderMap&&, WebCore::URL&&, RefPtr<WebCore::SecurityOrigin>&&, WebCore::PreflightPolicy, String&& referrer, bool shouldCaptureExtraNetworkLoadMetrics = false);
     ~NetworkLoadChecker();
 
     using RequestOrError = Expected<WebCore::ResourceRequest, WebCore::ResourceError>;
     using ValidationHandler = CompletionHandler<void(RequestOrError&&)>;
-    void check(WebCore::ResourceRequest&&, ValidationHandler&&);
-    void checkRedirection(WebCore::ResourceResponse&, WebCore::ResourceRequest&&, ValidationHandler&&);
+    void check(WebCore::ResourceRequest&&, WebCore::ContentSecurityPolicyClient*, ValidationHandler&&);
+    void checkRedirection(WebCore::ResourceResponse&, WebCore::ResourceRequest&&, WebCore::ContentSecurityPolicyClient*, ValidationHandler&&);
     void prepareRedirectedRequest(WebCore::ResourceRequest&);
 
     WebCore::ResourceError validateResponse(WebCore::ResourceResponse&);
@@ -79,9 +80,9 @@
     bool isChecking() const { return !!m_corsPreflightChecker; }
     bool isRedirected() const { return m_redirectCount; }
 
-    void checkRequest(WebCore::ResourceRequest&&, ValidationHandler&&);
+    void checkRequest(WebCore::ResourceRequest&&, WebCore::ContentSecurityPolicyClient*, ValidationHandler&&);
 
-    bool isAllowedByContentSecurityPolicy(const WebCore::ResourceRequest&);
+    bool isAllowedByContentSecurityPolicy(const WebCore::ResourceRequest&, WebCore::ContentSecurityPolicyClient*);
 
     void continueCheckingRequest(WebCore::ResourceRequest&&, ValidationHandler&&);
 
@@ -101,18 +102,6 @@
     using ContentExtensionCallback = CompletionHandler<void(ContentExtensionResultOrError)>;
     void processContentExtensionRulesForLoad(WebCore::ResourceRequest&&, ContentExtensionCallback&&);
 #endif
-
-    // ContentSecurityPolicyClient
-    void addConsoleMessage(MessageSource, MessageLevel, const String&, unsigned long) final;
-    void sendCSPViolationReport(WebCore::URL&&, Ref<WebCore::FormData>&&) final;
-    void enqueueSecurityPolicyViolationEvent(WebCore::SecurityPolicyViolationEvent::Init&&) final;
-
-    // The connection, web page ID, web frame ID and load identifier are used for CSP reporting.
-    Ref<NetworkConnectionToWebProcess> m_connection;
-    uint64_t m_webPageID;
-    uint64_t m_webFrameID;
-    ResourceLoadIdentifier m_loadIdentifier;
-
     WebCore::FetchOptions m_options;
     WebCore::StoredCredentialsPolicy m_storedCredentialsPolicy;
     PAL::SessionID m_sessionID;

Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (233276 => 233277)


--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp	2018-06-27 21:10:20 UTC (rev 233276)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp	2018-06-27 21:15:23 UTC (rev 233277)
@@ -119,7 +119,7 @@
     }
 
     if (synchronousReply || parameters.shouldRestrictHTTPResponseAccess) {
-        m_networkLoadChecker = std::make_unique<NetworkLoadChecker>(m_connection, m_parameters.webPageID, m_parameters.webFrameID, identifier(), FetchOptions { m_parameters.options }, m_parameters.sessionID, HTTPHeaderMap { m_parameters.originalRequestHeaders }, URL { m_parameters.request.url() }, m_parameters.sourceOrigin.copyRef(), m_parameters.preflightPolicy, originalRequest().httpReferrer(), shouldCaptureExtraNetworkLoadMetrics());
+        m_networkLoadChecker = std::make_unique<NetworkLoadChecker>(FetchOptions { m_parameters.options }, m_parameters.sessionID, HTTPHeaderMap { m_parameters.originalRequestHeaders }, URL { m_parameters.request.url() }, m_parameters.sourceOrigin.copyRef(), m_parameters.preflightPolicy, originalRequest().httpReferrer(), shouldCaptureExtraNetworkLoadMetrics());
         if (m_parameters.cspResponseHeaders)
             m_networkLoadChecker->setCSPResponseHeaders(ContentSecurityPolicyResponseHeaders { m_parameters.cspResponseHeaders.value() });
 #if ENABLE(CONTENT_EXTENSIONS)
@@ -184,7 +184,7 @@
     m_wasStarted = true;
 
     if (m_networkLoadChecker) {
-        m_networkLoadChecker->check(ResourceRequest { originalRequest() }, [this] (auto&& result) {
+        m_networkLoadChecker->check(ResourceRequest { originalRequest() }, this, [this] (auto&& result) {
             if (!result.has_value()) {
                 if (!result.error().isCancellation())
                     this->didFailLoading(result.error());
@@ -581,7 +581,7 @@
 
     if (m_networkLoadChecker) {
         m_networkLoadChecker->storeRedirectionIfNeeded(request, redirectResponse);
-        m_networkLoadChecker->checkRedirection(redirectResponse, WTFMove(redirectRequest), [protectedThis = makeRef(*this), this, storedCredentialsPolicy = m_networkLoadChecker->storedCredentialsPolicy(), request = WTFMove(request), redirectResponse](auto&& result) mutable {
+        m_networkLoadChecker->checkRedirection(redirectResponse, WTFMove(redirectRequest), this, [protectedThis = makeRef(*this), this, storedCredentialsPolicy = m_networkLoadChecker->storedCredentialsPolicy(), request = WTFMove(request), redirectResponse](auto&& result) mutable {
             if (!result.has_value()) {
                 if (result.error().isCancellation())
                     return;

Modified: trunk/Source/WebKit/NetworkProcess/PingLoad.cpp (233276 => 233277)


--- trunk/Source/WebKit/NetworkProcess/PingLoad.cpp	2018-06-27 21:10:20 UTC (rev 233276)
+++ trunk/Source/WebKit/NetworkProcess/PingLoad.cpp	2018-06-27 21:15:23 UTC (rev 233277)
@@ -38,11 +38,11 @@
 
 using namespace WebCore;
 
-PingLoad::PingLoad(NetworkResourceLoadParameters&& parameters, NetworkConnectionToWebProcess& connection, WTF::CompletionHandler<void(const ResourceError&, const ResourceResponse&)>&& completionHandler)
+PingLoad::PingLoad(NetworkResourceLoadParameters&& parameters, WTF::CompletionHandler<void(const ResourceError&, const ResourceResponse&)>&& completionHandler)
     : m_parameters(WTFMove(parameters))
     , m_completionHandler(WTFMove(completionHandler))
     , m_timeoutTimer(*this, &PingLoad::timeoutTimerFired)
-    , m_networkLoadChecker(makeUniqueRef<NetworkLoadChecker>(connection, m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, FetchOptions { m_parameters.options}, m_parameters.sessionID, WTFMove(m_parameters.originalRequestHeaders), URL { m_parameters.request.url() }, m_parameters.sourceOrigin.copyRef(), m_parameters.preflightPolicy, m_parameters.request.httpReferrer()))
+    , m_networkLoadChecker(makeUniqueRef<NetworkLoadChecker>(FetchOptions { m_parameters.options}, m_parameters.sessionID, WTFMove(m_parameters.originalRequestHeaders), URL { m_parameters.request.url() }, m_parameters.sourceOrigin.copyRef(), m_parameters.preflightPolicy, m_parameters.request.httpReferrer()))
 {
     m_networkLoadChecker->enableContentExtensionsCheck();
     if (m_parameters.cspResponseHeaders)
@@ -55,7 +55,7 @@
     // Set a very generous timeout, just in case.
     m_timeoutTimer.startOneShot(60000_s);
 
-    m_networkLoadChecker->check(ResourceRequest { m_parameters.request }, [this] (auto&& result) {
+    m_networkLoadChecker->check(ResourceRequest { m_parameters.request }, nullptr, [this] (auto&& result) {
         if (!result.has_value()) {
             this->didFinish(result.error());
             return;
@@ -93,7 +93,7 @@
 
 void PingLoad::willPerformHTTPRedirection(ResourceResponse&& redirectResponse, ResourceRequest&& request, RedirectCompletionHandler&& completionHandler)
 {
-    m_networkLoadChecker->checkRedirection(redirectResponse, WTFMove(request), [this, completionHandler = WTFMove(completionHandler)](auto&& result) {
+    m_networkLoadChecker->checkRedirection(redirectResponse, WTFMove(request), nullptr, [this, completionHandler = WTFMove(completionHandler)](auto&& result) {
         if (!result.has_value()) {
             completionHandler({ });
             this->didFinish(result.error());

Modified: trunk/Source/WebKit/NetworkProcess/PingLoad.h (233276 => 233277)


--- trunk/Source/WebKit/NetworkProcess/PingLoad.h	2018-06-27 21:10:20 UTC (rev 233276)
+++ trunk/Source/WebKit/NetworkProcess/PingLoad.h	2018-06-27 21:15:23 UTC (rev 233277)
@@ -45,7 +45,7 @@
 
 class PingLoad final : private NetworkDataTaskClient {
 public:
-    PingLoad(NetworkResourceLoadParameters&&, NetworkConnectionToWebProcess&, WTF::CompletionHandler<void(const WebCore::ResourceError&, const WebCore::ResourceResponse&)>&&);
+    PingLoad(NetworkResourceLoadParameters&&, CompletionHandler<void(const WebCore::ResourceError&, const WebCore::ResourceResponse&)>&&);
     
 private:
     ~PingLoad();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to