Index: chrome/browser/chromeos/login/user_manager.cc |
diff --git a/chrome/browser/chromeos/login/user_manager.cc b/chrome/browser/chromeos/login/user_manager.cc |
index e4c7390408ccb4fbafea4bc505e89222a9a8778e..67b6df9cfe6f8ca8510ee3c29c43716445f7821f 100644 |
--- a/chrome/browser/chromeos/login/user_manager.cc |
+++ b/chrome/browser/chromeos/login/user_manager.cc |
@@ -238,15 +238,15 @@ bool RealTPMTokenInfoDelegate::IsTokenAvailable() const { |
} |
bool RealTPMTokenInfoDelegate::IsTokenReady() const { |
+ if (token_ready_) |
+ return true; |
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
wtc
2012/02/15 01:41:32
Should this CHECK be the first line of this functi
stevenjb
2012/02/15 01:58:51
Comment added.
|
- if (!token_ready_) { |
- // Retrieve token_name_ and user_pin_ here since they will never change |
- // and CryptohomeLibrary calls are not thread safe. |
- if (CrosLibrary::Get()->GetCryptohomeLibrary()->Pkcs11IsTpmTokenReady()) { |
- CrosLibrary::Get()->GetCryptohomeLibrary()->Pkcs11GetTpmTokenInfo( |
- &token_name_, &user_pin_); |
- token_ready_ = true; |
- } |
+ // Retrieve token_name_ and user_pin_ here since they will never change |
+ // and CryptohomeLibrary calls are not thread safe. |
+ if (CrosLibrary::Get()->GetCryptohomeLibrary()->Pkcs11IsTpmTokenReady()) { |
+ CrosLibrary::Get()->GetCryptohomeLibrary()->Pkcs11GetTpmTokenInfo( |
+ &token_name_, &user_pin_); |
+ token_ready_ = true; |
} |
return token_ready_; |
} |
@@ -725,6 +725,7 @@ void UserManager::StubUserLoggedIn() { |
} |
void UserManager::NotifyOnLogin() { |
+ CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
content::NotificationService::current()->Notify( |
chrome::NOTIFICATION_LOGIN_USER_CHANGED, |
content::Source<UserManager>(this), |
@@ -752,6 +753,7 @@ void UserManager::NotifyOnLogin() { |
crypto::EnableTPMTokenForNSS(new RealTPMTokenInfoDelegate()); |
CertLibrary* cert_library; |
cert_library = chromeos::CrosLibrary::Get()->GetCertLibrary(); |
+ // Note: this calls crypto::EnsureTPMTokenReady() |
cert_library->RequestCertificates(); |
} |