Title: [234990] trunk/Source/WebKit
Revision
234990
Author
[email protected]
Date
2018-08-17 11:10:41 -0700 (Fri, 17 Aug 2018)

Log 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:]):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (234989 => 234990)


--- trunk/Source/WebKit/ChangeLog	2018-08-17 18:09:39 UTC (rev 234989)
+++ trunk/Source/WebKit/ChangeLog	2018-08-17 18:10:41 UTC (rev 234990)
@@ -1,5 +1,22 @@
 2018-08-17  Alex Christensen  <[email protected]>
 
+        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:]):
+
+2018-08-17  Alex Christensen  <[email protected]>
+
         Fix API tests after r234985
         https://bugs.webkit.org/show_bug.cgi?id=188679
 

Modified: trunk/Source/WebKit/NetworkProcess/NetworkLoad.cpp (234989 => 234990)


--- trunk/Source/WebKit/NetworkProcess/NetworkLoad.cpp	2018-08-17 18:09:39 UTC (rev 234989)
+++ trunk/Source/WebKit/NetworkProcess/NetworkLoad.cpp	2018-08-17 18:10:41 UTC (rev 234990)
@@ -261,12 +261,6 @@
         completionHandler(AuthenticationChallengeDisposition::UseCredential, { });
         return;
     }
-
-#if PLATFORM(COCOA)
-    if (scheme == ProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested
-        && NetworkSessionCocoa::allowsSpecificHTTPSCertificateForHost(challenge))
-        return completionHandler(AuthenticationChallengeDisposition::UseCredential, serverTrustCredential(challenge));
-#endif
     
     if (auto* pendingDownload = m_task->pendingDownload())
         NetworkProcess::singleton().authenticationManager().didReceiveAuthenticationChallenge(*pendingDownload, challenge, WTFMove(completionHandler));

Modified: trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp (234989 => 234990)


--- trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp	2018-08-17 18:09:39 UTC (rev 234989)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp	2018-08-17 18:10:41 UTC (rev 234990)
@@ -81,13 +81,4 @@
         task->invalidateAndCancel();
 }
 
-bool NetworkSession::allowsSpecificHTTPSCertificateForHost(const WebCore::AuthenticationChallenge& challenge)
-{
-#if PLATFORM(COCOA)
-    return NetworkSessionCocoa::allowsSpecificHTTPSCertificateForHost(challenge);
-#else
-    return false;
-#endif
-}
-
 } // namespace WebKit

Modified: trunk/Source/WebKit/NetworkProcess/NetworkSession.h (234989 => 234990)


--- trunk/Source/WebKit/NetworkProcess/NetworkSession.h	2018-08-17 18:09:39 UTC (rev 234989)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSession.h	2018-08-17 18:10:41 UTC (rev 234990)
@@ -54,8 +54,6 @@
     void registerNetworkDataTask(NetworkDataTask& task) { m_dataTaskSet.add(&task); }
     void unregisterNetworkDataTask(NetworkDataTask& task) { m_dataTaskSet.remove(&task); }
 
-    static bool allowsSpecificHTTPSCertificateForHost(const WebCore::AuthenticationChallenge&);
-
 protected:
     NetworkSession(PAL::SessionID);
 

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (234989 => 234990)


--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2018-08-17 18:09:39 UTC (rev 234989)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2018-08-17 18:10:41 UTC (rev 234990)
@@ -330,13 +330,13 @@
         return;
     }
 
-    // Handle server trust evaluation at platform-level if requested, for performance reasons.
-    if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust] && !NetworkProcess::singleton().canHandleHTTPSServerTrustEvaluation()) {
+    if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) {
         if (NetworkSessionCocoa::allowsSpecificHTTPSCertificateForHost(challenge))
-            completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]);
-        else
-            completionHandler(NSURLSessionAuthChallengeRejectProtectionSpace, nil);
-        return;
+            return completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]);
+
+        // Handle server trust evaluation at platform-level if requested, for performance reasons and to use ATS defaults.
+        if (!NetworkProcess::singleton().canHandleHTTPSServerTrustEvaluation())
+            return completionHandler(NSURLSessionAuthChallengeRejectProtectionSpace, nil);
     }
 
     if (auto* networkDataTask = [self existingTask:task]) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to