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

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

Issue 1114543002: UMA to track the reason for re-auth (draft). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Code review fixes. Created 5 years, 7 months 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 14 matching lines...) Expand all
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h ('k') | chrome/chrome_browser_chromeos.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698