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

Changeset 283467 in webkit


Ignore:
Timestamp:
Oct 3, 2021, 10:02:44 AM (5 years ago)
Author:
Alan Coon
Message:

Apply patch. rdar://problem/81175635

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-611.4.2.0-branch/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp

    r283415 r283467  
    9999
    100100    m_firstRequestHeaders = request.httpHeaderFields();
    101     checkRequest(WTFMove(request), client, WTFMove(handler));
     101    checkRequest(WTFMove(request), client, URL(), WTFMove(handler));
    102102}
    103103
     
    149149    m_url = redirectRequest.url();
    150150
    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 {
    152152        WTF::switchOn(result,
    153153            [&handler] (ResourceError& error) mutable {
     
    248248}
    249249
    250 void NetworkLoadChecker::checkRequest(ResourceRequest&& request, ContentSecurityPolicyClient* client, ValidationHandler&& handler)
     250void NetworkLoadChecker::checkRequest(ResourceRequest&& request, ContentSecurityPolicyClient* client, const URL& preRedirectURL, ValidationHandler&& handler)
    251251{
    252252    ResourceRequest originalRequest = request;
    253253
    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 {
    255255        if (!weakThis)
    256256            return handler({ ResourceError { ResourceError::Type::Cancellation }});
     
    261261                contentSecurityPolicy->upgradeInsecureRequestIfNeeded(request, type);
    262262            }
    263             if (!this->isAllowedByContentSecurityPolicy(request, client)) {
     263            if (!this->isAllowedByContentSecurityPolicy(request, client, preRedirectURL)) {
    264264                handler(this->accessControlErrorForValidationHandler("Blocked by Content Security Policy."_s));
    265265                return;
     
    300300}
    301301
    302 bool NetworkLoadChecker::isAllowedByContentSecurityPolicy(const ResourceRequest& request, WebCore::ContentSecurityPolicyClient* client)
     302bool NetworkLoadChecker::isAllowedByContentSecurityPolicy(const ResourceRequest& request, WebCore::ContentSecurityPolicyClient* client, const URL& preRedirectURL)
    303303{
    304304    auto* contentSecurityPolicy = this->contentSecurityPolicy();
     
    322322        return true;
    323323    case FetchOptions::Destination::EmptyString:
    324         return contentSecurityPolicy->allowConnectToSource(request.url(), redirectResponseReceived);
     324        return contentSecurityPolicy->allowConnectToSource(request.url(), redirectResponseReceived, preRedirectURL);
    325325    case FetchOptions::Destination::Audio:
    326326    case FetchOptions::Destination::Document:
Note: See TracChangeset for help on using the changeset viewer.