From 16674118b704a7e6482fe0aaadd584a61969640e Mon Sep 17 00:00:00 2001 From: "pneubeck@chromium.org" Date: Tue, 6 Aug 2013 11:31:27 +0000 Subject: Fix CertLoader certificates_loaded() during notification. Also remove the conditional loading of certificates, which prevents tests including CertLoader. BUG=NONE R=stevenjb@chromium.org TBR=xiyuan@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=214351 Review URL: https://chromiumcodereview.appspot.com/20799002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215873 0039d316-1c4b-4281-b951-d872f2087c98 --- chromeos/cert_loader.cc | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) (limited to 'chromeos/cert_loader.cc') diff --git a/chromeos/cert_loader.cc b/chromeos/cert_loader.cc index d60b9d0..5d76711 100644 --- a/chromeos/cert_loader.cc +++ b/chromeos/cert_loader.cc @@ -44,8 +44,7 @@ base::TimeDelta GetNextRequestDelayMs(base::TimeDelta last_delay) { } void LoadNSSCertificates(net::CertificateList* cert_list) { - if (base::chromeos::IsRunningOnChromeOS()) - net::NSSCertDatabase::GetInstance()->ListCerts(cert_list); + net::NSSCertDatabase::GetInstance()->ListCerts(cert_list); } void CallOpenPersistentNSSDB() { @@ -54,8 +53,7 @@ void CallOpenPersistentNSSDB() { // Ensure we've opened the user's key/certificate database. crypto::OpenPersistentNSSDB(); - if (base::chromeos::IsRunningOnChromeOS()) - crypto::EnableTPMTokenForNSS(); + crypto::EnableTPMTokenForNSS(); } } // namespace @@ -77,8 +75,7 @@ void CertLoader::Shutdown() { // static CertLoader* CertLoader::Get() { - CHECK(g_cert_loader) - << "CertLoader::Get() called before Initialize()"; + CHECK(g_cert_loader) << "CertLoader::Get() called before Initialize()"; return g_cert_loader; } @@ -151,6 +148,9 @@ void CertLoader::MaybeRequestCertificates() { // Ensure we only initialize the TPM token once. DCHECK_EQ(tpm_token_state_, TPM_STATE_UNKNOWN); + if (!base::chromeos::IsRunningOnChromeOS()) + tpm_token_state_ = TPM_DISABLED; + InitializeTokenAndLoadCertificates(); } @@ -197,16 +197,14 @@ void CertLoader::InitializeTokenAndLoadCertificates() { return; } case TPM_TOKEN_INFO_RECEIVED: { - if (base::chromeos::IsRunningOnChromeOS()) { - base::PostTaskAndReplyWithResult( - crypto_task_runner_.get(), - FROM_HERE, - base::Bind(&crypto::InitializeTPMToken, - tpm_token_name_, tpm_user_pin_), - base::Bind(&CertLoader::OnTPMTokenInitialized, - initialize_token_factory_.GetWeakPtr())); - return; - } + base::PostTaskAndReplyWithResult( + crypto_task_runner_.get(), + FROM_HERE, + base::Bind( + &crypto::InitializeTPMToken, tpm_token_name_, tpm_user_pin_), + base::Bind(&CertLoader::OnTPMTokenInitialized, + initialize_token_factory_.GetWeakPtr())); + return; tpm_token_state_ = TPM_TOKEN_INITIALIZED; // FALL_THROUGH_INTENDED } @@ -349,8 +347,9 @@ void CertLoader::UpdateCertificates(net::CertificateList* cert_list) { // Ignore any existing certificates. cert_list_.swap(*cert_list); - NotifyCertificatesLoaded(!certificates_loaded_); + bool initial_load = !certificates_loaded_; certificates_loaded_ = true; + NotifyCertificatesLoaded(initial_load); certificates_update_running_ = false; if (certificates_update_required_) -- cgit v1.1