Index: chrome/browser/signin/easy_unlock_service_signin_chromeos.cc |
diff --git a/chrome/browser/signin/easy_unlock_service_signin_chromeos.cc b/chrome/browser/signin/easy_unlock_service_signin_chromeos.cc |
index 207f84a9da1d2e8f754503e768d3ac4d3624f4bc..07da93a2e7364d1ff1a831b32be381269b9e314c 100644 |
--- a/chrome/browser/signin/easy_unlock_service_signin_chromeos.cc |
+++ b/chrome/browser/signin/easy_unlock_service_signin_chromeos.cc |
@@ -15,6 +15,7 @@ |
#include "chrome/browser/chromeos/login/easy_unlock/easy_unlock_metrics.h" |
#include "chrome/browser/chromeos/login/session/user_session_manager.h" |
#include "chromeos/login/auth/user_context.h" |
+#include "chromeos/tpm_token_loader.h" |
namespace { |
@@ -315,6 +316,15 @@ void EasyUnlockServiceSignin::OnFocusedUserChanged(const std::string& user_id) { |
} |
LoadCurrentUserDataIfNeeded(); |
+ |
+ // Start loading TPM system token. |
+ // The system token will be needed to sign a nonce using TPM private key |
+ // during the sign-in protocol. |
+ EasyUnlockScreenlockStateHandler::HardlockState hardlock_state; |
+ if (GetPersistedHardlockState(&hardlock_state) && |
+ hardlock_state != EasyUnlockScreenlockStateHandler::NO_PAIRING) { |
+ chromeos::TPMTokenLoader::Get()->EnsureStarted(); |
+ } |
} |
void EasyUnlockServiceSignin::LoggedInStateChanged() { |