| Index: chrome/browser/chromeos/login/existing_user_controller.cc
|
| diff --git a/chrome/browser/chromeos/login/existing_user_controller.cc b/chrome/browser/chromeos/login/existing_user_controller.cc
|
| index 53ca8696e39366d2b8ba8b02ed8edbb77411e762..ee39cf465dbc7f279adafa6035bb0242b471d723 100644
|
| --- a/chrome/browser/chromeos/login/existing_user_controller.cc
|
| +++ b/chrome/browser/chromeos/login/existing_user_controller.cc
|
| @@ -124,7 +124,8 @@ void RecordPasswordLoginEvent(const UserContext& user_context) {
|
| if (user_context.GetUserType() == user_manager::USER_TYPE_REGULAR &&
|
| user_context.GetAuthFlow() == UserContext::AUTH_FLOW_OFFLINE &&
|
| easy_unlock_service) {
|
| - easy_unlock_service->RecordPasswordLoginEvent(user_context.GetUserID());
|
| + easy_unlock_service->RecordPasswordLoginEvent(
|
| + user_context.GetAccountId().GetUserEmail());
|
| }
|
| }
|
|
|
| @@ -354,7 +355,7 @@ void ExistingUserController::PerformLogin(
|
| LoginPerformer::AuthorizationMode auth_mode) {
|
| VLOG(1) << "Setting flow from PerformLogin";
|
| ChromeUserManager::Get()
|
| - ->GetUserFlow(user_context.GetUserID())
|
| + ->GetUserFlow(user_context.GetAccountId())
|
| ->SetHost(host_);
|
|
|
| BootTimesRecorder::Get()->RecordLoginAttempted();
|
| @@ -367,7 +368,7 @@ void ExistingUserController::PerformLogin(
|
| login_performer_.reset(new ChromeLoginPerformer(this));
|
| }
|
|
|
| - if (gaia::ExtractDomainName(user_context.GetUserID()) ==
|
| + if (gaia::ExtractDomainName(user_context.GetAccountId().GetUserEmail()) ==
|
| chromeos::login::kSupervisedUserDomain) {
|
| login_performer_->LoginAsSupervisedUser(user_context);
|
| } else {
|
| @@ -508,7 +509,7 @@ void ExistingUserController::OnAuthFailure(const AuthFailure& failure) {
|
| PerformLoginFinishedActions(false /* don't start public session timer */);
|
|
|
| if (ChromeUserManager::Get()
|
| - ->GetUserFlow(last_login_attempt_username_)
|
| + ->GetUserFlow(last_login_attempt_account_id_)
|
| ->HandleLoginFailure(failure)) {
|
| return;
|
| }
|
| @@ -523,7 +524,7 @@ void ExistingUserController::OnAuthFailure(const AuthFailure& failure) {
|
| base::TimeDelta::FromMilliseconds(kSafeModeRestartUiDelayMs));
|
| } else if (failure.reason() == AuthFailure::TPM_ERROR) {
|
| ShowTPMError();
|
| - } else if (last_login_attempt_username_ == chromeos::login::kGuestUserName) {
|
| + } else if (last_login_attempt_account_id_ == login::GuestAccountId()) {
|
| // Show no errors, just re-enable input.
|
| login_display_->ClearAndEnablePassword();
|
| StartPublicSessionAutoLoginTimer();
|
| @@ -531,7 +532,7 @@ void ExistingUserController::OnAuthFailure(const AuthFailure& failure) {
|
| // Check networking after trying to login in case user is
|
| // cached locally or the local admin account.
|
| bool is_known_user = user_manager::UserManager::Get()->IsKnownUser(
|
| - last_login_attempt_username_);
|
| + last_login_attempt_account_id_);
|
| if (!network_state_helper_->IsConnected()) {
|
| if (is_known_user)
|
| ShowError(IDS_LOGIN_ERROR_AUTHENTICATING, error);
|
| @@ -556,7 +557,7 @@ void ExistingUserController::OnAuthFailure(const AuthFailure& failure) {
|
|
|
| // Reset user flow to default, so that special flow will not affect next
|
| // attempt.
|
| - ChromeUserManager::Get()->ResetUserFlow(last_login_attempt_username_);
|
| + ChromeUserManager::Get()->ResetUserFlow(last_login_attempt_account_id_);
|
|
|
| if (auth_status_consumer_)
|
| auth_status_consumer_->OnAuthFailure(failure);
|
| @@ -567,7 +568,7 @@ void ExistingUserController::OnAuthFailure(const AuthFailure& failure) {
|
| // TODO(ginkage): Fix this case once crbug.com/469990 is ready.
|
| /*
|
| if (failure.reason() == AuthFailure::COULD_NOT_MOUNT_CRYPTOHOME) {
|
| - RecordReauthReason(last_login_attempt_username_,
|
| + RecordReauthReason(last_login_attempt_account_id_,
|
| ReauthReason::MISSING_CRYPTOHOME);
|
| }
|
| */
|
| @@ -583,7 +584,7 @@ void ExistingUserController::OnAuthSuccess(const UserContext& user_context) {
|
| auth_mode_ = login_performer_->auth_mode();
|
|
|
| ChromeUserManager::Get()
|
| - ->GetUserFlow(user_context.GetUserID())
|
| + ->GetUserFlow(user_context.GetAccountId())
|
| ->HandleLoginSuccess(user_context);
|
|
|
| StopPublicSessionAutoLoginTimer();
|
| @@ -615,7 +616,7 @@ void ExistingUserController::OnAuthSuccess(const UserContext& user_context) {
|
| // Update user's displayed email.
|
| if (!display_email_.empty()) {
|
| user_manager::UserManager::Get()->SaveUserDisplayEmail(
|
| - user_context.GetUserID(), display_email_);
|
| + user_context.GetAccountId(), display_email_);
|
| display_email_.clear();
|
| }
|
| }
|
| @@ -631,8 +632,8 @@ void ExistingUserController::OnProfilePrepared(Profile* profile,
|
| // Inform |auth_status_consumer_| about successful login.
|
| // TODO(nkostylev): Pass UserContext back crbug.com/424550
|
| if (auth_status_consumer_) {
|
| - auth_status_consumer_->
|
| - OnAuthSuccess(UserContext(last_login_attempt_username_));
|
| + auth_status_consumer_->OnAuthSuccess(
|
| + UserContext(last_login_attempt_account_id_));
|
| }
|
| }
|
|
|
| @@ -662,7 +663,7 @@ void ExistingUserController::OnPasswordChangeDetected() {
|
| }
|
|
|
| if (ChromeUserManager::Get()
|
| - ->GetUserFlow(last_login_attempt_username_)
|
| + ->GetUserFlow(last_login_attempt_account_id_)
|
| ->HandlePasswordChangeDetected()) {
|
| return;
|
| }
|
| @@ -759,7 +760,7 @@ void ExistingUserController::LoginAsPublicSession(
|
| // If there is no public account with the given user ID, logging in is not
|
| // possible.
|
| const user_manager::User* user =
|
| - user_manager::UserManager::Get()->FindUser(user_context.GetUserID());
|
| + user_manager::UserManager::Get()->FindUser(user_context.GetAccountId());
|
| if (!user || user->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT) {
|
| PerformLoginFinishedActions(true /* start public session timer */);
|
| return;
|
| @@ -772,11 +773,15 @@ void ExistingUserController::LoginAsPublicSession(
|
| // whether a list of recommended locales was set by policy. If so, use its
|
| // first entry. Otherwise, |locale| will remain blank, indicating that the
|
| // public session should use the current UI locale.
|
| - const policy::PolicyMap::Entry* entry = g_browser_process->platform_part()->
|
| - browser_policy_connector_chromeos()->
|
| - GetDeviceLocalAccountPolicyService()->
|
| - GetBrokerForUser(user_context.GetUserID())->core()->store()->
|
| - policy_map().Get(policy::key::kSessionLocales);
|
| + const policy::PolicyMap::Entry* entry =
|
| + g_browser_process->platform_part()
|
| + ->browser_policy_connector_chromeos()
|
| + ->GetDeviceLocalAccountPolicyService()
|
| + ->GetBrokerForUser(user_context.GetAccountId().GetUserEmail())
|
| + ->core()
|
| + ->store()
|
| + ->policy_map()
|
| + .Get(policy::key::kSessionLocales);
|
| base::ListValue const* list = NULL;
|
| if (entry &&
|
| entry->level == policy::POLICY_LEVEL_RECOMMENDED &&
|
| @@ -842,7 +847,7 @@ void ExistingUserController::ConfigurePublicSessionAutoLogin() {
|
| }
|
|
|
| const user_manager::User* user = user_manager::UserManager::Get()->FindUser(
|
| - public_session_auto_login_username_);
|
| + AccountId::FromUserEmail(public_session_auto_login_username_));
|
| if (!user || user->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT)
|
| public_session_auto_login_username_.clear();
|
|
|
| @@ -928,7 +933,7 @@ void ExistingUserController::ShowError(int error_id,
|
| if (num_login_attempts_ > 1) {
|
| const user_manager::User* user =
|
| user_manager::UserManager::Get()->FindUser(
|
| - last_login_attempt_username_);
|
| + last_login_attempt_account_id_);
|
| if (user && (user->GetType() == user_manager::USER_TYPE_SUPERVISED))
|
| error_id = IDS_LOGIN_ERROR_AUTHENTICATING_2ND_TIME_SUPERVISED;
|
| }
|
| @@ -979,8 +984,8 @@ void ExistingUserController::PerformPreLoginActions(
|
| // Disable clicking on other windows and status tray.
|
| login_display_->SetUIEnabled(false);
|
|
|
| - if (last_login_attempt_username_ != user_context.GetUserID()) {
|
| - last_login_attempt_username_ = user_context.GetUserID();
|
| + if (last_login_attempt_account_id_ != user_context.GetAccountId()) {
|
| + last_login_attempt_account_id_ = user_context.GetAccountId();
|
| num_login_attempts_ = 0;
|
| }
|
|
|
| @@ -1060,11 +1065,11 @@ void ExistingUserController::DoCompleteLogin(
|
| UserContext user_context = user_context_wo_device_id;
|
| std::string device_id =
|
| user_manager::UserManager::Get()->GetKnownUserDeviceId(
|
| - user_context.GetUserID());
|
| + user_context.GetAccountId());
|
| if (device_id.empty()) {
|
| - bool is_ephemeral =
|
| - ChromeUserManager::Get()->AreEphemeralUsersEnabled() &&
|
| - user_context.GetUserID() != ChromeUserManager::Get()->GetOwnerEmail();
|
| + bool is_ephemeral = ChromeUserManager::Get()->AreEphemeralUsersEnabled() &&
|
| + user_context.GetAccountId() !=
|
| + ChromeUserManager::Get()->GetOwnerAccountId();
|
| device_id = SigninClient::GenerateSigninScopedDeviceID(is_ephemeral);
|
| }
|
| user_context.SetDeviceId(device_id);
|
| @@ -1072,7 +1077,7 @@ void ExistingUserController::DoCompleteLogin(
|
| const std::string& gaps_cookie = user_context.GetGAPSCookie();
|
| if (!gaps_cookie.empty()) {
|
| user_manager::UserManager::Get()->SetKnownUserGAPSCookie(
|
| - user_context.GetUserID(), gaps_cookie);
|
| + user_context.GetAccountId(), gaps_cookie);
|
| }
|
|
|
| PerformPreLoginActions(user_context);
|
| @@ -1144,7 +1149,8 @@ void ExistingUserController::DoLogin(const UserContext& user_context,
|
| }
|
|
|
| if (user_context.GetUserType() == user_manager::USER_TYPE_KIOSK_APP) {
|
| - LoginAsKioskApp(user_context.GetUserID(), specifics.kiosk_diagnostic_mode);
|
| + LoginAsKioskApp(user_context.GetAccountId().GetUserEmail(),
|
| + specifics.kiosk_diagnostic_mode);
|
| return;
|
| }
|
|
|
| @@ -1175,7 +1181,7 @@ void ExistingUserController::OnBootstrapUserContextInitialized(
|
| // Setting a customized login user flow to perform additional initializations
|
| // for bootstrap after the user session is started.
|
| ChromeUserManager::Get()->SetUserFlow(
|
| - user_context.GetUserID(),
|
| + user_context.GetAccountId(),
|
| new BootstrapUserFlow(
|
| user_context,
|
| bootstrap_user_context_initializer_->random_key_used()));
|
|
|