Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Unified Diff: chromeos/tpm_token_loader.cc

Issue 741593002: If easy sign-in is set up, allow TPMTokenLoader to start before login (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« chromeos/tpm_token_loader.h ('K') | « chromeos/tpm_token_loader.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/tpm_token_loader.cc
diff --git a/chromeos/tpm_token_loader.cc b/chromeos/tpm_token_loader.cc
index 4f17bf5595747345fb65f820903762b449d4eafb..91dbeddbb8b6cfd67533cb3d82367b6538a064bb 100644
--- a/chromeos/tpm_token_loader.cc
+++ b/chromeos/tpm_token_loader.cc
@@ -70,6 +70,7 @@ TPMTokenLoader::TPMTokenLoader(bool for_test)
DBusThreadManager::Get()->GetCryptohomeClient(),
base::ThreadTaskRunnerHandle::Get())),
tpm_token_slot_id_(-1),
+ can_start_before_login_(false),
weak_factory_(this) {
if (!initialized_for_test_ && LoginState::IsInitialized())
LoginState::Get()->AddObserver(this);
@@ -86,6 +87,13 @@ void TPMTokenLoader::SetCryptoTaskRunner(
MaybeStartTokenInitialization();
}
+void TPMTokenLoader::EnsureStarted() {
+ if (can_start_before_login_)
+ return;
+ can_start_before_login_ = true;
+ MaybeStartTokenInitialization();
+}
+
TPMTokenLoader::~TPMTokenLoader() {
if (!initialized_for_test_ && LoginState::IsInitialized())
LoginState::Get()->RemoveObserver(this);
@@ -119,10 +127,9 @@ void TPMTokenLoader::MaybeStartTokenInitialization() {
if (tpm_token_state_ != TPM_STATE_UNKNOWN || !crypto_task_runner_.get())
return;
- if (!LoginState::IsInitialized())
- return;
-
- bool start_initialization = LoginState::Get()->IsUserLoggedIn();
+ bool start_initialization =
+ (LoginState::IsInitialized() && LoginState::Get()->IsUserLoggedIn()) ||
+ can_start_before_login_;
VLOG(1) << "StartTokenInitialization: " << start_initialization;
if (!start_initialization)
« chromeos/tpm_token_loader.h ('K') | « chromeos/tpm_token_loader.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698