Changeset 234990 in webkit


Ignore:
Timestamp:
Aug 17, 2018 11:10:41 AM (6 years ago)
Author:
achristensen@apple.com
Message:

Simplify server trust authentication flow
https://bugs.webkit.org/show_bug.cgi?id=188684

Reviewed by Youenn Fablet.

We unnecessarily had the allowsSpecificHTTPSCertificateForHost check at two different abstraction levels.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveChallenge):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::allowsSpecificHTTPSCertificateForHost): Deleted.

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

Location:
trunk/Source/WebKit
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r234989 r234990  
     12018-08-17  Alex Christensen  <achristensen@webkit.org>
     2
     3        Simplify server trust authentication flow
     4        https://bugs.webkit.org/show_bug.cgi?id=188684
     5
     6        Reviewed by Youenn Fablet.
     7
     8        We unnecessarily had the allowsSpecificHTTPSCertificateForHost check at two different abstraction levels.
     9
     10        * NetworkProcess/NetworkLoad.cpp:
     11        (WebKit::NetworkLoad::didReceiveChallenge):
     12        * NetworkProcess/NetworkSession.cpp:
     13        (WebKit::NetworkSession::allowsSpecificHTTPSCertificateForHost): Deleted.
     14        * NetworkProcess/NetworkSession.h:
     15        * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
     16        (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
     17
    1182018-08-17  Alex Christensen  <achristensen@webkit.org>
    219
  • trunk/Source/WebKit/NetworkProcess/NetworkLoad.cpp

    r234941 r234990  
    262262        return;
    263263    }
    264 
    265 #if PLATFORM(COCOA)
    266     if (scheme == ProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested
    267         && NetworkSessionCocoa::allowsSpecificHTTPSCertificateForHost(challenge))
    268         return completionHandler(AuthenticationChallengeDisposition::UseCredential, serverTrustCredential(challenge));
    269 #endif
    270264   
    271265    if (auto* pendingDownload = m_task->pendingDownload())
  • trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp

    r228567 r234990  
    8282}
    8383
    84 bool NetworkSession::allowsSpecificHTTPSCertificateForHost(const WebCore::AuthenticationChallenge& challenge)
    85 {
    86 #if PLATFORM(COCOA)
    87     return NetworkSessionCocoa::allowsSpecificHTTPSCertificateForHost(challenge);
    88 #else
    89     return false;
    90 #endif
    91 }
    92 
    9384} // namespace WebKit
  • trunk/Source/WebKit/NetworkProcess/NetworkSession.h

    r227364 r234990  
    5555    void unregisterNetworkDataTask(NetworkDataTask& task) { m_dataTaskSet.remove(&task); }
    5656
    57     static bool allowsSpecificHTTPSCertificateForHost(const WebCore::AuthenticationChallenge&);
    58 
    5957protected:
    6058    NetworkSession(PAL::SessionID);
  • trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm

    r234440 r234990  
    331331    }
    332332
    333     // Handle server trust evaluation at platform-level if requested, for performance reasons.
    334     if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust] && !NetworkProcess::singleton().canHandleHTTPSServerTrustEvaluation()) {
     333    if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) {
    335334        if (NetworkSessionCocoa::allowsSpecificHTTPSCertificateForHost(challenge))
    336             completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]);
    337         else
    338             completionHandler(NSURLSessionAuthChallengeRejectProtectionSpace, nil);
    339         return;
     335            return completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]);
     336
     337        // Handle server trust evaluation at platform-level if requested, for performance reasons and to use ATS defaults.
     338        if (!NetworkProcess::singleton().canHandleHTTPSServerTrustEvaluation())
     339            return completionHandler(NSURLSessionAuthChallengeRejectProtectionSpace, nil);
    340340    }
    341341
Note: See TracChangeset for help on using the changeset viewer.