Title: [231916] trunk/Source
Revision
231916
Author
[email protected]
Date
2018-05-17 12:26:52 -0700 (Thu, 17 May 2018)

Log Message

Convert CertificateInfo into Credential in UI Process instead of Networking Process
https://bugs.webkit.org/show_bug.cgi?id=185662
<rdar://problem/40275561>

Reviewed by Alex Christensen.

Source/WebKit:

Right now we convert CertificateInfo into Credential in the very last stage of client certificate authentication process
when it reaches Networking Process. This patch moves that conversion earlier in UI Process such that we don't have to
pass both Credential and CertificateInfo to Networking Process.

CertificateInfo is only used in macOS for C API specifically. WK2 includes macOS/iOS relies on NSURLCredential/WebCore::Credential
solely. WK2 has already exercised the ability of using WebCore::Credential to do client certficate authentication. This patch therefore
takes advantage of that. It converts CertficateInfo objects into Credential objects right after WebCredential is initialized, and then merge
any code paths that utilizes CertficateInfo into ones that uses WebCore::Credential.

Covered by existing tests.

* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::useCredentialForChallenge):
(WebKit::AuthenticationManager::useCredentialForSingleChallenge):
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge): Deleted.
* Shared/Authentication/AuthenticationManager.h:
* Shared/Authentication/AuthenticationManager.messages.in:
* UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
(WebKit::AuthenticationChallengeProxy::useCredential):
* UIProcess/Authentication/WebCredential.cpp:
(WebKit::WebCredential::WebCredential):
(WebKit::WebCredential::certificateInfo): Deleted.
* UIProcess/Authentication/WebCredential.h:
(WebKit::WebCredential::create):
* UIProcess/Authentication/mac/WebCredentialMac.mm: Renamed from Source/WebKit/Shared/Authentication/mac/AuthenticationManager.mac.mm.
(WebKit::leafCertificate):
(WebKit::chain):
(WebKit::WebCredential::WebCredential):
* WebKit.xcodeproj/project.pbxproj:

Source/WTF:

Remove marco HAVE_SEC_IDENTITY since it is no longer useful.

* wtf/Platform.h:

Modified Paths

Added Paths

Removed Paths

  • trunk/Source/WebKit/Shared/Authentication/mac/

Diff

Modified: trunk/Source/WTF/ChangeLog (231915 => 231916)


--- trunk/Source/WTF/ChangeLog	2018-05-17 19:20:28 UTC (rev 231915)
+++ trunk/Source/WTF/ChangeLog	2018-05-17 19:26:52 UTC (rev 231916)
@@ -1,3 +1,15 @@
+2018-05-17  Jiewen Tan  <[email protected]>
+
+        Convert CertificateInfo into Credential in UI Process instead of Networking Process
+        https://bugs.webkit.org/show_bug.cgi?id=185662
+        <rdar://problem/40275561>
+
+        Reviewed by Alex Christensen.
+
+        Remove marco HAVE_SEC_IDENTITY since it is no longer useful.
+
+        * wtf/Platform.h:
+
 2018-05-17  Zalan Bujtas  <[email protected]>
 
         Add ASSERT_NOT_IMPLEMENTED_YET() macro

Modified: trunk/Source/WTF/wtf/Platform.h (231915 => 231916)


--- trunk/Source/WTF/wtf/Platform.h	2018-05-17 19:20:28 UTC (rev 231915)
+++ trunk/Source/WTF/wtf/Platform.h	2018-05-17 19:26:52 UTC (rev 231916)
@@ -572,7 +572,6 @@
 
 #define USE_APPKIT 1
 #define HAVE_RUNLOOP_TIMER 1
-#define HAVE_SEC_IDENTITY 1
 #define HAVE_SEC_KEYCHAIN 1
 
 #if CPU(X86_64)

Modified: trunk/Source/WebKit/ChangeLog (231915 => 231916)


