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 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 #include "chrome/common/url_constants.h" | 57 #include "chrome/common/url_constants.h" |
58 #include "chrome/grit/chromium_strings.h" | 58 #include "chrome/grit/chromium_strings.h" |
59 #include "chrome/grit/generated_resources.h" | 59 #include "chrome/grit/generated_resources.h" |
60 #include "chromeos/dbus/dbus_thread_manager.h" | 60 #include "chromeos/dbus/dbus_thread_manager.h" |
61 #include "chromeos/dbus/power_manager_client.h" | 61 #include "chromeos/dbus/power_manager_client.h" |
62 #include "chromeos/login/auth/key.h" | 62 #include "chromeos/login/auth/key.h" |
63 #include "chromeos/login/auth/user_context.h" | 63 #include "chromeos/login/auth/user_context.h" |
64 #include "chromeos/network/network_state.h" | 64 #include "chromeos/network/network_state.h" |
65 #include "chromeos/network/network_state_handler.h" | 65 #include "chromeos/network/network_state_handler.h" |
66 #include "chromeos/network/portal_detector/network_portal_detector.h" | 66 #include "chromeos/network/portal_detector/network_portal_detector.h" |
| 67 #include "chromeos/settings/cros_settings_names.h" |
| 68 #include "chromeos/settings/cros_settings_provider.h" |
67 #include "components/user_manager/user.h" | 69 #include "components/user_manager/user.h" |
68 #include "components/user_manager/user_manager.h" | 70 #include "components/user_manager/user_manager.h" |
69 #include "components/user_manager/user_type.h" | 71 #include "components/user_manager/user_type.h" |
70 #include "content/public/browser/render_frame_host.h" | 72 #include "content/public/browser/render_frame_host.h" |
71 #include "content/public/browser/web_contents.h" | 73 #include "content/public/browser/web_contents.h" |
72 #include "google_apis/gaia/gaia_auth_util.h" | 74 #include "google_apis/gaia/gaia_auth_util.h" |
73 #include "third_party/cros_system_api/dbus/service_constants.h" | 75 #include "third_party/cros_system_api/dbus/service_constants.h" |
74 #include "ui/base/ime/chromeos/ime_keyboard.h" | 76 #include "ui/base/ime/chromeos/ime_keyboard.h" |
75 #include "ui/base/ime/chromeos/input_method_descriptor.h" | 77 #include "ui/base/ime/chromeos/input_method_descriptor.h" |
76 #include "ui/base/ime/chromeos/input_method_manager.h" | 78 #include "ui/base/ime/chromeos/input_method_manager.h" |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 builder->Add("podMenuButtonAccessibleName", | 320 builder->Add("podMenuButtonAccessibleName", |
319 IDS_LOGIN_POD_MENU_BUTTON_ACCESSIBLE_NAME); | 321 IDS_LOGIN_POD_MENU_BUTTON_ACCESSIBLE_NAME); |
320 builder->Add("podMenuRemoveItemAccessibleName", | 322 builder->Add("podMenuRemoveItemAccessibleName", |
321 IDS_LOGIN_POD_MENU_REMOVE_ITEM_ACCESSIBLE_NAME); | 323 IDS_LOGIN_POD_MENU_REMOVE_ITEM_ACCESSIBLE_NAME); |
322 builder->Add("passwordFieldAccessibleName", | 324 builder->Add("passwordFieldAccessibleName", |
323 IDS_LOGIN_POD_PASSWORD_FIELD_ACCESSIBLE_NAME); | 325 IDS_LOGIN_POD_PASSWORD_FIELD_ACCESSIBLE_NAME); |
324 builder->Add("signedIn", IDS_SCREEN_LOCK_ACTIVE_USER); | 326 builder->Add("signedIn", IDS_SCREEN_LOCK_ACTIVE_USER); |
325 builder->Add("signinButton", IDS_LOGIN_BUTTON); | 327 builder->Add("signinButton", IDS_LOGIN_BUTTON); |
326 builder->Add("launchAppButton", IDS_LAUNCH_APP_BUTTON); | 328 builder->Add("launchAppButton", IDS_LAUNCH_APP_BUTTON); |
327 builder->Add("shutDown", IDS_SHUTDOWN_BUTTON); | 329 builder->Add("shutDown", IDS_SHUTDOWN_BUTTON); |
| 330 builder->Add("restart", IDS_REBOOT_BUTTON); |
328 builder->Add("addUser", IDS_ADD_USER_BUTTON); | 331 builder->Add("addUser", IDS_ADD_USER_BUTTON); |
329 builder->Add("browseAsGuest", IDS_GO_INCOGNITO_BUTTON); | 332 builder->Add("browseAsGuest", IDS_GO_INCOGNITO_BUTTON); |
330 builder->Add("cancel", IDS_CANCEL); | 333 builder->Add("cancel", IDS_CANCEL); |
331 builder->Add("signOutUser", IDS_SCREEN_LOCK_SIGN_OUT); | 334 builder->Add("signOutUser", IDS_SCREEN_LOCK_SIGN_OUT); |
332 builder->Add("offlineLogin", IDS_OFFLINE_LOGIN_HTML); | 335 builder->Add("offlineLogin", IDS_OFFLINE_LOGIN_HTML); |
333 builder->Add("ownerUserPattern", IDS_LOGIN_POD_OWNER_USER); | 336 builder->Add("ownerUserPattern", IDS_LOGIN_POD_OWNER_USER); |
334 builder->Add("removeUser", IDS_LOGIN_POD_REMOVE_USER); | 337 builder->Add("removeUser", IDS_LOGIN_POD_REMOVE_USER); |
335 builder->Add("errorTpmFailureTitle", IDS_LOGIN_ERROR_TPM_FAILURE_TITLE); | 338 builder->Add("errorTpmFailureTitle", IDS_LOGIN_ERROR_TPM_FAILURE_TITLE); |
336 builder->Add("errorTpmFailureReboot", IDS_LOGIN_ERROR_TPM_FAILURE_REBOOT); | 339 builder->Add("errorTpmFailureReboot", IDS_LOGIN_ERROR_TPM_FAILURE_REBOOT); |
337 builder->Add("errorTpmFailureRebootButton", | 340 builder->Add("errorTpmFailureRebootButton", |
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
735 AddCallback("getUsers", &SigninScreenHandler::HandleGetUsers); | 738 AddCallback("getUsers", &SigninScreenHandler::HandleGetUsers); |
736 AddCallback("launchDemoUser", &SigninScreenHandler::HandleLaunchDemoUser); | 739 AddCallback("launchDemoUser", &SigninScreenHandler::HandleLaunchDemoUser); |
737 AddCallback("launchIncognito", &SigninScreenHandler::HandleLaunchIncognito); | 740 AddCallback("launchIncognito", &SigninScreenHandler::HandleLaunchIncognito); |
738 AddCallback("showSupervisedUserCreationScreen", | 741 AddCallback("showSupervisedUserCreationScreen", |
739 &SigninScreenHandler::HandleShowSupervisedUserCreationScreen); | 742 &SigninScreenHandler::HandleShowSupervisedUserCreationScreen); |
740 AddCallback("launchPublicSession", | 743 AddCallback("launchPublicSession", |
741 &SigninScreenHandler::HandleLaunchPublicSession); | 744 &SigninScreenHandler::HandleLaunchPublicSession); |
742 AddRawCallback("offlineLogin", &SigninScreenHandler::HandleOfflineLogin); | 745 AddRawCallback("offlineLogin", &SigninScreenHandler::HandleOfflineLogin); |
743 AddCallback("rebootSystem", &SigninScreenHandler::HandleRebootSystem); | 746 AddCallback("rebootSystem", &SigninScreenHandler::HandleRebootSystem); |
744 AddRawCallback("showAddUser", &SigninScreenHandler::HandleShowAddUser); | 747 AddRawCallback("showAddUser", &SigninScreenHandler::HandleShowAddUser); |
| 748 AddCallback("restartSystem", &SigninScreenHandler::HandleRestartSystem); |
745 AddCallback("shutdownSystem", &SigninScreenHandler::HandleShutdownSystem); | 749 AddCallback("shutdownSystem", &SigninScreenHandler::HandleShutdownSystem); |
746 AddCallback("loadWallpaper", &SigninScreenHandler::HandleLoadWallpaper); | 750 AddCallback("loadWallpaper", &SigninScreenHandler::HandleLoadWallpaper); |
747 AddCallback("removeUser", &SigninScreenHandler::HandleRemoveUser); | 751 AddCallback("removeUser", &SigninScreenHandler::HandleRemoveUser); |
748 AddCallback("toggleEnrollmentScreen", | 752 AddCallback("toggleEnrollmentScreen", |
749 &SigninScreenHandler::HandleToggleEnrollmentScreen); | 753 &SigninScreenHandler::HandleToggleEnrollmentScreen); |
750 AddCallback("toggleEnableDebuggingScreen", | 754 AddCallback("toggleEnableDebuggingScreen", |
751 &SigninScreenHandler::HandleToggleEnableDebuggingScreen); | 755 &SigninScreenHandler::HandleToggleEnableDebuggingScreen); |
752 AddCallback("switchToEmbeddedSignin", | 756 AddCallback("switchToEmbeddedSignin", |
753 &SigninScreenHandler::HandleSwitchToEmbeddedSignin); | 757 &SigninScreenHandler::HandleSwitchToEmbeddedSignin); |
754 AddCallback("toggleKioskEnableScreen", | 758 AddCallback("toggleKioskEnableScreen", |
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1101 std::string email; | 1105 std::string email; |
1102 args->GetString(0, &email); | 1106 args->GetString(0, &email); |
1103 | 1107 |
1104 gaia_screen_handler_->PopulateEmail(email); | 1108 gaia_screen_handler_->PopulateEmail(email); |
1105 // Load auth extension. Parameters are: force reload, do not load extension in | 1109 // Load auth extension. Parameters are: force reload, do not load extension in |
1106 // background, use offline version. | 1110 // background, use offline version. |
1107 gaia_screen_handler_->LoadAuthExtension(true, false, true); | 1111 gaia_screen_handler_->LoadAuthExtension(true, false, true); |
1108 UpdateUIState(UI_STATE_GAIA_SIGNIN, NULL); | 1112 UpdateUIState(UI_STATE_GAIA_SIGNIN, NULL); |
1109 } | 1113 } |
1110 | 1114 |
| 1115 void SigninScreenHandler::HandleRestartSystem() { |
| 1116 #if defined(USE_ATHENA) |
| 1117 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); |
| 1118 #else |
| 1119 ash::Shell::GetInstance()->lock_state_controller()->RequestShutdown( |
| 1120 ash::LockStateController::RESTART); |
| 1121 #endif |
| 1122 } |
| 1123 |
| 1124 void SigninScreenHandler::RequestShutdown() { |
| 1125 CrosSettings* cros_settings = CrosSettings::Get(); |
| 1126 CrosSettingsProvider::TrustedStatus status = |
| 1127 cros_settings->PrepareTrustedValues( |
| 1128 base::Bind(&SigninScreenHandler::RequestShutdown)); |
| 1129 if (status != CrosSettingsProvider::TRUSTED) |
| 1130 return; |
| 1131 bool reboot_on_shutdown = false; |
| 1132 cros_settings->GetBoolean(kRebootOnShutdown, &reboot_on_shutdown); |
| 1133 #if !defined(USE_ATHENA) |
| 1134 ash::Shell::GetInstance()->lock_state_controller()->RequestShutdown( |
| 1135 reboot_on_shutdown ? ash::LockStateController::RESTART |
| 1136 : ash::LockStateController::POWER_OFF); |
| 1137 #endif |
| 1138 } |
| 1139 |
1111 void SigninScreenHandler::HandleShutdownSystem() { | 1140 void SigninScreenHandler::HandleShutdownSystem() { |
1112 #if defined(USE_ATHENA) | 1141 #if defined(USE_ATHENA) |
1113 chromeos::DBusThreadManager::Get()-> | 1142 chromeos::DBusThreadManager::Get()-> |
1114 GetPowerManagerClient()->RequestShutdown(); | 1143 GetPowerManagerClient()->RequestShutdown(); |
1115 #else | 1144 #else |
1116 ash::Shell::GetInstance()->lock_state_controller()->RequestShutdown( | 1145 RequestShutdown(); |
1117 ash::LockStateController::POWER_OFF); | |
1118 #endif | 1146 #endif |
1119 } | 1147 } |
1120 | 1148 |
1121 void SigninScreenHandler::HandleLoadWallpaper(const std::string& email) { | 1149 void SigninScreenHandler::HandleLoadWallpaper(const std::string& email) { |
1122 if (delegate_) | 1150 if (delegate_) |
1123 delegate_->LoadWallpaper(email); | 1151 delegate_->LoadWallpaper(email); |
1124 } | 1152 } |
1125 | 1153 |
1126 void SigninScreenHandler::HandleRebootSystem() { | 1154 void SigninScreenHandler::HandleRebootSystem() { |
1127 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); | 1155 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); |
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1517 return gaia_screen_handler_->frame_error(); | 1545 return gaia_screen_handler_->frame_error(); |
1518 } | 1546 } |
1519 | 1547 |
1520 void SigninScreenHandler::OnCapsLockChanged(bool enabled) { | 1548 void SigninScreenHandler::OnCapsLockChanged(bool enabled) { |
1521 caps_lock_enabled_ = enabled; | 1549 caps_lock_enabled_ = enabled; |
1522 if (page_is_ready()) | 1550 if (page_is_ready()) |
1523 CallJS("login.AccountPickerScreen.setCapsLockState", caps_lock_enabled_); | 1551 CallJS("login.AccountPickerScreen.setCapsLockState", caps_lock_enabled_); |
1524 } | 1552 } |
1525 | 1553 |
1526 } // namespace chromeos | 1554 } // namespace chromeos |
OLD | NEW |