Index: chrome/browser/ui/views/platform_keys_certificate_selector_chromeos.cc |
diff --git a/chrome/browser/ui/views/platform_keys_certificate_selector_chromeos.cc b/chrome/browser/ui/views/platform_keys_certificate_selector_chromeos.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b5203cad879eb628e5162ff3b4ad09f2ab892d7b |
--- /dev/null |
+++ b/chrome/browser/ui/views/platform_keys_certificate_selector_chromeos.cc |
@@ -0,0 +1,61 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/ui/views/platform_keys_certificate_selector_chromeos.h" |
+ |
+#include "base/memory/ref_counted.h" |
+#include "base/strings/string16.h" |
+#include "base/strings/utf_string_conversions.h" |
+#include "chrome/grit/generated_resources.h" |
+#include "ui/base/l10n/l10n_util.h" |
+ |
+namespace chromeos { |
+ |
+PlatformKeysCertificateSelector::PlatformKeysCertificateSelector( |
+ const net::CertificateList& certificates, |
+ const std::string& extension_name, |
+ const CertificateSelectedCallback& callback, |
+ content::WebContents* web_contents) |
+ : CertificateSelector(certificates, web_contents), |
+ extension_name_(extension_name), |
+ callback_(callback) { |
+} |
+ |
+PlatformKeysCertificateSelector::~PlatformKeysCertificateSelector() { |
+} |
+ |
+void PlatformKeysCertificateSelector::Init() { |
+ const base::string16 text = |
+ l10n_util::GetStringFUTF16(IDS_PLATFORM_KEYS_SELECT_CERT_DIALOG_TEXT, |
+ base::ASCIIToUTF16(extension_name_)); |
+ CertificateSelector::InitWithText(text); |
+} |
+ |
+bool PlatformKeysCertificateSelector::Cancel() { |
+ callback_.Run(nullptr); |
+ return true; |
+} |
+ |
+bool PlatformKeysCertificateSelector::Accept() { |
+ scoped_refptr<net::X509Certificate> cert = GetSelectedCert(); |
+ if (!cert) |
+ return false; |
+ callback_.Run(cert); |
+ return true; |
+} |
+ |
+void ShowPlatformKeysCertificateSelector( |
+ content::WebContents* web_contents, |
+ const std::string& extension_name, |
+ const net::CertificateList& certificates, |
+ const base::Callback<void(const scoped_refptr<net::X509Certificate>&)>& |
+ callback) { |
+ PlatformKeysCertificateSelector* selector = |
+ new PlatformKeysCertificateSelector(certificates, extension_name, |
+ callback, web_contents); |
+ selector->Init(); |
+ selector->Show(); |
+} |
+ |
+} // namespace chromeos |