--- trunk/Source/WebKit/ChangeLog	2018-05-17 19:20:28 UTC (rev 231915)
+++ trunk/Source/WebKit/ChangeLog	2018-05-17 19:26:52 UTC (rev 231916)
@@ -1,3 +1,41 @@
+2018-05-17  Jiewen Tan  <[email protected]>
+
+        Convert CertificateInfo into Credential in UI Process instead of Networking Process
+        https://bugs.webkit.org/show_bug.cgi?id=185662
+        <rdar://problem/40275561>
+
+        Reviewed by Alex Christensen.
+
+        Right now we convert CertificateInfo into Credential in the very last stage of client certificate authentication process
+        when it reaches Networking Process. This patch moves that conversion earlier in UI Process such that we don't have to
+        pass both Credential and CertificateInfo to Networking Process.
+
+        CertificateInfo is only used in macOS for C API specifically. WK2 includes macOS/iOS relies on NSURLCredential/WebCore::Credential
+        solely. WK2 has already exercised the ability of using WebCore::Credential to do client certficate authentication. This patch therefore
+        takes advantage of that. It converts CertficateInfo objects into Credential objects right after WebCredential is initialized, and then merge
+        any code paths that utilizes CertficateInfo into ones that uses WebCore::Credential.
+
+        Covered by existing tests.
+
+        * Shared/Authentication/AuthenticationManager.cpp:
+        (WebKit::AuthenticationManager::useCredentialForChallenge):
+        (WebKit::AuthenticationManager::useCredentialForSingleChallenge):
+        (WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge): Deleted.
+        * Shared/Authentication/AuthenticationManager.h:
+        * Shared/Authentication/AuthenticationManager.messages.in:
+        * UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
+        (WebKit::AuthenticationChallengeProxy::useCredential):
+        * UIProcess/Authentication/WebCredential.cpp:
+        (WebKit::WebCredential::WebCredential):
+        (WebKit::WebCredential::certificateInfo): Deleted.
+        * UIProcess/Authentication/WebCredential.h:
+        (WebKit::WebCredential::create):
+        * UIProcess/Authentication/mac/WebCredentialMac.mm: Renamed from Source/WebKit/Shared/Authentication/mac/AuthenticationManager.mac.mm.
+        (WebKit::leafCertificate):
+        (WebKit::chain):
+        (WebKit::WebCredential::WebCredential):
+        * WebKit.xcodeproj/project.pbxproj:
+
 2018-05-17  Jeremy Jones  <[email protected]>
 
         Ensure valid rects for fullsceen animation.

Modified: trunk/Source/WebKit/Shared/Authentication/AuthenticationManager.cpp (231915 => 231916)


--- trunk/Source/WebKit/Shared/Authentication/AuthenticationManager.cpp	2018-05-17 19:20:28 UTC (rev 231915)
+++ trunk/Source/WebKit/Shared/Authentication/AuthenticationManager.cpp	2018-05-17 19:26:52 UTC (rev 231916)
@@ -135,31 +135,20 @@
     download.send(Messages::DownloadProxy::DidReceiveAuthenticationChallenge(authenticationChallenge, challengeID));
 }
 
-// Currently, only Mac knows how to respond to authentication challenges with certificate info.
-#if !HAVE(SEC_IDENTITY)
-bool AuthenticationManager::tryUseCertificateInfoForChallenge(const WebCore::AuthenticationChallenge&, const CertificateInfo&, ChallengeCompletionHandler&)
+void AuthenticationManager::useCredentialForChallenge(uint64_t challengeID, const Credential& credential)
 {
-    return false;
-}
-#endif
-
-void AuthenticationManager::useCredentialForChallenge(uint64_t challengeID, const Credential& credential, const CertificateInfo& certificateInfo)
-{
     ASSERT(RunLoop::isMain());
 
     for (auto& coalescedChallengeID : coalesceChallengesMatching(challengeID))
-        useCredentialForSingleChallenge(coalescedChallengeID, credential, certificateInfo);
+        useCredentialForSingleChallenge(coalescedChallengeID, credential);
 }
 
