| // 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. |
| |
| #ifndef CHROME_BROWSER_UI_VIEWS_PLATFORM_KEYS_CERTIFICATE_SELECTOR_CHROMEOS_H_ |
| #define CHROME_BROWSER_UI_VIEWS_PLATFORM_KEYS_CERTIFICATE_SELECTOR_CHROMEOS_H_ |
| |
| #include <string> |
| |
| #include "base/macros.h" |
| #include "base/memory/ref_counted.h" |
| #include "chrome/browser/ui/platform_keys_certificate_selector_chromeos.h" |
| #include "chrome/browser/ui/views/certificate_selector.h" |
| #include "net/cert/x509_certificate.h" |
| |
| // Chrome should access this certificate selector only through the interface |
| // chrome/browser/ui/platform_keys_certificate_selector_chromeos.h . |
| |
| namespace content { |
| class WebContents; |
| } |
| |
| namespace chromeos { |
| |
| // A certificate selector dialog that explains to the user that an extension |
| // requests access to certificates. |
| class PlatformKeysCertificateSelector : public chrome::CertificateSelector { |
| public: |
| // |callback| must not be null. |
| PlatformKeysCertificateSelector(const net::CertificateList& certificates, |
| const std::string& extension_name, |
| const CertificateSelectedCallback& callback, |
| content::WebContents* web_contents); |
| ~PlatformKeysCertificateSelector() override; |
| |
| void Init(); |
| |
| // chrome::CertificateSelector: |
| bool Cancel() override; |
| void AcceptCertificate( |
| std::unique_ptr<net::ClientCertIdentity> identity) override; |
| |
| private: |
| const std::string extension_name_; |
| |
| // Will be reset to null after it was run. |
| CertificateSelectedCallback callback_; |
| |
| DISALLOW_COPY_AND_ASSIGN(PlatformKeysCertificateSelector); |
| }; |
| |
| } // namespace chromeos |
| |
| #endif // CHROME_BROWSER_UI_VIEWS_PLATFORM_KEYS_CERTIFICATE_SELECTOR_CHROMEOS_H_ |