Index: chrome/browser/chromeos/login/managed/locally_managed_user_creation_flow.cc |
diff --git a/chrome/browser/chromeos/login/managed/locally_managed_user_creation_flow.cc b/chrome/browser/chromeos/login/managed/locally_managed_user_creation_flow.cc |
index 10a3403ec94709c0e87fbd28817603dfdfbf35a8..83a5cd5e11b05660f0136c5833b66d96f23abb79 100644 |
--- a/chrome/browser/chromeos/login/managed/locally_managed_user_creation_flow.cc |
+++ b/chrome/browser/chromeos/login/managed/locally_managed_user_creation_flow.cc |
@@ -30,6 +30,7 @@ LocallyManagedUserCreationFlow::LocallyManagedUserCreationFlow( |
: ExtendedUserFlow(manager_id), |
token_validated_(false), |
logged_in_(false), |
+ session_started_(false), |
manager_profile_(NULL) {} |
LocallyManagedUserCreationFlow::~LocallyManagedUserCreationFlow() {} |
@@ -63,8 +64,11 @@ void LocallyManagedUserCreationFlow::HandleOAuthTokenStatusChange( |
// authentication happens before oauth token validation). |
token_validated_ = true; |
- if (token_validated_ && logged_in_) |
- GetScreen(host())->OnManagerFullyAuthenticated(manager_profile_); |
+ if (token_validated_ && logged_in_) { |
+ if (!session_started_) |
+ GetScreen(host())->OnManagerFullyAuthenticated(manager_profile_); |
+ session_started_ = true; |
+ } |
} |
@@ -93,10 +97,13 @@ void LocallyManagedUserCreationFlow::LaunchExtraSteps( |
profile, |
true); |
- if (token_validated_ && logged_in_) |
- GetScreen(host())->OnManagerFullyAuthenticated(manager_profile_); |
- else |
+ if (token_validated_ && logged_in_) { |
+ if (!session_started_) |
+ GetScreen(host())->OnManagerFullyAuthenticated(manager_profile_); |
+ session_started_ = true; |
+ } else { |
GetScreen(host())->OnManagerCryptohomeAuthenticated(); |
+ } |
} |
} // namespace chromeos |