-void AuthenticationManager::useCredentialForSingleChallenge(uint64_t challengeID, const Credential& credential, const CertificateInfo& certificateInfo)
+void AuthenticationManager::useCredentialForSingleChallenge(uint64_t challengeID, const Credential& credential)
 {
     auto challenge = m_challenges.take(challengeID);
     ASSERT(!challenge.challenge.isNull());
 
     auto completionHandler = WTFMove(challenge.completionHandler);
-    
-    if (tryUseCertificateInfoForChallenge(challenge.challenge, certificateInfo, completionHandler))
-        return;
 
     if (completionHandler)
         completionHandler(AuthenticationChallengeDisposition::UseCredential, credential);

Modified: trunk/Source/WebKit/Shared/Authentication/AuthenticationManager.h (231915 => 231916)


--- trunk/Source/WebKit/Shared/Authentication/AuthenticationManager.h	2018-05-17 19:20:28 UTC (rev 231915)
+++ trunk/Source/WebKit/Shared/Authentication/AuthenticationManager.h	2018-05-17 19:26:52 UTC (rev 231916)
@@ -40,7 +40,6 @@
 
 namespace WebCore {
 class AuthenticationChallenge;
-class CertificateInfo;
 class Credential;
 }
 
@@ -72,7 +71,7 @@
     void continueCanAuthenticateAgainstProtectionSpace(DownloadID, bool canAuthenticate);
 #endif
 
-    void useCredentialForChallenge(uint64_t challengeID, const WebCore::Credential&, const WebCore::CertificateInfo&);
+    void useCredentialForChallenge(uint64_t challengeID, const WebCore::Credential&);
     void continueWithoutCredentialForChallenge(uint64_t challengeID);
     void cancelChallenge(uint64_t challengeID);
     void performDefaultHandling(uint64_t challengeID);
@@ -96,12 +95,10 @@
     // IPC::MessageReceiver
     void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override;
 
-    bool tryUseCertificateInfoForChallenge(const WebCore::AuthenticationChallenge&, const WebCore::CertificateInfo&, ChallengeCompletionHandler&);
-
     uint64_t addChallengeToChallengeMap(Challenge&&);
     bool shouldCoalesceChallenge(uint64_t pageID, uint64_t challengeID, const WebCore::AuthenticationChallenge&) const;
 
-    void useCredentialForSingleChallenge(uint64_t challengeID, const WebCore::Credential&, const WebCore::CertificateInfo&);
+    void useCredentialForSingleChallenge(uint64_t challengeID, const WebCore::Credential&);
     void continueWithoutCredentialForSingleChallenge(uint64_t challengeID);
     void cancelSingleChallenge(uint64_t challengeID);
     void performDefaultHandlingForSingleChallenge(uint64_t challengeID);

Modified: trunk/Source/WebKit/Shared/Authentication/AuthenticationManager.messages.in (231915 => 231916)


--- trunk/Source/WebKit/Shared/Authentication/AuthenticationManager.messages.in	2018-05-17 19:20:28 UTC (rev 231915)
+++ trunk/Source/WebKit/Shared/Authentication/AuthenticationManager.messages.in	2018-05-17 19:26:52 UTC (rev 231916)
@@ -21,7 +21,7 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 messages -> AuthenticationManager {
-    void UseCredentialForChallenge(uint64_t challengeID, WebCore::Credential credential, WebCore::CertificateInfo certificate);
+    void UseCredentialForChallenge(uint64_t challengeID, WebCore::Credential credential);
     void ContinueWithoutCredentialForChallenge(uint64_t challengeID);
     void CancelChallenge(uint64_t challengeID);
     void PerformDefaultHandling(uint64_t challengeID);

Modified: trunk/Source/WebKit/UIProcess/Authentication/AuthenticationChallengeProxy.cpp (231915 => 231916)


--- trunk/Source/WebKit/UIProcess/Authentication/AuthenticationChallengeProxy.cpp	2018-05-17 19:20:28 UTC (rev 231915)
+++ trunk/Source/WebKit/UIProcess/Authentication/AuthenticationChallengeProxy.cpp	2018-05-17 19:26:52 UTC (rev 231916)
@@ -70,11 +70,7 @@
         return;
     }
 
-    WebCore::CertificateInfo certificateInfo;
-    if (credential->certificateInfo())
-        certificateInfo = credential->certificateInfo()->certificateInfo();
-
-    m_connection->send(Messages::AuthenticationManager::UseCredentialForChallenge(challengeID, credential->credential(), certificateInfo), 0);
+    m_connection->send(Messages::AuthenticationManager::UseCredentialForChallenge(challengeID, credential->credential()), 0);
 }
 
 void AuthenticationChallengeProxy::cancel()

Modified: trunk/Source/WebKit/UIProcess/Authentication/WebCredential.cpp (231915 => 231916)


--- trunk/Source/WebKit/UIProcess/Authentication/WebCredential.cpp	2018-05-17 19:20:28 UTC (rev 231915)
+++ trunk/Source/WebKit/UIProcess/Authentication/WebCredential.cpp	2018-05-17 19:26:52 UTC (rev 231916)
@@ -26,8 +26,6 @@
 #include "config.h"
 #include "WebCredential.h"
 
