summaryrefslogtreecommitdiffstats
path: root/chromium/net/cert/cert_database_nss.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/cert/cert_database_nss.cc')
-rw-r--r--chromium/net/cert/cert_database_nss.cc19
1 files changed, 9 insertions, 10 deletions
diff --git a/chromium/net/cert/cert_database_nss.cc b/chromium/net/cert/cert_database_nss.cc
index a1677fe85a1..9819dded6cb 100644
--- a/chromium/net/cert/cert_database_nss.cc
+++ b/chromium/net/cert/cert_database_nss.cc
@@ -23,13 +23,9 @@ namespace net {
// the given CertDatabase.
class CertDatabase::Notifier : public NSSCertDatabase::Observer {
public:
- explicit Notifier(CertDatabase* cert_db) : cert_db_(cert_db) {
- NSSCertDatabase::GetInstance()->AddObserver(this);
- }
+ explicit Notifier(CertDatabase* cert_db) : cert_db_(cert_db) {}
- virtual ~Notifier() {
- NSSCertDatabase::GetInstance()->RemoveObserver(this);
- }
+ virtual ~Notifier() {}
// NSSCertDatabase::Observer implementation:
virtual void OnCertAdded(const X509Certificate* cert) OVERRIDE {
@@ -51,10 +47,9 @@ class CertDatabase::Notifier : public NSSCertDatabase::Observer {
};
CertDatabase::CertDatabase()
- : observer_list_(new ObserverListThreadSafe<Observer>) {
- // Observe NSSCertDatabase events and forward them to observers of
- // CertDatabase. This also makes sure that NSS has been initialized.
- notifier_.reset(new Notifier(this));
+ : observer_list_(new ObserverListThreadSafe<Observer>),
+ notifier_(new Notifier(this)) {
+ crypto::EnsureNSSInit();
}
CertDatabase::~CertDatabase() {}
@@ -109,4 +104,8 @@ int CertDatabase::AddUserCert(X509Certificate* cert_obj) {
return OK;
}
+void CertDatabase::ObserveNSSCertDatabase(NSSCertDatabase* source) {
+ source->AddObserver(this->notifier_.get());
+}
+
} // namespace net