| Index: chrome/browser/chromeos/net/client_cert_store_chromeos.h
|
| diff --git a/chrome/browser/chromeos/net/client_cert_store_chromeos.h b/chrome/browser/chromeos/net/client_cert_store_chromeos.h
|
| index 52bd2c7034b31049a5d7f0c1ac11687f0054be87..d930899c56990fd401a2479ecd038ed9e3b9e11e 100644
|
| --- a/chrome/browser/chromeos/net/client_cert_store_chromeos.h
|
| +++ b/chrome/browser/chromeos/net/client_cert_store_chromeos.h
|
| @@ -6,16 +6,22 @@
|
| #define CHROME_BROWSER_CHROMEOS_NET_CLIENT_CERT_STORE_CHROMEOS_H_
|
|
|
| #include <string>
|
| +#include <vector>
|
|
|
| +#include "base/macros.h"
|
| +#include "base/memory/ref_counted.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "net/ssl/client_cert_store_nss.h"
|
|
|
| namespace net {
|
| class X509Certificate;
|
| +typedef std::vector<scoped_refptr<X509Certificate>> CertificateList;
|
| }
|
|
|
| namespace chromeos {
|
|
|
| +class CertificateProvider;
|
| +
|
| class ClientCertStoreChromeOS : public net::ClientCertStoreNSS {
|
| public:
|
| class CertFilter {
|
| @@ -35,9 +41,11 @@ class ClientCertStoreChromeOS : public net::ClientCertStoreNSS {
|
| const scoped_refptr<net::X509Certificate>& cert) const = 0;
|
| };
|
|
|
| - // This ClientCertStore will return only client certs that pass the filter
|
| - // |cert_filter|.
|
| + // This ClientCertStore will return client certs from NSS certificate
|
| + // databases that pass the filter |cert_filter| and additionally return
|
| + // certificates provided by |cert_provider|.
|
| ClientCertStoreChromeOS(
|
| + scoped_ptr<CertificateProvider> cert_provider,
|
| scoped_ptr<CertFilter> cert_filter,
|
| const PasswordDelegateFactory& password_delegate_factory);
|
| ~ClientCertStoreChromeOS() override;
|
| @@ -55,10 +63,15 @@ class ClientCertStoreChromeOS : public net::ClientCertStoreNSS {
|
| net::CertificateList* selected_certs) override;
|
|
|
| private:
|
| - void CertFilterInitialized(const net::SSLCertRequestInfo* request,
|
| - net::CertificateList* selected_certs,
|
| - const base::Closure& callback);
|
| + void SetAdditionalCerts(const base::Closure& callback,
|
| + const net::CertificateList& certs);
|
| +
|
| + void GetClientCertsAfterInit(const net::SSLCertRequestInfo* request,
|
| + net::CertificateList* selected_certs,
|
| + const base::Closure& callback);
|
|
|
| + scoped_ptr<CertificateProvider> cert_provider_;
|
| + net::CertificateList additional_certs_;
|
| scoped_ptr<CertFilter> cert_filter_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ClientCertStoreChromeOS);
|
|
|