-#include "WebCertificateInfo.h"
-
 namespace WebKit {
 
 WebCredential::WebCredential(const WebCore::Credential& credential)
@@ -35,20 +33,16 @@
 {
 }
 
+#if !PLATFORM(MAC)
 WebCredential::WebCredential(WebCertificateInfo* certificateInfo)
-    : m_certificateInfo(certificateInfo)
 {
 }
+#endif
 
 WebCredential::~WebCredential()
 {
 }
 
-WebCertificateInfo* WebCredential::certificateInfo()
-{
-    return m_certificateInfo.get();
-}
-
 const WebCore::Credential& WebCredential::credential()
 {
     return m_coreCredential;

Modified: trunk/Source/WebKit/UIProcess/Authentication/WebCredential.h (231915 => 231916)


--- trunk/Source/WebKit/UIProcess/Authentication/WebCredential.h	2018-05-17 19:20:28 UTC (rev 231915)
+++ trunk/Source/WebKit/UIProcess/Authentication/WebCredential.h	2018-05-17 19:26:52 UTC (rev 231916)
@@ -47,8 +47,6 @@
     {
         return adoptRef(*new WebCredential(certificateInfo));
     }
-    
-    WebCertificateInfo* certificateInfo();
 
     const WebCore::Credential& credential();
 
@@ -57,7 +55,6 @@
     explicit WebCredential(WebCertificateInfo*);
 
     WebCore::Credential m_coreCredential;
-    RefPtr<WebCertificateInfo> m_certificateInfo;
 };
 
 } // namespace WebKit

Copied: trunk/Source/WebKit/UIProcess/Authentication/mac/WebCredentialMac.mm (from rev 231915, trunk/Source/WebKit/Shared/Authentication/mac/AuthenticationManager.mac.mm) (0 => 231916)


--- trunk/Source/WebKit/UIProcess/Authentication/mac/WebCredentialMac.mm	                        (rev 0)
+++ trunk/Source/WebKit/UIProcess/Authentication/mac/WebCredentialMac.mm	2018-05-17 19:26:52 UTC (rev 231916)
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2018 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "WebCredential.h"
+
+#if PLATFORM(MAC)
+
+#include "WebCertificateInfo.h"
+#include <Security/SecIdentity.h>
+#include <WebCore/CertificateInfo.h>
+#include <wtf/cf/TypeCastsCF.h>
+
+WTF_DECLARE_CF_TYPE_TRAIT(SecCertificate);
+
+using namespace WebCore;
+
+namespace WebKit {
+
+static SecCertificateRef leafCertificate(const CertificateInfo& certificateInfo)
+{
+#if HAVE(SEC_TRUST_SERIALIZATION)
+    if (certificateInfo.type() == CertificateInfo::Type::Trust)
+        return SecTrustGetCertificateAtIndex(certificateInfo.trust(), 0);
+#endif
+    ASSERT(certificateInfo.type() == CertificateInfo::Type::CertificateChain);
+    ASSERT(CFArrayGetCount(certificateInfo.certificateChain()));
+    return checked_cf_cast<SecCertificateRef>(CFArrayGetValueAtIndex(certificateInfo.certificateChain(), 0));
+}
+
+static NSArray *chain(const CertificateInfo& certificateInfo)
+{
+#if HAVE(SEC_TRUST_SERIALIZATION)
+    if (certificateInfo.type() == CertificateInfo::Type::Trust) {
+        CFIndex count = SecTrustGetCertificateCount(certificateInfo.trust());
+        if (count < 2)
+            return nil;
+
+        NSMutableArray *array = [NSMutableArray array];
+        for (CFIndex i = 1; i < count; ++i)
+            [array addObject:(id)SecTrustGetCertificateAtIndex(certificateInfo.trust(), i)];
+
+        return array;
+    }
+#endif
+    ASSERT(certificateInfo.type() == CertificateInfo::Type::CertificateChain);
+    CFIndex chainCount = CFArrayGetCount(certificateInfo.certificateChain());
+    return chainCount > 1 ? [(NSArray *)certificateInfo.certificateChain() subarrayWithRange:NSMakeRange(1, chainCount - 1)] : nil;
+}
+
+WebCredential::WebCredential(WebCertificateInfo* certificateInfo)
+{
+    if (!certificateInfo || certificateInfo->certificateInfo().isEmpty())
+        return;
+
+    // The passed-in certificate chain includes the identity certificate at index 0, and additional certificates starting at index 1.
+    SecIdentityRef identity;
+    OSStatus result = SecIdentityCreateWithCertificate(NULL, leafCertificate(certificateInfo->certificateInfo()), &identity);
+    if (result != errSecSuccess) {
+        LOG_ERROR("Unable to create SecIdentityRef with certificate - %i", result);
+        return;
+    }
+
+    m_coreCredential = Credential([NSURLCredential credentialWithIdentity:identity certificates:chain(certificateInfo->certificateInfo()) persistence:NSURLCredentialPersistenceNone]);
+}
+
+} // namespace WebKit
+
+#endif // PLATFORM(MAC)

Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (231915 => 231916)


