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

Side by Side 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 build. 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" 5 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "ash/shell.h" 10 #include "ash/shell.h"
(...skipping 856 matching lines...) Expand 10 before | Expand all | Expand 10 after
867 867
868 void SigninScreenHandler::OnUserRemoved(const std::string& username, 868 void SigninScreenHandler::OnUserRemoved(const std::string& username,
869 bool last_user_removed) { 869 bool last_user_removed) {
870 CallJS("login.AccountPickerScreen.removeUser", username); 870 CallJS("login.AccountPickerScreen.removeUser", username);
871 if (last_user_removed) 871 if (last_user_removed)
872 OnShowAddUser(); 872 OnShowAddUser();
873 } 873 }
874 874
875 void SigninScreenHandler::OnUserImageChanged(const user_manager::User& user) { 875 void SigninScreenHandler::OnUserImageChanged(const user_manager::User& user) {
876 if (page_is_ready()) 876 if (page_is_ready())
877 CallJS("login.AccountPickerScreen.updateUserImage", user.email()); 877 CallJS("login.AccountPickerScreen.updateUserImage", user.GetAccountId());
878 } 878 }
879 879
880 void SigninScreenHandler::OnPreferencesChanged() { 880 void SigninScreenHandler::OnPreferencesChanged() {
881 // Make sure that one of the login UI is fully functional now, otherwise 881 // Make sure that one of the login UI is fully functional now, otherwise
882 // preferences update would be picked up next time it will be shown. 882 // preferences update would be picked up next time it will be shown.
883 if (!webui_visible_) { 883 if (!webui_visible_) {
884 LOG(WARNING) << "Login UI is not active - postponed prefs change."; 884 LOG(WARNING) << "Login UI is not active - postponed prefs change.";
885 preferences_changed_delayed_ = true; 885 preferences_changed_delayed_ = true;
886 return; 886 return;
887 } 887 }
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
981 // Do not load the extension for the screen locker, see crosbug.com/25018. 981 // Do not load the extension for the screen locker, see crosbug.com/25018.
982 return !ScreenLocker::default_screen_locker() && 982 return !ScreenLocker::default_screen_locker() &&
983 is_account_picker_showing_first_time_; 983 is_account_picker_showing_first_time_;
984 } 984 }
985 985
986 void SigninScreenHandler::UpdateAddButtonStatus() { 986 void SigninScreenHandler::UpdateAddButtonStatus() {
987 CallJS("cr.ui.login.DisplayManager.updateAddUserButtonStatus", 987 CallJS("cr.ui.login.DisplayManager.updateAddUserButtonStatus",
988 AllWhitelistedUsersPresent()); 988 AllWhitelistedUsersPresent());
989 } 989 }
990 990
991 void SigninScreenHandler::HandleAuthenticateUser(const std::string& username, 991 void SigninScreenHandler::HandleAuthenticateUser(const AccountId& account_id,
992 const std::string& password) { 992 const std::string& password) {
993 if (!delegate_) 993 if (!delegate_)
994 return; 994 return;
995 UserContext user_context( 995 DCHECK_EQ(account_id.GetUserEmail(),
996 AccountId::FromUserEmail(gaia::SanitizeEmail(username))); 996 gaia::SanitizeEmail(account_id.GetUserEmail()));
997
998 UserContext user_context(account_id);
997 user_context.SetKey(Key(password)); 999 user_context.SetKey(Key(password));
998 delegate_->Login(user_context, SigninSpecifics()); 1000 delegate_->Login(user_context, SigninSpecifics());
999 } 1001 }
1000 1002
1001 void SigninScreenHandler::HandleLaunchIncognito() { 1003 void SigninScreenHandler::HandleLaunchIncognito() {
1002 UserContext context(user_manager::USER_TYPE_GUEST, std::string()); 1004 UserContext context(user_manager::USER_TYPE_GUEST, std::string());
1003 if (delegate_) 1005 if (delegate_)
1004 delegate_->Login(context, SigninSpecifics()); 1006 delegate_->Login(context, SigninSpecifics());
1005 } 1007 }
1006 1008
1007 void SigninScreenHandler::HandleShowSupervisedUserCreationScreen() { 1009 void SigninScreenHandler::HandleShowSupervisedUserCreationScreen() {
1008 if (!user_manager::UserManager::Get()->AreSupervisedUsersAllowed()) { 1010 if (!user_manager::UserManager::Get()->AreSupervisedUsersAllowed()) {
1009 LOG(ERROR) << "Managed users not allowed."; 1011 LOG(ERROR) << "Managed users not allowed.";
1010 return; 1012 return;
1011 } 1013 }
1012 LoginDisplayHostImpl::default_host()-> 1014 LoginDisplayHostImpl::default_host()->
1013 StartWizard(WizardController::kSupervisedUserCreationScreenName); 1015 StartWizard(WizardController::kSupervisedUserCreationScreenName);
1014 } 1016 }
1015 1017
1016 void SigninScreenHandler::HandleLaunchPublicSession( 1018 void SigninScreenHandler::HandleLaunchPublicSession(
1017 const std::string& user_id, 1019 const AccountId& account_id,
1018 const std::string& locale, 1020 const std::string& locale,
1019 const std::string& input_method) { 1021 const std::string& input_method) {
1020 if (!delegate_) 1022 if (!delegate_)
1021 return; 1023 return;
1022 1024
1023 UserContext context(user_manager::USER_TYPE_PUBLIC_ACCOUNT, user_id); 1025 UserContext context(user_manager::USER_TYPE_PUBLIC_ACCOUNT,
1026 account_id.GetUserEmail());
1024 context.SetPublicSessionLocale(locale), 1027 context.SetPublicSessionLocale(locale),
1025 context.SetPublicSessionInputMethod(input_method); 1028 context.SetPublicSessionInputMethod(input_method);
1026 delegate_->Login(context, SigninSpecifics()); 1029 delegate_->Login(context, SigninSpecifics());
1027 } 1030 }
1028 1031
1029 void SigninScreenHandler::HandleOfflineLogin(const base::ListValue* args) { 1032 void SigninScreenHandler::HandleOfflineLogin(const base::ListValue* args) {
1030 if (!delegate_ || delegate_->IsShowUsers()) { 1033 if (!delegate_ || delegate_->IsShowUsers()) {
1031 NOTREACHED(); 1034 NOTREACHED();
1032 return; 1035 return;
1033 } 1036 }
1034 std::string email; 1037 std::string email;
1035 args->GetString(0, &email); 1038 args->GetString(0, &email);
1036 1039
1037 gaia_screen_handler_->set_populated_email(email); 1040 gaia_screen_handler_->set_populated_email(email);
1038 gaia_screen_handler_->LoadAuthExtension(true /* force */, true /* offline */); 1041 gaia_screen_handler_->LoadAuthExtension(true /* force */, true /* offline */);
1039 UpdateUIState(UI_STATE_GAIA_SIGNIN, nullptr); 1042 UpdateUIState(UI_STATE_GAIA_SIGNIN, nullptr);
1040 } 1043 }
1041 1044
1042 void SigninScreenHandler::HandleShutdownSystem() { 1045 void SigninScreenHandler::HandleShutdownSystem() {
1043 ash::Shell::GetInstance()->lock_state_controller()->RequestShutdown(); 1046 ash::Shell::GetInstance()->lock_state_controller()->RequestShutdown();
1044 } 1047 }
1045 1048
1046 void SigninScreenHandler::HandleLoadWallpaper(const std::string& email) { 1049 void SigninScreenHandler::HandleLoadWallpaper(const AccountId& account_id) {
1047 if (delegate_) 1050 if (delegate_)
1048 delegate_->LoadWallpaper(email); 1051 delegate_->LoadWallpaper(account_id.GetUserEmail());
1049 } 1052 }
1050 1053
1051 void SigninScreenHandler::HandleRebootSystem() { 1054 void SigninScreenHandler::HandleRebootSystem() {
1052 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); 1055 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart();
1053 } 1056 }
1054 1057
1055 void SigninScreenHandler::HandleRemoveUser(const std::string& email) { 1058 void SigninScreenHandler::HandleRemoveUser(const AccountId& account_id) {
1056 ProfileMetrics::LogProfileDeleteUser( 1059 ProfileMetrics::LogProfileDeleteUser(
1057 ProfileMetrics::DELETE_PROFILE_USER_MANAGER); 1060 ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
1058 1061
1059 if (!delegate_) 1062 if (!delegate_)
1060 return; 1063 return;
1061 delegate_->RemoveUser(email); 1064 delegate_->RemoveUser(account_id.GetUserEmail());
1062 UpdateAddButtonStatus(); 1065 UpdateAddButtonStatus();
1063 } 1066 }
1064 1067
1065 void SigninScreenHandler::HandleShowAddUser(const base::ListValue* args) { 1068 void SigninScreenHandler::HandleShowAddUser(const base::ListValue* args) {
1066 TRACE_EVENT_ASYNC_STEP_INTO0("ui", 1069 TRACE_EVENT_ASYNC_STEP_INTO0("ui",
1067 "ShowLoginWebUI", 1070 "ShowLoginWebUI",
1068 LoginDisplayHostImpl::kShowLoginWebUIid, 1071 LoginDisplayHostImpl::kShowLoginWebUIid,
1069 "ShowAddUser"); 1072 "ShowAddUser");
1070 std::string email; 1073 std::string email;
1071 // |args| can be null if it's OOBE. 1074 // |args| can be null if it's OOBE.
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
1167 content::NotificationService::NoDetails()); 1170 content::NotificationService::NoDetails());
1168 TRACE_EVENT_ASYNC_END0( 1171 TRACE_EVENT_ASYNC_END0(
1169 "ui", "ShowLoginWebUI", LoginDisplayHostImpl::kShowLoginWebUIid); 1172 "ui", "ShowLoginWebUI", LoginDisplayHostImpl::kShowLoginWebUIid);
1170 } 1173 }
1171 webui_visible_ = true; 1174 webui_visible_ = true;
1172 if (preferences_changed_delayed_) 1175 if (preferences_changed_delayed_)
1173 OnPreferencesChanged(); 1176 OnPreferencesChanged();
1174 } 1177 }
1175 1178
1176 void SigninScreenHandler::HandleCancelPasswordChangedFlow( 1179 void SigninScreenHandler::HandleCancelPasswordChangedFlow(
1177 const std::string& user_id) { 1180 const AccountId& account_id) {
1178 if (!user_id.empty()) 1181 if (account_id.is_valid()) {
1179 RecordReauthReason(AccountId::FromUserEmail(user_id), 1182 RecordReauthReason(account_id, ReauthReason::PASSWORD_UPDATE_SKIPPED);
1180 ReauthReason::PASSWORD_UPDATE_SKIPPED); 1183 }
1181 gaia_screen_handler_->StartClearingCookies( 1184 gaia_screen_handler_->StartClearingCookies(
1182 base::Bind(&SigninScreenHandler::CancelPasswordChangedFlowInternal, 1185 base::Bind(&SigninScreenHandler::CancelPasswordChangedFlowInternal,
1183 weak_factory_.GetWeakPtr())); 1186 weak_factory_.GetWeakPtr()));
1184 } 1187 }
1185 1188
1186 void SigninScreenHandler::HandleCancelUserAdding() { 1189 void SigninScreenHandler::HandleCancelUserAdding() {
1187 if (delegate_) 1190 if (delegate_)
1188 delegate_->CancelUserAdding(); 1191 delegate_->CancelUserAdding();
1189 } 1192 }
1190 1193
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1228 void SigninScreenHandler::HandleUnlockOnLoginSuccess() { 1231 void SigninScreenHandler::HandleUnlockOnLoginSuccess() {
1229 DCHECK(user_manager::UserManager::Get()->IsUserLoggedIn()); 1232 DCHECK(user_manager::UserManager::Get()->IsUserLoggedIn());
1230 if (ScreenLocker::default_screen_locker()) 1233 if (ScreenLocker::default_screen_locker())
1231 ScreenLocker::default_screen_locker()->UnlockOnLoginSuccess(); 1234 ScreenLocker::default_screen_locker()->UnlockOnLoginSuccess();
1232 } 1235 }
1233 1236
1234 void SigninScreenHandler::HandleShowLoadingTimeoutError() { 1237 void SigninScreenHandler::HandleShowLoadingTimeoutError() {
1235 UpdateState(NetworkError::ERROR_REASON_LOADING_TIMEOUT); 1238 UpdateState(NetworkError::ERROR_REASON_LOADING_TIMEOUT);
1236 } 1239 }
1237 1240
1238 void SigninScreenHandler::HandleFocusPod(const std::string& user_id) { 1241 void SigninScreenHandler::HandleFocusPod(const AccountId& account_id) {
1239 SetUserInputMethod(user_id, ime_state_.get()); 1242 SetUserInputMethod(account_id.GetUserEmail(), ime_state_.get());
1240 WallpaperManager::Get()->SetUserWallpaperDelayed(user_id); 1243 WallpaperManager::Get()->SetUserWallpaperDelayed(account_id.GetUserEmail());
1241 proximity_auth::ScreenlockBridge::Get()->SetFocusedUser(user_id); 1244 proximity_auth::ScreenlockBridge::Get()->SetFocusedUser(
1245 account_id.GetUserEmail());
1242 if (delegate_) 1246 if (delegate_)
1243 delegate_->CheckUserStatus(user_id); 1247 delegate_->CheckUserStatus(account_id);
1244 if (!test_focus_pod_callback_.is_null()) 1248 if (!test_focus_pod_callback_.is_null())
1245 test_focus_pod_callback_.Run(); 1249 test_focus_pod_callback_.Run();
1246 1250
1247 bool use_24hour_clock = false; 1251 bool use_24hour_clock = false;
1248 if (user_manager::UserManager::Get()->GetKnownUserBooleanPref( 1252 if (user_manager::UserManager::Get()->GetKnownUserBooleanPref(
1249 AccountId::FromUserEmail(user_id), prefs::kUse24HourClock, 1253 account_id, prefs::kUse24HourClock, &use_24hour_clock)) {
1250 &use_24hour_clock)) {
1251 g_browser_process->platform_part() 1254 g_browser_process->platform_part()
1252 ->GetSystemClock() 1255 ->GetSystemClock()
1253 ->SetLastFocusedPodHourClockType(use_24hour_clock ? base::k24HourClock 1256 ->SetLastFocusedPodHourClockType(use_24hour_clock ? base::k24HourClock
1254 : base::k12HourClock); 1257 : base::k12HourClock);
1255 } 1258 }
1256 } 1259 }
1257 1260
1258 void SigninScreenHandler::HandleGetPublicSessionKeyboardLayouts( 1261 void SigninScreenHandler::HandleGetPublicSessionKeyboardLayouts(
1259 const std::string& user_id, 1262 const AccountId& account_id,
1260 const std::string& locale) { 1263 const std::string& locale) {
1261 GetKeyboardLayoutsForLocale( 1264 GetKeyboardLayoutsForLocale(
1262 base::Bind(&SigninScreenHandler::SendPublicSessionKeyboardLayouts, 1265 base::Bind(&SigninScreenHandler::SendPublicSessionKeyboardLayouts,
1263 weak_factory_.GetWeakPtr(), 1266 weak_factory_.GetWeakPtr(), account_id, locale),
1264 user_id,
1265 locale),
1266 locale); 1267 locale);
1267 } 1268 }
1268 1269
1269 void SigninScreenHandler::SendPublicSessionKeyboardLayouts( 1270 void SigninScreenHandler::SendPublicSessionKeyboardLayouts(
1270 const std::string& user_id, 1271 const AccountId& account_id,
1271 const std::string& locale, 1272 const std::string& locale,
1272 scoped_ptr<base::ListValue> keyboard_layouts) { 1273 scoped_ptr<base::ListValue> keyboard_layouts) {
1273 CallJS("login.AccountPickerScreen.setPublicSessionKeyboardLayouts", 1274 CallJS("login.AccountPickerScreen.setPublicSessionKeyboardLayouts",
1274 user_id, 1275 account_id, locale, *keyboard_layouts);
1275 locale,
1276 *keyboard_layouts);
1277 } 1276 }
1278 1277
1279 void SigninScreenHandler::HandleLaunchKioskApp(const std::string& app_id, 1278 void SigninScreenHandler::HandleLaunchKioskApp(const AccountId& app_account_id,
1280 bool diagnostic_mode) { 1279 bool diagnostic_mode) {
1281 UserContext context(user_manager::USER_TYPE_KIOSK_APP, app_id); 1280 UserContext context(user_manager::USER_TYPE_KIOSK_APP,
1281 app_account_id.GetUserEmail());
1282 SigninSpecifics specifics; 1282 SigninSpecifics specifics;
1283 specifics.kiosk_diagnostic_mode = diagnostic_mode; 1283 specifics.kiosk_diagnostic_mode = diagnostic_mode;
1284 if (delegate_) 1284 if (delegate_)
1285 delegate_->Login(context, specifics); 1285 delegate_->Login(context, specifics);
1286 } 1286 }
1287 1287
1288 void SigninScreenHandler::HandleCancelConsumerManagementEnrollment() { 1288 void SigninScreenHandler::HandleCancelConsumerManagementEnrollment() {
1289 policy::ConsumerManagementService* consumer_management = 1289 policy::ConsumerManagementService* consumer_management =
1290 g_browser_process->platform_part()->browser_policy_connector_chromeos()-> 1290 g_browser_process->platform_part()->browser_policy_connector_chromeos()->
1291 GetConsumerManagementService(); 1291 GetConsumerManagementService();
(...skipping 10 matching lines...) Expand all
1302 max_mode_delegate_->IsMaximizeModeEnabled()); 1302 max_mode_delegate_->IsMaximizeModeEnabled());
1303 } 1303 }
1304 } 1304 }
1305 1305
1306 void SigninScreenHandler::HandleLogRemoveUserWarningShown() { 1306 void SigninScreenHandler::HandleLogRemoveUserWarningShown() {
1307 ProfileMetrics::LogProfileDeleteUser( 1307 ProfileMetrics::LogProfileDeleteUser(
1308 ProfileMetrics::DELETE_PROFILE_USER_MANAGER_SHOW_WARNING); 1308 ProfileMetrics::DELETE_PROFILE_USER_MANAGER_SHOW_WARNING);
1309 } 1309 }
1310 1310
1311 void SigninScreenHandler::HandleFirstIncorrectPasswordAttempt( 1311 void SigninScreenHandler::HandleFirstIncorrectPasswordAttempt(
1312 const std::string& email) { 1312 const AccountId& account_id) {
1313 // TODO(ginkage): Fix this case once crbug.com/469987 is ready. 1313 // TODO(ginkage): Fix this case once crbug.com/469987 is ready.
1314 /* 1314 /*
1315 if (user_manager::UserManager::Get()->FindUsingSAML(email)) 1315 if (user_manager::UserManager::Get()->FindUsingSAML(email))
1316 RecordReauthReason(email, ReauthReason::INCORRECT_SAML_PASSWORD_ENTERED); 1316 RecordReauthReason(email, ReauthReason::INCORRECT_SAML_PASSWORD_ENTERED);
1317 */ 1317 */
1318 } 1318 }
1319 1319
1320 void SigninScreenHandler::HandleMaxIncorrectPasswordAttempts( 1320 void SigninScreenHandler::HandleMaxIncorrectPasswordAttempts(
1321 const std::string& email) { 1321 const AccountId& account_id) {
1322 RecordReauthReason(AccountId::FromUserEmail(email), 1322 RecordReauthReason(account_id, ReauthReason::INCORRECT_PASSWORD_ENTERED);
1323 ReauthReason::INCORRECT_PASSWORD_ENTERED);
1324 } 1323 }
1325 1324
1326 bool SigninScreenHandler::AllWhitelistedUsersPresent() { 1325 bool SigninScreenHandler::AllWhitelistedUsersPresent() {
1327 CrosSettings* cros_settings = CrosSettings::Get(); 1326 CrosSettings* cros_settings = CrosSettings::Get();
1328 bool allow_new_user = false; 1327 bool allow_new_user = false;
1329 cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user); 1328 cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user);
1330 if (allow_new_user) 1329 if (allow_new_user)
1331 return false; 1330 return false;
1332 user_manager::UserManager* user_manager = user_manager::UserManager::Get(); 1331 user_manager::UserManager* user_manager = user_manager::UserManager::Get();
1333 const user_manager::UserList& users = user_manager->GetUsers(); 1332 const user_manager::UserList& users = user_manager->GetUsers();
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
1412 return gaia_screen_handler_->frame_error(); 1411 return gaia_screen_handler_->frame_error();
1413 } 1412 }
1414 1413
1415 void SigninScreenHandler::OnCapsLockChanged(bool enabled) { 1414 void SigninScreenHandler::OnCapsLockChanged(bool enabled) {
1416 caps_lock_enabled_ = enabled; 1415 caps_lock_enabled_ = enabled;
1417 if (page_is_ready()) 1416 if (page_is_ready())
1418 CallJS("login.AccountPickerScreen.setCapsLockState", caps_lock_enabled_); 1417 CallJS("login.AccountPickerScreen.setCapsLockState", caps_lock_enabled_);
1419 } 1418 }
1420 1419
1421 } // namespace chromeos 1420 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698