Index: chrome/browser/ui/cocoa/certificate_viewer.mm |
diff --git a/chrome/browser/ui/cocoa/certificate_viewer.mm b/chrome/browser/ui/cocoa/certificate_viewer.mm |
index 8c5a9545dc075aafb18db35b6cb6b71d41e1f9dc..f91459cdac52612c05c0bfd6d9ccccc53d8c4727 100644 |
--- a/chrome/browser/ui/cocoa/certificate_viewer.mm |
+++ b/chrome/browser/ui/cocoa/certificate_viewer.mm |
@@ -9,37 +9,22 @@ |
#include <vector> |
-#include "base/logging.h" |
+#include "base/mac/mac_util.h" |
#include "base/mac/scoped_cftyperef.h" |
#include "net/base/x509_certificate.h" |
void ShowCertificateViewer(gfx::NativeWindow parent, |
net::X509Certificate* cert) { |
- SecCertificateRef cert_mac = cert->os_cert_handle(); |
- if (!cert_mac) |
- return; |
- |
- base::mac::ScopedCFTypeRef<CFMutableArrayRef> certificates( |
- CFArrayCreateMutable(kCFAllocatorDefault, 0, &kCFTypeArrayCallBacks)); |
- if (!certificates.get()) { |
- NOTREACHED(); |
- return; |
- } |
- CFArrayAppendValue(certificates, cert_mac); |
- |
- // Server certificate must be first in the array; subsequent certificates |
- // in the chain can be in any order. |
- const std::vector<SecCertificateRef>& ca_certs = |
- cert->GetIntermediateCertificates(); |
- for (size_t i = 0; i < ca_certs.size(); ++i) |
- CFArrayAppendValue(certificates, ca_certs[i]); |
+ base::mac::ScopedCFTypeRef<CFArrayRef> certificates( |
+ cert->CreateOSCertListHandle()); |
+ NSArray* certificates = base::mac::CFToNSCast(certificates.get()); |
[[[SFCertificatePanel alloc] init] |
beginSheetForWindow:parent |
modalDelegate:nil |
didEndSelector:NULL |
contextInfo:NULL |
- certificates:reinterpret_cast<NSArray*>(certificates.get()) |
+ certificates:certificates |
showGroup:YES]; |
// The SFCertificatePanel releases itself when the sheet is dismissed. |
} |