Index: chrome/browser/certificate_manager_model.cc |
diff --git a/chrome/browser/certificate_manager_model.cc b/chrome/browser/certificate_manager_model.cc |
index e932883638c538e2f7b5fbd667894bb568b770e5..141f91c7e09b1aff49835f730e94881c716a83fa 100644 |
--- a/chrome/browser/certificate_manager_model.cc |
+++ b/chrome/browser/certificate_manager_model.cc |
@@ -8,10 +8,12 @@ |
#include "base/i18n/time_formatting.h" |
#include "base/logging.h" |
#include "base/strings/utf_string_conversions.h" |
-#include "chrome/browser/net/nss_context.h" |
+#include "chrome/browser/net/cert_database_service_factory.h" |
#include "chrome/browser/ui/crypto_module_password_dialog_nss.h" |
#include "chrome/common/net/x509_certificate_model.h" |
#include "chrome/grit/generated_resources.h" |
+#include "components/cert_database/public/cert_database_service.h" |
+#include "components/cert_database/public/cert_database_service_io_part.h" |
#include "content/public/browser/browser_context.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/resource_context.h" |
@@ -32,10 +34,12 @@ using content::BrowserThread; |
// UI thread IO Thread |
// |
// CertificateManagerModel::Create |
+// | |
+// CertDatabaseService::GetIOPart |
// \--------------------------------------v |
// CertificateManagerModel::GetCertDBOnIOThread |
// | |
-// GetNSSCertDatabaseForResourceContext |
+// CertDatabaseServiceIOPart::GetNSSCertDatabase |
// | |
// CertificateManagerModel::DidGetCertDBOnIOThread |
// | |
@@ -53,11 +57,14 @@ void CertificateManagerModel::Create( |
CertificateManagerModel::Observer* observer, |
const CreationCallback& callback) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ cert_database::CertDatabaseService* cert_db_service = |
+ cert_database::CertDatabaseServiceFactory::GetForBrowserContext( |
+ browser_context); |
BrowserThread::PostTask( |
BrowserThread::IO, |
FROM_HERE, |
base::Bind(&CertificateManagerModel::GetCertDBOnIOThread, |
- browser_context->GetResourceContext(), |
+ cert_db_service->GetIOPart(), |
Joao da Silva
2014/10/30 09:48:00
cert_database_service_factory_chromeos.cc returns
pneubeck (no reviews)
2014/11/05 14:53:36
Done.
|
observer, |
callback)); |
} |
@@ -245,15 +252,19 @@ void CertificateManagerModel::DidGetCertDBOnIOThread( |
// static |
void CertificateManagerModel::GetCertDBOnIOThread( |
- content::ResourceContext* context, |
+ base::WeakPtr<cert_database::CertDatabaseServiceIOPart> cert_db_service_io, |
CertificateManagerModel::Observer* observer, |
const CreationCallback& callback) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- net::NSSCertDatabase* cert_db = GetNSSCertDatabaseForResourceContext( |
- context, |
- base::Bind(&CertificateManagerModel::DidGetCertDBOnIOThread, |
- observer, |
- callback)); |
+ // If the CertDatabase is shutting down already, there's no need to finish the |
+ // certificate manager's initialization. |
+ if (!cert_db_service_io) |
+ return; |
+ |
+ base::Callback<void(net::NSSCertDatabase*)> get_db_callback = base::Bind( |
+ &CertificateManagerModel::DidGetCertDBOnIOThread, observer, callback); |
+ net::NSSCertDatabase* cert_db = |
+ cert_db_service_io->GetNSSCertDatabase(get_db_callback); |
if (cert_db) |
- DidGetCertDBOnIOThread(observer, callback, cert_db); |
+ get_db_callback.Run(cert_db); |
} |