--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2018-05-17 19:20:28 UTC (rev 231915)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2018-05-17 19:26:52 UTC (rev 231916)
@@ -1106,7 +1106,6 @@
 		518D2CAE12D5153B003BB93B /* WebBackForwardListItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 518D2CAC12D5153B003BB93B /* WebBackForwardListItem.h */; };
 		518E8EF816B2091C00E91429 /* AuthenticationManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 518E8EF316B2091C00E91429 /* AuthenticationManager.cpp */; };
 		518E8EF916B2091C00E91429 /* AuthenticationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 518E8EF416B2091C00E91429 /* AuthenticationManager.h */; };
-		518E8EFB16B2091C00E91429 /* AuthenticationManager.mac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 518E8EF716B2091C00E91429 /* AuthenticationManager.mac.mm */; };
 		51933DEF1965EB31008AC3EA /* MenuUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 51933DEB1965EB24008AC3EA /* MenuUtilities.h */; };
 		51933DF01965EB31008AC3EA /* MenuUtilities.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51933DEC1965EB24008AC3EA /* MenuUtilities.mm */; };
 		51A4D5A916CAC4FF000E615E /* StatisticsRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51A4D5A816CAC4FF000E615E /* StatisticsRequest.cpp */; };
@@ -1219,6 +1218,7 @@
 		53BA47D01DC2EF5E004DF4AD /* NetworkDataTaskBlob.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 539EB5461DC2EE40009D48CF /* NetworkDataTaskBlob.cpp */; };
 		53BA47D11DC2EF5E004DF4AD /* NetworkDataTaskBlob.h in Headers */ = {isa = PBXBuildFile; fileRef = 539EB5471DC2EE40009D48CF /* NetworkDataTaskBlob.h */; };
 		53DEA3661DDE423100E82648 /* json.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 53DEA3651DDE422E00E82648 /* json.hpp */; };
+		575075A820AB8DE100693EA9 /* WebCredentialMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 575075A720AB763600693EA9 /* WebCredentialMac.mm */; };
 		5760828E2029895E00116678 /* WebCredentialsMessenger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5760828C2029854200116678 /* WebCredentialsMessenger.cpp */; };
 		57608298202BD8BA00116678 /* WebCredentialsMessengerProxy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57608296202BD8BA00116678 /* WebCredentialsMessengerProxy.cpp */; };
 		5760829C202D2C3C00116678 /* WebCredentialsMessengerMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5760829020298FBD00116678 /* WebCredentialsMessengerMessageReceiver.cpp */; };
