Changeset 200816 in webkit
- Timestamp:
- May 12, 2016, 11:37:09 PM (9 years ago)
- Location:
- branches/safari-602.1.32-branch/Source
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-602.1.32-branch/Source/WTF/ChangeLog
r200568 r200816 1 2016-05-12 Babak Shafiei <bshafiei@apple.com> 2 3 Roll out r200463. 4 1 5 2016-05-08 Chris Dumez <cdumez@apple.com> 2 6 -
branches/safari-602.1.32-branch/Source/WTF/wtf/Platform.h
r200568 r200816 1147 1147 #endif 1148 1148 1149 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 100000)1150 #define HAVE_SEC_TRUST_SERIALIZATION 11151 #endif1152 1149 1153 1150 #if !defined(WTF_DEFAULT_EVENT_LOOP) -
branches/safari-602.1.32-branch/Source/WTF/wtf/spi/cocoa/SecuritySPI.h
r200463 r200816 31 31 #include <Security/SecCertificatePriv.h> 32 32 #include <Security/SecTask.h> 33 #include <Security/SecTrustPriv.h>34 33 35 34 #else … … 59 58 EXTERN_C CFTypeRef SecTaskCopyValueForEntitlement(SecTaskRef, CFStringRef entitlement, CFErrorRef *); 60 59 61 #if HAVE(SEC_TRUST_SERIALIZATION)62 EXTERN_C CF_RETURNS_RETAINED CFDataRef SecTrustSerialize(SecTrustRef, CFErrorRef *);63 EXTERN_C CF_RETURNS_RETAINED SecTrustRef SecTrustDeserialize(CFDataRef serializedTrust, CFErrorRef *);64 #endif65 66 60 #endif // SecuritySPI_h -
branches/safari-602.1.32-branch/Source/WebCore/ChangeLog
r200815 r200816 1 2016-05-12 Babak Shafiei <bshafiei@apple.com> 2 3 Roll out r200463. 4 1 5 2016-05-12 Babak Shafiei <bshafiei@apple.com> 2 6 -
branches/safari-602.1.32-branch/Source/WebCore/platform/network/cf/CertificateInfo.h
r200815 r200816 30 30 #include <wtf/RetainPtr.h> 31 31 32 #if HAVE(SEC_TRUST_SERIALIZATION)33 #include <Security/SecTrust.h>34 #endif35 36 32 namespace WebCore { 37 33 38 34 class CertificateInfo { 39 35 public: 40 CertificateInfo() = default; 41 42 enum class Type { 43 None, 44 CertificateChain, 45 #if HAVE(SEC_TRUST_SERIALIZATION) 46 Trust, 47 #endif 48 }; 36 CertificateInfo() { } 37 CertificateInfo(RetainPtr<CFArrayRef> certificateChain) 38 : m_certificateChain(certificateChain) 39 { } 49 40 50 #if HAVE(SEC_TRUST_SERIALIZATION) 51 explicit CertificateInfo(RetainPtr<SecTrustRef>&& trust) 52 : m_trust(WTFMove(trust)) 53 { 54 } 55 56 SecTrustRef trust() const { return m_trust.get(); } 57 #endif 41 void setCertificateChain(CFArrayRef certificateChain) { m_certificateChain = certificateChain; } 42 CFArrayRef certificateChain() const { return m_certificateChain.get(); } 58 43 59 CertificateInfo(RetainPtr<CFArrayRef>&& certificateChain)60 : m_certificateChain(WTFMove(certificateChain))61 {62 }63 64 WEBCORE_EXPORT CFArrayRef certificateChain() const;65 66 WEBCORE_EXPORT Type type() const;67 44 WEBCORE_EXPORT bool containsNonRootSHA1SignedCertificate() const; 68 69 bool isEmpty() const { return type() == Type::None; }70 71 #if PLATFORM(COCOA)72 static RetainPtr<CFArrayRef> certificateChainFromSecTrust(SecTrustRef);73 #endif74 45 75 46 #ifndef NDEBUG … … 78 49 79 50 private: 80 #if HAVE(SEC_TRUST_SERIALIZATION) 81 RetainPtr<SecTrustRef> m_trust; 82 #endif 83 mutable RetainPtr<CFArrayRef> m_certificateChain; 51 RetainPtr<CFArrayRef> m_certificateChain; 84 52 }; 85 53 86 54 } 55 87 56 #endif -
branches/safari-602.1.32-branch/Source/WebCore/platform/network/cocoa/ResourceResponseCocoa.mm
r200463 r200816 100 100 } 101 101 102 #if HAVE(SEC_TRUST_SERIALIZATION) 103 return CertificateInfo(trust); 104 #else 105 return CertificateInfo(CertificateInfo::certificateChainFromSecTrust(trust)); 106 #endif 102 CFIndex count = SecTrustGetCertificateCount(trust); 103 auto certificateChain = CFArrayCreateMutable(0, count, &kCFTypeArrayCallBacks); 104 for (CFIndex i = 0; i < count; i++) 105 CFArrayAppendValue(certificateChain, SecTrustGetCertificateAtIndex(trust, i)); 106 107 return CertificateInfo(adoptCF(certificateChain)); 107 108 } 108 109 -
branches/safari-602.1.32-branch/Source/WebCore/platform/network/mac/CertificateInfoMac.mm
r200463 r200816 32 32 namespace WebCore { 33 33 34 #if PLATFORM(COCOA)35 RetainPtr<CFArrayRef> CertificateInfo::certificateChainFromSecTrust(SecTrustRef trust)36 {37 auto count = SecTrustGetCertificateCount(trust);38 auto certificateChain = CFArrayCreateMutable(0, count, &kCFTypeArrayCallBacks);39 for (CFIndex i = 0; i < count; i++)40 CFArrayAppendValue(certificateChain, SecTrustGetCertificateAtIndex(trust, i));41 return adoptCF((CFArrayRef)certificateChain);42 }43 #endif44 45 CertificateInfo::Type CertificateInfo::type() const46 {47 #if HAVE(SEC_TRUST_SERIALIZATION)48 if (m_trust)49 return Type::Trust;50 #endif51 if (m_certificateChain)52 return Type::CertificateChain;53 return Type::None;54 }55 56 CFArrayRef CertificateInfo::certificateChain() const57 {58 #if HAVE(SEC_TRUST_SERIALIZATION)59 if (m_certificateChain)60 return m_certificateChain.get();61 62 if (m_trust)63 m_certificateChain = CertificateInfo::certificateChainFromSecTrust(m_trust.get());64 #endif65 66 return m_certificateChain.get();67 }68 69 34 bool CertificateInfo::containsNonRootSHA1SignedCertificate() const 70 35 { 71 #if HAVE(SEC_TRUST_SERIALIZATION) 72 if (m_trust) { 73 // Allow only the root certificate (the last in the chain) to be SHA1. 74 for (CFIndex i = 0, size = SecTrustGetCertificateCount(trust()) - 1; i < size; ++i) { 75 auto certificate = SecTrustGetCertificateAtIndex(trust(), i); 76 if (SecCertificateGetSignatureHashAlgorithm(certificate) == kSecSignatureHashAlgorithmSHA1) 77 return true; 78 } 36 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) || PLATFORM(IOS) 37 if (!m_certificateChain) 38 return false; 79 39 80 return false; 40 for (CFIndex i = 0, size = CFArrayGetCount(m_certificateChain.get()) - 1; i < size; ++i) { 41 SecCertificateRef certificate = (SecCertificateRef)CFArrayGetValueAtIndex(m_certificateChain.get(), i); 42 if (SecCertificateGetSignatureHashAlgorithm(certificate) == kSecSignatureHashAlgorithmSHA1) 43 return true; 81 44 } 82 #endif 83 84 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) || PLATFORM(IOS) 85 if (m_certificateChain) { 86 // Allow only the root certificate (the last in the chain) to be SHA1. 87 for (CFIndex i = 0, size = CFArrayGetCount(m_certificateChain.get()) - 1; i < size; ++i) { 88 auto certificate = (SecCertificateRef)CFArrayGetValueAtIndex(m_certificateChain.get(), i); 89 if (SecCertificateGetSignatureHashAlgorithm(certificate) == kSecSignatureHashAlgorithmSHA1) 90 return true; 91 } 92 return false; 93 } 45 return false; 94 46 #else 95 47 notImplemented(); 48 return false; 96 49 #endif 97 98 return false;99 50 } 100 51 … … 102 53 void CertificateInfo::dump() const 103 54 { 104 #if HAVE(SEC_TRUST_SERIALIZATION) 105 if (m_trust) { 106 CFIndex entries = SecTrustGetCertificateCount(trust()); 55 unsigned entries = m_certificateChain ? CFArrayGetCount(m_certificateChain.get()) : 0; 107 56 108 NSLog(@"CertificateInfo SecTrust\n"); 109 NSLog(@" Entries: %ld\n", entries); 110 for (CFIndex i = 0; i < entries; ++i) { 111 RetainPtr<CFStringRef> summary = adoptCF(SecCertificateCopySubjectSummary(SecTrustGetCertificateAtIndex(trust(), i))); 112 NSLog(@" %@", (NSString *)summary.get()); 113 } 114 115 return; 57 NSLog(@"CertificateInfo\n"); 58 NSLog(@" Entries: %d\n", entries); 59 for (unsigned i = 0; i < entries; ++i) { 60 RetainPtr<CFStringRef> summary = adoptCF(SecCertificateCopySubjectSummary((SecCertificateRef)CFArrayGetValueAtIndex(m_certificateChain.get(), i))); 61 NSLog(@" %@", (NSString *)summary.get()); 116 62 } 117 #endif118 if (m_certificateChain) {119 CFIndex entries = CFArrayGetCount(m_certificateChain.get());120 121 NSLog(@"CertificateInfo (Certificate Chain)\n");122 NSLog(@" Entries: %ld\n", entries);123 for (CFIndex i = 0; i < entries; ++i) {124 RetainPtr<CFStringRef> summary = adoptCF(SecCertificateCopySubjectSummary((SecCertificateRef)CFArrayGetValueAtIndex(m_certificateChain.get(), i)));125 NSLog(@" %@", (NSString *)summary.get());126 }127 128 return;129 }130 131 NSLog(@"CertificateInfo (Empty)\n");132 63 } 133 64 #endif -
branches/safari-602.1.32-branch/Source/WebKit2/ChangeLog
r200591 r200816 1 2016-05-12 Babak Shafiei <bshafiei@apple.com> 2 3 Roll out r200463. 4 1 5 2016-05-09 Anders Carlsson <andersca@apple.com> 2 6 -
branches/safari-602.1.32-branch/Source/WebKit2/Shared/API/c/mac/WKCertificateInfoMac.h
r200463 r200816 28 28 29 29 #include <CoreFoundation/CoreFoundation.h> 30 #include <Security/SecTrust.h>31 30 #include <WebKit/WKBase.h> 32 31 … … 36 35 37 36 WK_EXPORT WKCertificateInfoRef WKCertificateInfoCreateWithCertficateChain(CFArrayRef certificateChain); 38 WK_EXPORT SecTrustRef WKCertificateInfoGetServerTrust(WKCertificateInfoRef certificateInfo);39 40 // Deprecated41 37 WK_EXPORT CFArrayRef WKCertificateInfoGetCertificateChain(WKCertificateInfoRef certificateInfo); 42 38 -
branches/safari-602.1.32-branch/Source/WebKit2/Shared/API/c/mac/WKCertificateInfoMac.mm
r200463 r200816 43 43 return toImpl(certificateInfoRef)->certificateInfo().certificateChain(); 44 44 } 45 46 SecTrustRef WKCertificateInfoGetServerTrust(WKCertificateInfoRef certificateInfoRef)47 {48 #if HAVE(SEC_TRUST_SERIALIZATION)49 return toImpl(certificateInfoRef)->certificateInfo().trust();50 #else51 return nullptr;52 #endif53 } -
branches/safari-602.1.32-branch/Source/WebKit2/Shared/Authentication/mac/AuthenticationManager.mac.mm
r200463 r200816 37 37 namespace WebKit { 38 38 39 static SecCertificateRef leafCertificate(const CertificateInfo& certificateInfo)40 {41 #if HAVE(SEC_TRUST_SERIALIZATION)42 return SecTrustGetCertificateAtIndex(certificateInfo.trust(), 0);43 #else44 ASSERT(CFArrayGetCount(certificateInfo.certificateChain()));45 return (SecCertificateRef)CFArrayGetValueAtIndex(certificateInfo.certificateChain(), 0);46 #endif47 }48 49 static NSArray *chain(const CertificateInfo& certificateInfo)50 {51 #if HAVE(SEC_TRUST_SERIALIZATION)52 CFIndex count = SecTrustGetCertificateCount(certificateInfo.trust());53 if (count < 2)54 return nil;55 56 NSMutableArray *array = [NSMutableArray array];57 for (CFIndex i = 1; i < count; ++i)58 [array addObject:(id)SecTrustGetCertificateAtIndex(certificateInfo.trust(), i)];59 60 return array;61 #else62 CFIndex chainCount = CFArrayGetCount(certificateInfo.certificateChain());63 return chainCount > 1 ? [(NSArray *)certificateInfo.certificateChain() subarrayWithRange:NSMakeRange(1, chainCount - 1)] : nil;64 #endif65 }66 67 68 39 // FIXME: This function creates an identity from a certificate, which should not be needed. We should pass an identity over IPC (as we do on iOS). 69 40 bool AuthenticationManager::tryUseCertificateInfoForChallenge(const AuthenticationChallenge& challenge, const CertificateInfo& certificateInfo, ChallengeCompletionHandler completionHandler) 70 41 { 71 if (certificateInfo.isEmpty()) 42 CFArrayRef chain = certificateInfo.certificateChain(); 43 if (!chain) 72 44 return false; 45 46 ASSERT(CFArrayGetCount(chain)); 73 47 74 48 // The passed-in certificate chain includes the identity certificate at index 0, and additional certificates starting at index 1. 75 49 SecIdentityRef identity; 76 OSStatus result = SecIdentityCreateWithCertificate(NULL, leafCertificate(certificateInfo), &identity);50 OSStatus result = SecIdentityCreateWithCertificate(NULL, (SecCertificateRef)CFArrayGetValueAtIndex(chain, 0), &identity); 77 51 if (result != errSecSuccess) { 78 52 LOG_ERROR("Unable to create SecIdentityRef with certificate - %i", result); … … 84 58 } 85 59 86 NSURLCredential *credential = [NSURLCredential credentialWithIdentity:identity certificates:chain(certificateInfo) persistence:NSURLCredentialPersistenceNone]; 60 CFIndex chainCount = CFArrayGetCount(chain); 61 NSArray *nsChain = chainCount > 1 ? [(NSArray *)chain subarrayWithRange:NSMakeRange(1, chainCount - 1)] : nil; 62 63 NSURLCredential *credential = [NSURLCredential credentialWithIdentity:identity 64 certificates:nsChain 65 persistence:NSURLCredentialPersistenceNone]; 66 87 67 if (completionHandler) 88 68 completionHandler(AuthenticationChallengeDisposition::UseCredential, Credential(credential)); -
branches/safari-602.1.32-branch/Source/WebKit2/Shared/cf/ArgumentCodersCF.cpp
r200463 r200816 32 32 #include <WebCore/CFURLExtras.h> 33 33 #include <wtf/Vector.h> 34 #include <wtf/spi/cocoa/SecuritySPI.h>35 34 36 35 #if USE(FOUNDATION) … … 88 87 #if HAVE(SEC_ACCESS_CONTROL) 89 88 SecAccessControl, 90 #endif91 #if HAVE(SEC_TRUST_SERIALIZATION)92 SecTrust,93 89 #endif 94 90 Null, … … 134 130 return SecAccessControl; 135 131 #endif 136 #if HAVE(SEC_TRUST_SERIALIZATION)137 if (typeID == SecTrustGetTypeID())138 return SecTrust;139 #endif140 132 141 133 ASSERT_NOT_REACHED(); … … 189 181 case SecAccessControl: 190 182 encode(encoder, (SecAccessControlRef)typeRef); 191 return;192 #endif193 #if HAVE(SEC_TRUST_SERIALIZATION)194 case SecTrust:195 encode(encoder, (SecTrustRef)typeRef);196 183 return; 197 184 #endif … … 300 287 return false; 301 288 result = adoptCF(accessControl.leakRef()); 302 return true;303 }304 #endif305 #if HAVE(SEC_TRUST_SERIALIZATION)306 case SecTrust: {307 RetainPtr<SecTrustRef> trust;308 if (!decode(decoder, trust))309 return false;310 result = adoptCF(trust.leakRef());311 289 return true; 312 290 } … … 764 742 return true; 765 743 } 766 #endif 767 768 #if HAVE(SEC_TRUST_SERIALIZATION) 769 void encode(ArgumentEncoder& encoder, SecTrustRef trust) 770 { 771 auto data = adoptCF(SecTrustSerialize(trust, nullptr)); 772 if (!data) { 773 encoder << false; 774 return; 775 } 776 777 encoder << true; 778 IPC::encode(encoder, data.get()); 779 } 780 781 bool decode(ArgumentDecoder& decoder, RetainPtr<SecTrustRef>& result) 782 { 783 bool hasTrust; 784 if (!decoder.decode(hasTrust)) 785 return false; 786 787 if (!hasTrust) 788 return true; 789 790 RetainPtr<CFDataRef> trustData; 791 if (!IPC::decode(decoder, trustData)) 792 return false; 793 794 auto trust = adoptCF(SecTrustDeserialize(trustData.get(), nullptr)); 795 if (!trust) 796 return false; 797 798 result = WTFMove(trust); 799 return true; 800 } 744 801 745 #endif 802 746 -
branches/safari-602.1.32-branch/Source/WebKit2/Shared/cf/ArgumentCodersCF.h
r200463 r200816 28 28 29 29 #include <Security/SecCertificate.h> 30 #include <Security/SecTrust.h>31 30 #include <wtf/RetainPtr.h> 32 31 … … 96 95 #endif 97 96 98 #if HAVE(SEC_TRUST_SERIALIZATION)99 // SecTrustRef100 void encode(ArgumentEncoder&, SecTrustRef);101 bool decode(ArgumentDecoder&, RetainPtr<SecTrustRef>&);102 #endif103 104 97 #if PLATFORM(IOS) 105 98 void setAllowsDecodingSecKeyRef(bool); -
branches/safari-602.1.32-branch/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm
r200463 r200816 164 164 void ArgumentCoder<CertificateInfo>::encode(ArgumentEncoder& encoder, const CertificateInfo& certificateInfo) 165 165 { 166 encoder.encodeEnum(certificateInfo.type()); 167 168 switch (certificateInfo.type()) { 169 #if HAVE(SEC_TRUST_SERIALIZATION) 170 case CertificateInfo::Type::Trust: 171 IPC::encode(encoder, certificateInfo.trust()); 172 break; 173 #endif 174 case CertificateInfo::Type::CertificateChain: 175 IPC::encode(encoder, certificateInfo.certificateChain()); 176 break; 177 case CertificateInfo::Type::None: 178 // Do nothing. 179 break; 180 } 166 CFArrayRef certificateChain = certificateInfo.certificateChain(); 167 if (!certificateChain) { 168 encoder << false; 169 return; 170 } 171 172 encoder << true; 173 IPC::encode(encoder, certificateChain); 181 174 } 182 175 183 176 bool ArgumentCoder<CertificateInfo>::decode(ArgumentDecoder& decoder, CertificateInfo& certificateInfo) 184 177 { 185 CertificateInfo::Type certificateInfoType; 186 if (!decoder.decodeEnum(certificateInfoType)) 187 return false; 188 189 switch (certificateInfoType) { 190 #if HAVE(SEC_TRUST_SERIALIZATION) 191 case CertificateInfo::Type::Trust: { 192 RetainPtr<SecTrustRef> trust; 193 if (!IPC::decode(decoder, trust)) 194 return false; 195 196 certificateInfo = CertificateInfo(WTFMove(trust)); 178 bool hasCertificateChain; 179 if (!decoder.decode(hasCertificateChain)) 180 return false; 181 182 if (!hasCertificateChain) 197 183 return true; 198 } 199 #endif 200 case CertificateInfo::Type::CertificateChain: { 201 RetainPtr<CFArrayRef> certificateChain; 202 if (!IPC::decode(decoder, certificateChain)) 203 return false; 204 205 certificateInfo = CertificateInfo(WTFMove(certificateChain)); 206 return true; 207 } 208 case CertificateInfo::Type::None: 209 // Do nothing. 210 break; 211 } 184 185 RetainPtr<CFArrayRef> certificateChain; 186 if (!IPC::decode(decoder, certificateChain)) 187 return false; 188 189 certificateInfo.setCertificateChain(certificateChain.get()); 212 190 213 191 return true; … … 242 220 243 221 CFDictionarySetValue(filteredUserInfo.get(), @"NSErrorClientCertificateChainKey", clientIdentityAndCertificates); 244 } 222 }; 223 224 IPC::encode(encoder, filteredUserInfo.get()); 245 225 246 226 id peerCertificateChain = [userInfo objectForKey:@"NSErrorPeerCertificateChainKey"]; … … 254 234 } 255 235 ASSERT(!peerCertificateChain || [peerCertificateChain isKindOfClass:[NSArray class]]); 256 if (peerCertificateChain) 257 CFDictionarySetValue(filteredUserInfo.get(), @"NSErrorPeerCertificateChainKey", peerCertificateChain); 258 259 #if HAVE(SEC_TRUST_SERIALIZATION) 260 if (SecTrustRef peerTrust = (SecTrustRef)[userInfo objectForKey:NSURLErrorFailingURLPeerTrustErrorKey]) 261 CFDictionarySetValue(filteredUserInfo.get(), NSURLErrorFailingURLPeerTrustErrorKey, peerTrust); 262 #endif 263 264 IPC::encode(encoder, filteredUserInfo.get()); 236 encoder << CertificateInfo((CFArrayRef)peerCertificateChain); 265 237 266 238 if (id underlyingError = [userInfo objectForKey:NSUnderlyingErrorKey]) { … … 297 269 if (!IPC::decode(decoder, userInfo)) 298 270 return false; 271 272 CertificateInfo certificate; 273 if (!decoder.decode(certificate)) 274 return false; 275 276 if (certificate.certificateChain()) { 277 userInfo = adoptCF(CFDictionaryCreateMutableCopy(kCFAllocatorDefault, CFDictionaryGetCount(userInfo.get()) + 1, userInfo.get())); 278 CFDictionarySetValue((CFMutableDictionaryRef)userInfo.get(), CFSTR("NSErrorPeerCertificateChainKey"), (CFArrayRef)certificate.certificateChain()); 279 } 299 280 300 281 bool hasUnderlyingError = false; -
branches/safari-602.1.32-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.h
r200463 r200816 165 165 @property (nonatomic, readonly) BOOL hasOnlySecureContent; 166 166 167 /*! @abstract A SecTrustRef for the currently committed navigation. 168 @discussion @link WKWebView @/link is key-value observing (KVO) compliant 169 for this property. 170 */ 171 @property (nonatomic, readonly, nullable) SecTrustRef serverTrust WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA); 167 /*! @abstract An array of SecCertificateRef objects forming the certificate 168 chain for the currently committed navigation. 169 @discussion The certificates are ordered from leaf (at index 0) to anchor. 170 @link WKWebView @/link is key-value observing (KVO) compliant for this property. 171 */ 172 @property (nonatomic, readonly, copy) NSArray *certificateChain WK_AVAILABLE(10_11, 9_0); 172 173 173 174 /*! @abstract A Boolean value indicating whether there is a back item in … … 305 306 #endif 306 307 307 @interface WKWebView (WKDeprecated)308 309 @property (nonatomic, readonly, copy) NSArray *certificateChain WK_DEPRECATED(10_11, WK_MAC_TBA, 9_0, WK_IOS_TBA, "Please use serverTrust");310 311 @end312 313 308 NS_ASSUME_NONNULL_END 314 309 -
branches/safari-602.1.32-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm
r200470 r200816 725 725 } 726 726 727 - (SecTrustRef)serverTrust 728 { 729 #if HAVE(SEC_TRUST_SERIALIZATION) 727 - (NSArray *)certificateChain 728 { 730 729 auto certificateInfo = _page->pageLoadState().certificateInfo(); 731 730 if (!certificateInfo) 732 return nil; 733 734 return certificateInfo->certificateInfo().trust(); 735 #else 736 return nil; 737 #endif 731 return @[ ]; 732 733 return (NSArray *)certificateInfo->certificateInfo().certificateChain() ?: @[ ]; 738 734 } 739 735 … … 4577 4573 #endif 4578 4574 4579 @implementation WKWebView (WKDeprecated)4580 4581 - (NSArray *)certificateChain4582 {4583 auto certificateInfo = _page->pageLoadState().certificateInfo();4584 if (!certificateInfo)4585 return @[ ];4586 4587 return (NSArray *)certificateInfo->certificateInfo().certificateChain() ?: @[ ];4588 }4589 4590 @end4591 4592 4575 #if PLATFORM(IOS) && USE(APPLE_INTERNAL_SDK) 4593 4576 #import <WebKitAdditions/WKWebViewAdditions.mm> -
branches/safari-602.1.32-branch/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm
r200463 r200816 903 903 void NavigationState::willChangeCertificateInfo() 904 904 { 905 [m_webView willChangeValueForKey:@"serverTrust"];906 905 [m_webView willChangeValueForKey:@"certificateChain"]; 907 906 } … … 910 909 { 911 910 [m_webView didChangeValueForKey:@"certificateChain"]; 912 [m_webView didChangeValueForKey:@"serverTrust"];913 911 } 914 912 -
branches/safari-602.1.32-branch/Source/WebKit2/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm
r200591 r200816 150 150 } 151 151 152 - (SecTrustRef)_serverTrust153 {154 #if HAVE(SEC_TRUST_SERIALIZATION)155 return _frame->certificateInfo().trust();156 #else157 return nil;158 #endif159 }160 161 152 - (NSURL *)_provisionalURL 162 153 { -
branches/safari-602.1.32-branch/Source/WebKit2/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h
r200463 r200816 38 38 @property (nonatomic, readonly) BOOL _hasCustomContentProvider; 39 39 @property (nonatomic, readonly) NSArray *_certificateChain; 40 @property (nonatomic, readonly) SecTrustRef _serverTrust;41 40 @property (nonatomic, readonly) NSURL *_provisionalURL; 42 41
Note:
See TracChangeset
for help on using the changeset viewer.