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

Unified Diff: chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc

Issue 1440583002: This CL replaces e-mail with AccountId on user selection screen. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix tests. Created 5 years, 1 month 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
Index: chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
index 1f05411ec0dd3342a96b0f9468a9157cdc7a9d87..1d841777bc160e498844ba581cdb0a6326b7a4a5 100644
--- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
@@ -874,7 +874,8 @@ void SigninScreenHandler::OnUserRemoved(const std::string& username,
void SigninScreenHandler::OnUserImageChanged(const user_manager::User& user) {
if (page_is_ready())
- CallJS("login.AccountPickerScreen.updateUserImage", user.email());
+ CallJS("login.AccountPickerScreen.updateUserImage",
+ user.GetAccountId().Serialize());
}
void SigninScreenHandler::OnPreferencesChanged() {
@@ -988,12 +989,22 @@ void SigninScreenHandler::UpdateAddButtonStatus() {
AllWhitelistedUsersPresent());
}
-void SigninScreenHandler::HandleAuthenticateUser(const std::string& username,
+void SigninScreenHandler::HandleAuthenticateUser(const std::string& user_id,
const std::string& password) {
if (!delegate_)
return;
- UserContext user_context(
- AccountId::FromUserEmail(gaia::SanitizeEmail(username)));
+ AccountId account_id(EmptyAccountId());
dzhioev (left Google) 2015/11/12 00:46:24 Why default constructor of AccountId doesn't produ
Alexander Alekseev 2015/11/12 06:53:04 To force manual construction. We can change this a
+ const bool status = AccountId::Deserialize(user_id, &account_id);
stevenjb 2015/11/11 20:39:23 "user_id" does not imply a JSON dictionary. Use so
Alexander Alekseev 2015/11/12 06:53:04 Done.
+ // TODO(alemate): this is used also for offline Gaia.
+ // Add DCHECK() once migrated.
+ if (!status) {
+ LOG(WARNING) << "Failed to parse user_id='" << user_id << "'";
+ account_id = AccountId::FromUserEmail(user_id);
+ }
+ DCHECK_EQ(account_id.GetUserEmail(),
+ gaia::SanitizeEmail(account_id.GetUserEmail()));
+
+ UserContext user_context(account_id);
user_context.SetKey(Key(password));
delegate_->Login(user_context, SigninSpecifics());
}
@@ -1020,7 +1031,11 @@ void SigninScreenHandler::HandleLaunchPublicSession(
if (!delegate_)
return;
- UserContext context(user_manager::USER_TYPE_PUBLIC_ACCOUNT, user_id);
+ AccountId account_id(EmptyAccountId());
+ const bool status = AccountId::Deserialize(user_id, &account_id);
+ DCHECK(status) << "Failed to parse user_id='" << user_id << "'";
+ UserContext context(user_manager::USER_TYPE_PUBLIC_ACCOUNT,
+ account_id.GetUserEmail());
context.SetPublicSessionLocale(locale),
context.SetPublicSessionInputMethod(input_method);
delegate_->Login(context, SigninSpecifics());
@@ -1175,9 +1190,12 @@ void SigninScreenHandler::HandleLoginVisible(const std::string& source) {
void SigninScreenHandler::HandleCancelPasswordChangedFlow(
const std::string& user_id) {
- if (!user_id.empty())
- RecordReauthReason(AccountId::FromUserEmail(user_id),
- ReauthReason::PASSWORD_UPDATE_SKIPPED);
+ if (!user_id.empty()) {
+ AccountId account_id(EmptyAccountId());
+ const bool status = AccountId::Deserialize(user_id, &account_id);
+ DCHECK(status) << "Failed to parse user_id='" << user_id << "'";
+ RecordReauthReason(account_id, ReauthReason::PASSWORD_UPDATE_SKIPPED);
+ }
gaia_screen_handler_->StartClearingCookies(
base::Bind(&SigninScreenHandler::CancelPasswordChangedFlowInternal,
weak_factory_.GetWeakPtr()));
@@ -1236,18 +1254,21 @@ void SigninScreenHandler::HandleShowLoadingTimeoutError() {
}
void SigninScreenHandler::HandleFocusPod(const std::string& user_id) {
- SetUserInputMethod(user_id, ime_state_.get());
- WallpaperManager::Get()->SetUserWallpaperDelayed(user_id);
- proximity_auth::ScreenlockBridge::Get()->SetFocusedUser(user_id);
+ AccountId account_id(EmptyAccountId());
+ const bool status = AccountId::Deserialize(user_id, &account_id);
+ DCHECK(status) << "Failed to parse user_id='" << user_id << "'";
+ SetUserInputMethod(account_id.GetUserEmail(), ime_state_.get());
+ WallpaperManager::Get()->SetUserWallpaperDelayed(account_id.GetUserEmail());
+ proximity_auth::ScreenlockBridge::Get()->SetFocusedUser(
+ account_id.GetUserEmail());
if (delegate_)
- delegate_->CheckUserStatus(user_id);
+ delegate_->CheckUserStatus(account_id.GetUserEmail());
if (!test_focus_pod_callback_.is_null())
test_focus_pod_callback_.Run();
bool use_24hour_clock = false;
if (user_manager::UserManager::Get()->GetKnownUserBooleanPref(
- AccountId::FromUserEmail(user_id), prefs::kUse24HourClock,
- &use_24hour_clock)) {
+ account_id, prefs::kUse24HourClock, &use_24hour_clock)) {
g_browser_process->platform_part()
->GetSystemClock()
->SetLastFocusedPodHourClockType(use_24hour_clock ? base::k24HourClock
@@ -1258,27 +1279,30 @@ void SigninScreenHandler::HandleFocusPod(const std::string& user_id) {
void SigninScreenHandler::HandleGetPublicSessionKeyboardLayouts(
const std::string& user_id,
const std::string& locale) {
+ AccountId account_id(EmptyAccountId());
+ const bool status = AccountId::Deserialize(user_id, &account_id);
+ DCHECK(status) << "Failed to parse user_id='" << user_id << "'";
GetKeyboardLayoutsForLocale(
base::Bind(&SigninScreenHandler::SendPublicSessionKeyboardLayouts,
- weak_factory_.GetWeakPtr(),
- user_id,
- locale),
+ weak_factory_.GetWeakPtr(), account_id, locale),
locale);
}
void SigninScreenHandler::SendPublicSessionKeyboardLayouts(
- const std::string& user_id,
+ const AccountId& account_id,
const std::string& locale,
scoped_ptr<base::ListValue> keyboard_layouts) {
CallJS("login.AccountPickerScreen.setPublicSessionKeyboardLayouts",
- user_id,
- locale,
- *keyboard_layouts);
+ account_id.Serialize(), locale, *keyboard_layouts);
}
void SigninScreenHandler::HandleLaunchKioskApp(const std::string& app_id,
bool diagnostic_mode) {
- UserContext context(user_manager::USER_TYPE_KIOSK_APP, app_id);
+ AccountId account_id(EmptyAccountId());
+ const bool status = AccountId::Deserialize(app_id, &account_id);
+ DCHECK(status) << "Failed to parse app_id='" << app_id << "'";
+ UserContext context(user_manager::USER_TYPE_KIOSK_APP,
+ account_id.GetUserEmail());
SigninSpecifics specifics;
specifics.kiosk_diagnostic_mode = diagnostic_mode;
if (delegate_)
@@ -1309,7 +1333,7 @@ void SigninScreenHandler::HandleLogRemoveUserWarningShown() {
}
void SigninScreenHandler::HandleFirstIncorrectPasswordAttempt(
- const std::string& email) {
+ const std::string& user_id) {
// TODO(ginkage): Fix this case once crbug.com/469987 is ready.
/*
if (user_manager::UserManager::Get()->FindUsingSAML(email))
@@ -1318,9 +1342,11 @@ void SigninScreenHandler::HandleFirstIncorrectPasswordAttempt(
}
void SigninScreenHandler::HandleMaxIncorrectPasswordAttempts(
- const std::string& email) {
- RecordReauthReason(AccountId::FromUserEmail(email),
- ReauthReason::INCORRECT_PASSWORD_ENTERED);
+ const std::string& user_id) {
+ AccountId account_id(EmptyAccountId());
+ const bool status = AccountId::Deserialize(user_id, &account_id);
+ DCHECK(status) << "Failed to parse user_id='" << user_id << "'";
+ RecordReauthReason(account_id, ReauthReason::INCORRECT_PASSWORD_ENTERED);
}
bool SigninScreenHandler::AllWhitelistedUsersPresent() {

Powered by Google App Engine
This is Rietveld 408576698