Changeset 283467 in webkit
- Timestamp:
- Oct 3, 2021, 10:02:44 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-611.4.2.0-branch/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp
r283415 r283467 99 99 100 100 m_firstRequestHeaders = request.httpHeaderFields(); 101 checkRequest(WTFMove(request), client, WTFMove(handler));101 checkRequest(WTFMove(request), client, URL(), WTFMove(handler)); 102 102 } 103 103 … … 149 149 m_url = redirectRequest.url(); 150 150 151 checkRequest(WTFMove(redirectRequest), client, [handler = WTFMove(handler), request = WTFMove(request), redirectResponse = WTFMove(redirectResponse)](auto&& result) mutable {151 checkRequest(WTFMove(redirectRequest), client, redirectResponse.url(), [handler = WTFMove(handler), request = WTFMove(request), redirectResponse](auto&& result) mutable { 152 152 WTF::switchOn(result, 153 153 [&handler] (ResourceError& error) mutable { … … 248 248 } 249 249 250 void NetworkLoadChecker::checkRequest(ResourceRequest&& request, ContentSecurityPolicyClient* client, ValidationHandler&& handler)250 void NetworkLoadChecker::checkRequest(ResourceRequest&& request, ContentSecurityPolicyClient* client, const URL& preRedirectURL, ValidationHandler&& handler) 251 251 { 252 252 ResourceRequest originalRequest = request; 253 253 254 applyHTTPSUpgradeIfNeeded(WTFMove(request), [this, weakThis = makeWeakPtr(*this), client, handler = WTFMove(handler), originalRequest = WTFMove(originalRequest) ](auto&& request) mutable {254 applyHTTPSUpgradeIfNeeded(WTFMove(request), [this, weakThis = makeWeakPtr(*this), client, handler = WTFMove(handler), originalRequest = WTFMove(originalRequest), preRedirectURL](auto&& request) mutable { 255 255 if (!weakThis) 256 256 return handler({ ResourceError { ResourceError::Type::Cancellation }}); … … 261 261 contentSecurityPolicy->upgradeInsecureRequestIfNeeded(request, type); 262 262 } 263 if (!this->isAllowedByContentSecurityPolicy(request, client )) {263 if (!this->isAllowedByContentSecurityPolicy(request, client, preRedirectURL)) { 264 264 handler(this->accessControlErrorForValidationHandler("Blocked by Content Security Policy."_s)); 265 265 return; … … 300 300 } 301 301 302 bool NetworkLoadChecker::isAllowedByContentSecurityPolicy(const ResourceRequest& request, WebCore::ContentSecurityPolicyClient* client )302 bool NetworkLoadChecker::isAllowedByContentSecurityPolicy(const ResourceRequest& request, WebCore::ContentSecurityPolicyClient* client, const URL& preRedirectURL) 303 303 { 304 304 auto* contentSecurityPolicy = this->contentSecurityPolicy(); … … 322 322 return true; 323 323 case FetchOptions::Destination::EmptyString: 324 return contentSecurityPolicy->allowConnectToSource(request.url(), redirectResponseReceived );324 return contentSecurityPolicy->allowConnectToSource(request.url(), redirectResponseReceived, preRedirectURL); 325 325 case FetchOptions::Destination::Audio: 326 326 case FetchOptions::Destination::Document:
Note:
See TracChangeset
for help on using the changeset viewer.