@@ -3519,7 +3519,6 @@
 		518E8EF316B2091C00E91429 /* AuthenticationManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AuthenticationManager.cpp; path = Authentication/AuthenticationManager.cpp; sourceTree = "<group>"; };
 		518E8EF416B2091C00E91429 /* AuthenticationManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AuthenticationManager.h; path = Authentication/AuthenticationManager.h; sourceTree = "<group>"; };
 		518E8EF516B2091C00E91429 /* AuthenticationManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = AuthenticationManager.messages.in; path = Authentication/AuthenticationManager.messages.in; sourceTree = "<group>"; };
-		518E8EF716B2091C00E91429 /* AuthenticationManager.mac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AuthenticationManager.mac.mm; sourceTree = "<group>"; };
 		51933DEB1965EB24008AC3EA /* MenuUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MenuUtilities.h; sourceTree = "<group>"; };
 		51933DEC1965EB24008AC3EA /* MenuUtilities.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MenuUtilities.mm; sourceTree = "<group>"; };
 		5194B3861F192FB900FA4708 /* CookieStorageUtilsCF.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CookieStorageUtilsCF.h; sourceTree = "<group>"; };
@@ -3659,6 +3658,7 @@
 		539EB5471DC2EE40009D48CF /* NetworkDataTaskBlob.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkDataTaskBlob.h; path = NetworkProcess/NetworkDataTaskBlob.h; sourceTree = "<group>"; };
 		53DEA3651DDE422E00E82648 /* json.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = json.hpp; path = NetworkProcess/capture/json.hpp; sourceTree = "<group>"; };
 		53F3CAA5206C443E0086490E /* NetworkActivityTracker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkActivityTracker.cpp; path = NetworkProcess/NetworkActivityTracker.cpp; sourceTree = "<group>"; };
+		575075A720AB763600693EA9 /* WebCredentialMac.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = WebCredentialMac.mm; sourceTree = "<group>"; };
 		5750F32A2032D4E500389347 /* LocalAuthentication.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = LocalAuthentication.framework; path = System/Library/Frameworks/LocalAuthentication.framework; sourceTree = SDKROOT; };
 		5760828B2029854200116678 /* WebCredentialsMessenger.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebCredentialsMessenger.h; sourceTree = "<group>"; };
 		5760828C2029854200116678 /* WebCredentialsMessenger.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WebCredentialsMessenger.cpp; sourceTree = "<group>"; };
@@ -6527,6 +6527,7 @@
 		512F588D12A8836F00629530 /* Authentication */ = {
 			isa = PBXGroup;
 			children = (
+				575075A620AB75AB00693EA9 /* mac */,
 				512F588E12A8838800629530 /* AuthenticationChallengeProxy.cpp */,
 				512F588F12A8838800629530 /* AuthenticationChallengeProxy.h */,
 				512F589012A8838800629530 /* AuthenticationDecisionListener.cpp */,
@@ -6626,7 +6627,6 @@
 		518E8EF116B208F000E91429 /* Authentication */ = {
 			isa = PBXGroup;
 			children = (
-				518E8EF616B2091C00E91429 /* mac */,
 				518E8EF316B2091C00E91429 /* AuthenticationManager.cpp */,
 				518E8EF416B2091C00E91429 /* AuthenticationManager.h */,
 				518E8EF516B2091C00E91429 /* AuthenticationManager.messages.in */,
@@ -6634,15 +6634,6 @@
 			name = Authentication;
 			sourceTree = "<group>";
 		};
-		518E8EF616B2091C00E91429 /* mac */ = {
-			isa = PBXGroup;
-			children = (
-				518E8EF716B2091C00E91429 /* AuthenticationManager.mac.mm */,
-			);
-			name = mac;
-			path = Authentication/mac;
-			sourceTree = "<group>";
-		};
 		51B15A7D138439B200321AD8 /* unix */ = {
 			isa = PBXGroup;
 			children = (
@@ -6762,6 +6753,14 @@
 			name = capture;
 			sourceTree = "<group>";
 		};
+		575075A620AB75AB00693EA9 /* mac */ = {
+			isa = PBXGroup;
+			children = (
+				575075A720AB763600693EA9 /* WebCredentialMac.mm */,
+			);
+			path = mac;
+			sourceTree = "<group>";
+		};
 		5750F3292032D4E300389347 /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
@@ -10510,7 +10509,6 @@
 				512F589612A8838800629530 /* AuthenticationChallengeProxy.cpp in Sources */,
 				512F589812A8838800629530 /* AuthenticationDecisionListener.cpp in Sources */,
 				518E8EF816B2091C00E91429 /* AuthenticationManager.cpp in Sources */,
-				518E8EFB16B2091C00E91429 /* AuthenticationManager.mac.mm in Sources */,
 				512F58A212A883AD00629530 /* AuthenticationManagerMessageReceiver.cpp in Sources */,
 				9955A6F41C7986DC00EB6A93 /* AutomationBackendDispatchers.cpp in Sources */,
 				99C81D591C20E1E5005C4C82 /* AutomationClient.mm in Sources */,
@@ -10971,6 +10969,7 @@
 				1AB1F7901D1B34A6007C9BD1 /* WebCoreArgumentCodersCocoa.mm in Sources */,
 				BCE23263122C6CF300D5C35A /* WebCoreArgumentCodersMac.mm in Sources */,
 				512F589A12A8838800629530 /* WebCredential.cpp in Sources */,
+				575075A820AB8DE100693EA9 /* WebCredentialMac.mm in Sources */,
 				5760828E2029895E00116678 /* WebCredentialsMessenger.cpp in Sources */,
 				5760829C202D2C3C00116678 /* WebCredentialsMessengerMessageReceiver.cpp in Sources */,
 				57608298202BD8BA00116678 /* WebCredentialsMessengerProxy.cpp in Sources */,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to