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

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

Issue 811033002: Add device policy to disallow shutdown - ash UI modifications (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: shutdown_allowed => reboot_on_shutdown Created 6 years 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 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698