| OLD | NEW |
| 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 14 matching lines...) Expand all Loading... |
| 25 #include "chrome/browser/browser_process.h" | 25 #include "chrome/browser/browser_process.h" |
| 26 #include "chrome/browser/browser_process_platform_part_chromeos.h" | 26 #include "chrome/browser/browser_process_platform_part_chromeos.h" |
| 27 #include "chrome/browser/browser_shutdown.h" | 27 #include "chrome/browser/browser_shutdown.h" |
| 28 #include "chrome/browser/chrome_notification_types.h" | 28 #include "chrome/browser/chrome_notification_types.h" |
| 29 #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h" | 29 #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h" |
| 30 #include "chrome/browser/chromeos/chromeos_utils.h" | 30 #include "chrome/browser/chromeos/chromeos_utils.h" |
| 31 #include "chrome/browser/chromeos/input_method/input_method_util.h" | 31 #include "chrome/browser/chromeos/input_method/input_method_util.h" |
| 32 #include "chrome/browser/chromeos/login/error_screens_histogram_helper.h" | 32 #include "chrome/browser/chromeos/login/error_screens_histogram_helper.h" |
| 33 #include "chrome/browser/chromeos/login/hwid_checker.h" | 33 #include "chrome/browser/chromeos/login/hwid_checker.h" |
| 34 #include "chrome/browser/chromeos/login/lock/screen_locker.h" | 34 #include "chrome/browser/chromeos/login/lock/screen_locker.h" |
| 35 #include "chrome/browser/chromeos/login/reauth_stats.h" |
| 35 #include "chrome/browser/chromeos/login/screens/core_oobe_actor.h" | 36 #include "chrome/browser/chromeos/login/screens/core_oobe_actor.h" |
| 36 #include "chrome/browser/chromeos/login/screens/network_error.h" | 37 #include "chrome/browser/chromeos/login/screens/network_error.h" |
| 37 #include "chrome/browser/chromeos/login/startup_utils.h" | 38 #include "chrome/browser/chromeos/login/startup_utils.h" |
| 38 #include "chrome/browser/chromeos/login/ui/login_display_host.h" | 39 #include "chrome/browser/chromeos/login/ui/login_display_host.h" |
| 39 #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" | 40 #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" |
| 40 #include "chrome/browser/chromeos/login/ui/webui_login_display.h" | 41 #include "chrome/browser/chromeos/login/ui/webui_login_display.h" |
| 41 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" | 42 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" |
| 42 #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" | 43 #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" |
| 43 #include "chrome/browser/chromeos/login/wizard_controller.h" | 44 #include "chrome/browser/chromeos/login/wizard_controller.h" |
| 44 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" | 45 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
| (...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 504 &SigninScreenHandler::HandleUpdateOfflineLogin); | 505 &SigninScreenHandler::HandleUpdateOfflineLogin); |
| 505 AddCallback("focusPod", &SigninScreenHandler::HandleFocusPod); | 506 AddCallback("focusPod", &SigninScreenHandler::HandleFocusPod); |
| 506 AddCallback("getPublicSessionKeyboardLayouts", | 507 AddCallback("getPublicSessionKeyboardLayouts", |
| 507 &SigninScreenHandler::HandleGetPublicSessionKeyboardLayouts); | 508 &SigninScreenHandler::HandleGetPublicSessionKeyboardLayouts); |
| 508 AddCallback("cancelConsumerManagementEnrollment", | 509 AddCallback("cancelConsumerManagementEnrollment", |
| 509 &SigninScreenHandler::HandleCancelConsumerManagementEnrollment); | 510 &SigninScreenHandler::HandleCancelConsumerManagementEnrollment); |
| 510 AddCallback("getTouchViewState", | 511 AddCallback("getTouchViewState", |
| 511 &SigninScreenHandler::HandleGetTouchViewState); | 512 &SigninScreenHandler::HandleGetTouchViewState); |
| 512 AddCallback("logRemoveUserWarningShown", | 513 AddCallback("logRemoveUserWarningShown", |
| 513 &SigninScreenHandler::HandleLogRemoveUserWarningShown); | 514 &SigninScreenHandler::HandleLogRemoveUserWarningShown); |
| 515 AddCallback("firstIncorrectPasswordAttempt", |
| 516 &SigninScreenHandler::HandleFirstIncorrectPasswordAttempt); |
| 517 AddCallback("maxIncorrectPasswordAttempts", |
| 518 &SigninScreenHandler::HandleMaxIncorrectPasswordAttempts); |
| 514 | 519 |
| 515 // This message is sent by the kiosk app menu, but is handled here | 520 // This message is sent by the kiosk app menu, but is handled here |
| 516 // so we can tell the delegate to launch the app. | 521 // so we can tell the delegate to launch the app. |
| 517 AddCallback("launchKioskApp", &SigninScreenHandler::HandleLaunchKioskApp); | 522 AddCallback("launchKioskApp", &SigninScreenHandler::HandleLaunchKioskApp); |
| 518 } | 523 } |
| 519 | 524 |
| 520 void SigninScreenHandler::Show(const LoginScreenContext& context) { | 525 void SigninScreenHandler::Show(const LoginScreenContext& context) { |
| 521 CHECK(delegate_); | 526 CHECK(delegate_); |
| 522 | 527 |
| 523 // Just initialize internal fields from context and call ShowImpl(). | 528 // Just initialize internal fields from context and call ShowImpl(). |
| (...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1081 void SigninScreenHandler::HandleShowAddUser(const base::ListValue* args) { | 1086 void SigninScreenHandler::HandleShowAddUser(const base::ListValue* args) { |
| 1082 TRACE_EVENT_ASYNC_STEP_INTO0("ui", | 1087 TRACE_EVENT_ASYNC_STEP_INTO0("ui", |
| 1083 "ShowLoginWebUI", | 1088 "ShowLoginWebUI", |
| 1084 LoginDisplayHostImpl::kShowLoginWebUIid, | 1089 LoginDisplayHostImpl::kShowLoginWebUIid, |
| 1085 "ShowAddUser"); | 1090 "ShowAddUser"); |
| 1086 std::string email; | 1091 std::string email; |
| 1087 // |args| can be null if it's OOBE. | 1092 // |args| can be null if it's OOBE. |
| 1088 if (args) | 1093 if (args) |
| 1089 args->GetString(0, &email); | 1094 args->GetString(0, &email); |
| 1090 gaia_screen_handler_->PopulateEmail(email); | 1095 gaia_screen_handler_->PopulateEmail(email); |
| 1096 if (!email.empty()) |
| 1097 SendReauthReason(email); |
| 1091 OnShowAddUser(); | 1098 OnShowAddUser(); |
| 1092 } | 1099 } |
| 1093 | 1100 |
| 1094 void SigninScreenHandler::HandleToggleEnrollmentScreen() { | 1101 void SigninScreenHandler::HandleToggleEnrollmentScreen() { |
| 1095 if (delegate_) | 1102 if (delegate_) |
| 1096 delegate_->ShowEnterpriseEnrollmentScreen(); | 1103 delegate_->ShowEnterpriseEnrollmentScreen(); |
| 1097 } | 1104 } |
| 1098 | 1105 |
| 1099 void SigninScreenHandler::HandleToggleEnableDebuggingScreen() { | 1106 void SigninScreenHandler::HandleToggleEnableDebuggingScreen() { |
| 1100 if (delegate_) | 1107 if (delegate_) |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1185 content::NotificationService::AllSources(), | 1192 content::NotificationService::AllSources(), |
| 1186 content::NotificationService::NoDetails()); | 1193 content::NotificationService::NoDetails()); |
| 1187 TRACE_EVENT_ASYNC_END0( | 1194 TRACE_EVENT_ASYNC_END0( |
| 1188 "ui", "ShowLoginWebUI", LoginDisplayHostImpl::kShowLoginWebUIid); | 1195 "ui", "ShowLoginWebUI", LoginDisplayHostImpl::kShowLoginWebUIid); |
| 1189 } | 1196 } |
| 1190 webui_visible_ = true; | 1197 webui_visible_ = true; |
| 1191 if (preferences_changed_delayed_) | 1198 if (preferences_changed_delayed_) |
| 1192 OnPreferencesChanged(); | 1199 OnPreferencesChanged(); |
| 1193 } | 1200 } |
| 1194 | 1201 |
| 1195 void SigninScreenHandler::HandleCancelPasswordChangedFlow() { | 1202 void SigninScreenHandler::HandleCancelPasswordChangedFlow( |
| 1203 const std::string& user_id) { |
| 1204 if (!user_id.empty()) |
| 1205 RecordReauthReason(user_id, ReauthReason::PASSWORD_UPDATE_SKIPPED); |
| 1196 gaia_screen_handler_->StartClearingCookies( | 1206 gaia_screen_handler_->StartClearingCookies( |
| 1197 base::Bind(&SigninScreenHandler::CancelPasswordChangedFlowInternal, | 1207 base::Bind(&SigninScreenHandler::CancelPasswordChangedFlowInternal, |
| 1198 weak_factory_.GetWeakPtr())); | 1208 weak_factory_.GetWeakPtr())); |
| 1199 } | 1209 } |
| 1200 | 1210 |
| 1201 void SigninScreenHandler::HandleCancelUserAdding() { | 1211 void SigninScreenHandler::HandleCancelUserAdding() { |
| 1202 if (delegate_) | 1212 if (delegate_) |
| 1203 delegate_->CancelUserAdding(); | 1213 delegate_->CancelUserAdding(); |
| 1204 } | 1214 } |
| 1205 | 1215 |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1310 CallJS("login.AccountPickerScreen.setTouchViewState", | 1320 CallJS("login.AccountPickerScreen.setTouchViewState", |
| 1311 max_mode_delegate_->IsMaximizeModeEnabled()); | 1321 max_mode_delegate_->IsMaximizeModeEnabled()); |
| 1312 } | 1322 } |
| 1313 } | 1323 } |
| 1314 | 1324 |
| 1315 void SigninScreenHandler::HandleLogRemoveUserWarningShown() { | 1325 void SigninScreenHandler::HandleLogRemoveUserWarningShown() { |
| 1316 ProfileMetrics::LogProfileDeleteUser( | 1326 ProfileMetrics::LogProfileDeleteUser( |
| 1317 ProfileMetrics::DELETE_PROFILE_USER_MANAGER_SHOW_WARNING); | 1327 ProfileMetrics::DELETE_PROFILE_USER_MANAGER_SHOW_WARNING); |
| 1318 } | 1328 } |
| 1319 | 1329 |
| 1330 void SigninScreenHandler::HandleFirstIncorrectPasswordAttempt( |
| 1331 const std::string& email) { |
| 1332 // TODO(ginkage): Fix this case once crbug.com/469987 is ready. |
| 1333 /* |
| 1334 if (user_manager::UserManager::Get()->FindUsingSAML(email)) |
| 1335 RecordReauthReason(email, ReauthReason::INCORRECT_SAML_PASSWORD_ENTERED); |
| 1336 */ |
| 1337 } |
| 1338 |
| 1339 void SigninScreenHandler::HandleMaxIncorrectPasswordAttempts( |
| 1340 const std::string& email) { |
| 1341 RecordReauthReason(email, ReauthReason::INCORRECT_PASSWORD_ENTERED); |
| 1342 } |
| 1343 |
| 1320 bool SigninScreenHandler::AllWhitelistedUsersPresent() { | 1344 bool SigninScreenHandler::AllWhitelistedUsersPresent() { |
| 1321 CrosSettings* cros_settings = CrosSettings::Get(); | 1345 CrosSettings* cros_settings = CrosSettings::Get(); |
| 1322 bool allow_new_user = false; | 1346 bool allow_new_user = false; |
| 1323 cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user); | 1347 cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user); |
| 1324 if (allow_new_user) | 1348 if (allow_new_user) |
| 1325 return false; | 1349 return false; |
| 1326 user_manager::UserManager* user_manager = user_manager::UserManager::Get(); | 1350 user_manager::UserManager* user_manager = user_manager::UserManager::Get(); |
| 1327 const user_manager::UserList& users = user_manager->GetUsers(); | 1351 const user_manager::UserList& users = user_manager->GetUsers(); |
| 1328 if (!delegate_ || users.size() > kMaxUsers) { | 1352 if (!delegate_ || users.size() > kMaxUsers) { |
| 1329 return false; | 1353 return false; |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1407 return gaia_screen_handler_->frame_error(); | 1431 return gaia_screen_handler_->frame_error(); |
| 1408 } | 1432 } |
| 1409 | 1433 |
| 1410 void SigninScreenHandler::OnCapsLockChanged(bool enabled) { | 1434 void SigninScreenHandler::OnCapsLockChanged(bool enabled) { |
| 1411 caps_lock_enabled_ = enabled; | 1435 caps_lock_enabled_ = enabled; |
| 1412 if (page_is_ready()) | 1436 if (page_is_ready()) |
| 1413 CallJS("login.AccountPickerScreen.setCapsLockState", caps_lock_enabled_); | 1437 CallJS("login.AccountPickerScreen.setCapsLockState", caps_lock_enabled_); |
| 1414 } | 1438 } |
| 1415 | 1439 |
| 1416 } // namespace chromeos | 1440 } // namespace chromeos |
| OLD | NEW |