WebKit Bugzilla
Attachment 343742 Details for
Bug 186551
: NetworkLoadChecker should not need to hard ref NetworkConnectionToWebProcess
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for landing
bug-186551-20180627130100.patch (text/plain), 22.76 KB, created by
youenn fablet
on 2018-06-27 13:01:00 PDT
(
hide
)
Description:
Patch for landing
Filename:
MIME Type:
Creator:
youenn fablet
Created:
2018-06-27 13:01:00 PDT
Size:
22.76 KB
patch
obsolete
>Subversion Revision: 233256 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index f784544dc6fe08b8f7b76a117115b460ec5f6111..7dcdf5aa6449bfe6e67b9b5badf7d87b8443ecae 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,16 @@ >+2018-06-27 Youenn Fablet <youenn@apple.com> >+ >+ 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 Youenn Fablet <youenn@apple.com> > > Disable content blockers in NetworkLoadChecker except for ping loads >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 53936b6fe54c2f21f0b36d5d953fd7019f41ecb8..5146d78e6d8a25b0e6ab7dc9856e764dd2a9a8e9 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,33 @@ >+2018-06-27 Youenn Fablet <youenn@apple.com> >+ >+ 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 Youenn Fablet <youenn@apple.com> > > Add a sandbox profile for some additional bank plugins >diff --git a/Source/WebCore/page/csp/ContentSecurityPolicy.h b/Source/WebCore/page/csp/ContentSecurityPolicy.h >index 4da45d4bcaa12115013003c97fd3e803cd53400d..7a57cf541782b2985ac7e67826168e2dbb8cd63f 100644 >--- a/Source/WebCore/page/csp/ContentSecurityPolicy.h >+++ b/Source/WebCore/page/csp/ContentSecurityPolicy.h >@@ -169,6 +169,8 @@ public: > 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&); >diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp >index 7812a8d0fbfe2aca6059b570a1715ecd30eab8d0..8e5d10d8e4d67b480021c116ce7212c6ed7f1e4f 100644 >--- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp >@@ -262,7 +262,7 @@ void NetworkConnectionToWebProcess::loadPing(NetworkResourceLoadParameters&& loa > }; > > // 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) >diff --git a/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp b/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp >index b5c98f369676c6627f8bbe019255b86e4fece600..7bb2b5d59fd4017d1b2bef9d30328c9b3373ac45 100644 >--- a/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp >@@ -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 @@ static inline bool isSameOrigin(const URL& url, const SecurityOrigin* origin) > 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(NetworkConnectionToWebProcess& connection > > 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 @@ void NetworkLoadChecker::check(ResourceRequest&& request, ValidationHandler&& ha > 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 @@ void NetworkLoadChecker::prepareRedirectedRequest(ResourceRequest& request) > 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 @@ void NetworkLoadChecker::checkRedirection(ResourceResponse& redirectResponse, Re > 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,14 +174,14 @@ auto NetworkLoadChecker::accessControlErrorForValidationHandler(String&& message > 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()) { > 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 @@ void NetworkLoadChecker::checkRequest(ResourceRequest&& request, ValidationHandl > #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 @@ ContentSecurityPolicy* NetworkLoadChecker::contentSecurityPolicy() > { > 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 @@ void NetworkLoadChecker::processContentExtensionRulesForLoad(ResourceRequest&& r > } > #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) >diff --git a/Source/WebKit/NetworkProcess/NetworkLoadChecker.h b/Source/WebKit/NetworkProcess/NetworkLoadChecker.h >index 629373bba0c7d7bf37ff67da9ea5dabb645b2718..d1070f8a74a85df7d2c17e6dc68e2a947908fc74 100644 >--- a/Source/WebKit/NetworkProcess/NetworkLoadChecker.h >+++ b/Source/WebKit/NetworkProcess/NetworkLoadChecker.h >@@ -37,6 +37,7 @@ > > namespace WebCore { > class ContentSecurityPolicy; >+struct ContentSecurityPolicyClient; > } > > namespace WebKit { >@@ -44,15 +45,15 @@ namespace WebKit { > 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 @@ private: > 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 @@ private: > 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; >diff --git a/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp b/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp >index 904d0b188e5f4df5ee8f6b20dc68f6d431860ceb..298ee28bbe6762de74cd7bf311ccfebfcc10a629 100644 >--- a/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp >@@ -119,7 +119,7 @@ NetworkResourceLoader::NetworkResourceLoader(NetworkResourceLoadParameters&& par > } > > 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 @@ void NetworkResourceLoader::start() > 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 @@ void NetworkResourceLoader::willSendRedirectedRequest(ResourceRequest&& request, > > 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; >diff --git a/Source/WebKit/NetworkProcess/PingLoad.cpp b/Source/WebKit/NetworkProcess/PingLoad.cpp >index 10ca19fe82cd33ebc698d25aabcfe34919c20416..8710cb3d3e519a0ac85c8f4812d1707283cdb21a 100644 >--- a/Source/WebKit/NetworkProcess/PingLoad.cpp >+++ b/Source/WebKit/NetworkProcess/PingLoad.cpp >@@ -38,11 +38,11 @@ namespace WebKit { > > 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 @@ PingLoad::PingLoad(NetworkResourceLoadParameters&& parameters, NetworkConnection > // 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::loadRequest(ResourceRequest&& request) > > 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()); >diff --git a/Source/WebKit/NetworkProcess/PingLoad.h b/Source/WebKit/NetworkProcess/PingLoad.h >index b93815a04bde3fa849ee78fb16c31ebb5828f9c8..0031bbd578129f7a284ad2e19f77438f30664e44 100644 >--- a/Source/WebKit/NetworkProcess/PingLoad.h >+++ b/Source/WebKit/NetworkProcess/PingLoad.h >@@ -45,7 +45,7 @@ class NetworkLoadChecker; > > 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();
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 186551
:
342772
| 343742