| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/reset_screen_handler.h" | 5 #include "chrome/browser/ui/webui/chromeos/login/reset_screen_handler.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 | 39 |
| 40 namespace chromeos { | 40 namespace chromeos { |
| 41 | 41 |
| 42 ResetScreenHandler::ResetScreenHandler() | 42 ResetScreenHandler::ResetScreenHandler() |
| 43 : BaseScreenHandler(kJsScreenPath), | 43 : BaseScreenHandler(kJsScreenPath), |
| 44 delegate_(NULL), | 44 delegate_(NULL), |
| 45 show_on_init_(false), | 45 show_on_init_(false), |
| 46 restart_required_(true), | 46 restart_required_(true), |
| 47 reboot_was_requested_(false), | 47 reboot_was_requested_(false), |
| 48 rollback_available_(false), | 48 rollback_available_(false), |
| 49 rollback_checked_(false), |
| 49 preparing_for_rollback_(false), | 50 preparing_for_rollback_(false), |
| 50 weak_ptr_factory_(this) { | 51 weak_ptr_factory_(this) { |
| 51 } | 52 } |
| 52 | 53 |
| 53 ResetScreenHandler::~ResetScreenHandler() { | 54 ResetScreenHandler::~ResetScreenHandler() { |
| 54 if (delegate_) | 55 if (delegate_) |
| 55 delegate_->OnActorDestroyed(this); | 56 delegate_->OnActorDestroyed(this); |
| 56 DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(this); | 57 DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(this); |
| 57 } | 58 } |
| 58 | 59 |
| 59 void ResetScreenHandler::PrepareToShow() { | 60 void ResetScreenHandler::PrepareToShow() { |
| 60 } | 61 } |
| 61 | 62 |
| 62 void ResetScreenHandler::ShowWithParams() { | 63 void ResetScreenHandler::ShowWithParams() { |
| 63 int dialog_type; | 64 int dialog_type; |
| 64 if (reboot_was_requested_) { | 65 if (restart_required_) { |
| 65 dialog_type = rollback_available_ ? | 66 dialog_type = reset::DIALOG_SHORTCUT_RESTART_REQUIRED; |
| 66 reset::DIALOG_SHORTCUT_CONFIRMING_POWERWASH_AND_ROLLBACK : | |
| 67 reset::DIALOG_SHORTCUT_CONFIRMING_POWERWASH_ONLY; | |
| 68 } else { | 67 } else { |
| 69 dialog_type = rollback_available_ ? | 68 dialog_type = reset::DIALOG_SHORTCUT_OFFERING_ROLLBACK_UNAVAILABLE; |
| 70 reset::DIALOG_SHORTCUT_OFFERING_ROLLBACK_AVAILABLE : | |
| 71 reset::DIALOG_SHORTCUT_OFFERING_ROLLBACK_UNAVAILABLE; | |
| 72 } | 69 } |
| 73 UMA_HISTOGRAM_ENUMERATION("Reset.ChromeOS.PowerwashDialogShown", | 70 UMA_HISTOGRAM_ENUMERATION("Reset.ChromeOS.PowerwashDialogShown", |
| 74 dialog_type, | 71 dialog_type, |
| 75 reset::DIALOG_VIEW_TYPE_SIZE); | 72 reset::DIALOG_VIEW_TYPE_SIZE); |
| 76 | 73 |
| 77 base::DictionaryValue reset_screen_params; | |
| 78 reset_screen_params.SetBoolean("showRestartMsg", restart_required_); | |
| 79 reset_screen_params.SetBoolean( | |
| 80 "showRollbackOption", rollback_available_ && !reboot_was_requested_); | |
| 81 reset_screen_params.SetBoolean( | |
| 82 "simpleConfirm", reboot_was_requested_ && !rollback_available_); | |
| 83 reset_screen_params.SetBoolean( | |
| 84 "rollbackConfirm", reboot_was_requested_ && rollback_available_); | |
| 85 | |
| 86 PrefService* prefs = g_browser_process->local_state(); | 74 PrefService* prefs = g_browser_process->local_state(); |
| 87 prefs->SetBoolean(prefs::kFactoryResetRequested, false); | 75 prefs->SetBoolean(prefs::kFactoryResetRequested, false); |
| 88 prefs->SetBoolean(prefs::kRollbackRequested, false); | |
| 89 prefs->CommitPendingWrite(); | 76 prefs->CommitPendingWrite(); |
| 77 base::DictionaryValue reset_screen_params; |
| 78 reset_screen_params.SetBoolean("restartRequired", restart_required_); |
| 79 reset_screen_params.SetBoolean("rollbackAvailable", rollback_available_); |
| 90 ShowScreen(kResetScreen, &reset_screen_params); | 80 ShowScreen(kResetScreen, &reset_screen_params); |
| 91 } | 81 } |
| 92 | 82 |
| 93 void ResetScreenHandler::Show() { | 83 void ResetScreenHandler::Show() { |
| 94 if (!page_is_ready()) { | 84 if (!page_is_ready()) { |
| 95 show_on_init_ = true; | 85 show_on_init_ = true; |
| 96 return; | 86 return; |
| 97 } | 87 } |
| 98 | 88 |
| 99 ChooseAndApplyShowScenario(); | 89 ChooseAndApplyShowScenario(); |
| 100 } | 90 } |
| 101 | 91 |
| 102 void ResetScreenHandler::ChooseAndApplyShowScenario() { | 92 void ResetScreenHandler::ChooseAndApplyShowScenario() { |
| 103 PrefService* prefs = g_browser_process->local_state(); | 93 PrefService* prefs = g_browser_process->local_state(); |
| 104 restart_required_ = !CommandLine::ForCurrentProcess()->HasSwitch( | 94 restart_required_ = !CommandLine::ForCurrentProcess()->HasSwitch( |
| 105 switches::kFirstExecAfterBoot); | 95 switches::kFirstExecAfterBoot); |
| 96 |
| 106 reboot_was_requested_ = false; | 97 reboot_was_requested_ = false; |
| 107 rollback_available_ = false; | 98 rollback_available_ = false; |
| 108 preparing_for_rollback_ = false; | 99 preparing_for_rollback_ = false; |
| 109 if (!restart_required_) // First exec after boot. | 100 if (!restart_required_) // First exec after boot. |
| 110 reboot_was_requested_ = prefs->GetBoolean(prefs::kFactoryResetRequested); | 101 reboot_was_requested_ = prefs->GetBoolean(prefs::kFactoryResetRequested); |
| 111 | 102 |
| 112 if (!CommandLine::ForCurrentProcess()->HasSwitch( | 103 if (!CommandLine::ForCurrentProcess()->HasSwitch( |
| 113 switches::kEnableRollbackOption)) { | 104 switches::kEnableRollbackOption)) { |
| 114 rollback_available_ = false; | 105 rollback_available_ = false; |
| 115 ShowWithParams(); | 106 ShowWithParams(); |
| 116 } else if (!restart_required_ && reboot_was_requested_) { | 107 } else if (!restart_required_ && reboot_was_requested_) { |
| 117 // First exec after boot. | 108 // First exec after boot. |
| 118 PrefService* prefs = g_browser_process->local_state(); | |
| 119 rollback_available_ = prefs->GetBoolean(prefs::kRollbackRequested); | |
| 120 ShowWithParams(); | |
| 121 } else { | |
| 122 chromeos::DBusThreadManager::Get()->GetUpdateEngineClient()-> | 109 chromeos::DBusThreadManager::Get()->GetUpdateEngineClient()-> |
| 123 CanRollbackCheck(base::Bind(&ResetScreenHandler::OnRollbackCheck, | 110 CanRollbackCheck(base::Bind(&ResetScreenHandler::OnRollbackCheck, |
| 124 weak_ptr_factory_.GetWeakPtr())); | 111 weak_ptr_factory_.GetWeakPtr())); |
| 112 } else { |
| 113 // Will require restart. |
| 114 ShowWithParams(); |
| 125 } | 115 } |
| 126 } | 116 } |
| 127 | 117 |
| 128 void ResetScreenHandler::Hide() { | 118 void ResetScreenHandler::Hide() { |
| 129 DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(this); | 119 DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(this); |
| 130 } | 120 } |
| 131 | 121 |
| 132 void ResetScreenHandler::SetDelegate(Delegate* delegate) { | 122 void ResetScreenHandler::SetDelegate(Delegate* delegate) { |
| 133 delegate_ = delegate; | 123 delegate_ = delegate; |
| 134 if (page_is_ready()) | 124 if (page_is_ready()) |
| 135 Initialize(); | 125 Initialize(); |
| 136 } | 126 } |
| 137 | 127 |
| 138 void ResetScreenHandler::DeclareLocalizedValues( | 128 void ResetScreenHandler::DeclareLocalizedValues( |
| 139 LocalizedValuesBuilder* builder) { | 129 LocalizedValuesBuilder* builder) { |
| 140 builder->Add("resetScreenTitle", IDS_RESET_SCREEN_TITLE); | 130 builder->Add("resetScreenTitle", IDS_RESET_SCREEN_TITLE); |
| 141 builder->Add("resetScreenAccessibleTitle", IDS_RESET_SCREEN_TITLE); | 131 builder->Add("resetScreenAccessibleTitle", IDS_RESET_SCREEN_TITLE); |
| 142 builder->Add("resetScreenIconTitle",IDS_RESET_SCREEN_ICON_TITLE); | 132 builder->Add("resetScreenIconTitle",IDS_RESET_SCREEN_ICON_TITLE); |
| 143 builder->Add("cancelButton", IDS_CANCEL); | 133 builder->Add("cancelButton", IDS_CANCEL); |
| 134 builder->Add("resetButtonReset", IDS_RESET_SCREEN_RESET); |
| 135 builder->Add("resetButtonRestart", IDS_RELAUNCH_BUTTON); |
| 136 builder->Add("resetButtonPowerwash", IDS_RESET_SCREEN_POWERWASH); |
| 137 builder->Add("resetButtonPowerwashAndRollback", |
| 138 IDS_RESET_SCREEN_POWERWASH_AND_REVERT); |
| 144 | 139 |
| 145 builder->Add("resetWarningDataDetails", | 140 builder->Add("resetWarningDataDetails", |
| 146 IDS_RESET_SCREEN_WARNING_DETAILS_DATA); | 141 IDS_RESET_SCREEN_WARNING_DETAILS_DATA); |
| 147 builder->Add("resetRestartMessage", IDS_RESET_SCREEN_RESTART_MSG); | 142 builder->Add("resetRestartMessage", IDS_RESET_SCREEN_RESTART_MSG); |
| 148 builder->AddF("resetRollbackOption", | |
| 149 IDS_RESET_SCREEN_ROLLBACK_OPTION, | |
| 150 IDS_SHORT_PRODUCT_NAME); | |
| 151 builder->AddF("resetRevertPromise", | 143 builder->AddF("resetRevertPromise", |
| 152 IDS_RESET_SCREEN_PREPARING_REVERT_PROMISE, | 144 IDS_RESET_SCREEN_PREPARING_REVERT_PROMISE, |
| 153 IDS_SHORT_PRODUCT_NAME); | 145 IDS_SHORT_PRODUCT_NAME); |
| 154 builder->AddF("resetRevertSpinnerMessage", | 146 builder->AddF("resetRevertSpinnerMessage", |
| 155 IDS_RESET_SCREEN_PREPARING_REVERT_SPINNER_MESSAGE, | 147 IDS_RESET_SCREEN_PREPARING_REVERT_SPINNER_MESSAGE, |
| 156 IDS_SHORT_PRODUCT_NAME); | 148 IDS_SHORT_PRODUCT_NAME); |
| 157 | 149 |
| 158 // Different variants of the same UI elements for all dialog cases. | 150 // Variants for screen title. |
| 159 builder->Add("resetButtonReset", IDS_RESET_SCREEN_RESET); | 151 builder->AddF("resetWarningTitle", |
| 160 builder->Add("resetButtonRelaunch", IDS_RELAUNCH_BUTTON); | |
| 161 builder->Add("resetButtonPowerwash", IDS_RESET_SCREEN_POWERWASH); | |
| 162 | |
| 163 builder->AddF( | |
| 164 "resetAndRollbackWarningTextConfirmational", | |
| 165 IDS_RESET_SCREEN_CONFIRMATION_WARNING_POWERWASH_AND_ROLLBACK_MSG, | |
| 166 IDS_SHORT_PRODUCT_NAME); | |
| 167 builder->AddF("resetWarningTextConfirmational", | |
| 168 IDS_RESET_SCREEN_CONFIRMATION_WARNING_POWERWASH_MSG, | |
| 169 IDS_SHORT_PRODUCT_NAME); | |
| 170 builder->AddF("resetWarningTextInitial", | |
| 171 IDS_RESET_SCREEN_WARNING_MSG, | 152 IDS_RESET_SCREEN_WARNING_MSG, |
| 172 IDS_SHORT_PRODUCT_NAME); | 153 IDS_SHORT_PRODUCT_NAME); |
| 154 builder->AddF("resetPowerwashWarningTitle", |
| 155 IDS_RESET_SCREEN_WARNING_POWERWASH_MSG, |
| 156 IDS_SHORT_PRODUCT_NAME); |
| 157 builder->AddF("resetPowerwasAndRollbackhWarningTitle", |
| 158 IDS_RESET_SCREEN_WARNING_POWERWASH_AND_ROLLBACK_MSG, |
| 159 IDS_SHORT_PRODUCT_NAME); |
| 173 | 160 |
| 174 builder->AddF( | 161 // Variants for screen message. |
| 175 "resetAndRollbackWarningDetailsConfirmational", | 162 builder->AddF("resetPowerwashWarningDetails", |
| 176 IDS_RESET_SCREEN_CONFIRMATION_WARNING_ROLLBACK_DETAILS, | 163 IDS_RESET_SCREEN_WARNING_DETAILS, |
| 177 IDS_SHORT_PRODUCT_NAME); | 164 IDS_SHORT_PRODUCT_NAME); |
| 178 builder->AddF("resetWarningDetailsConfirmational", | 165 builder->AddF("resetPowerwashRollbackWarningDetails", |
| 166 IDS_RESET_SCREEN_WARNING_POWERWASH_AND_ROLLBACK_MSG, |
| 167 IDS_SHORT_PRODUCT_NAME); |
| 168 builder->AddF("resetPowerwashConfirmationDetails", |
| 179 IDS_RESET_SCREEN_CONFIRMATION_WARNING_DETAILS, | 169 IDS_RESET_SCREEN_CONFIRMATION_WARNING_DETAILS, |
| 180 IDS_SHORT_PRODUCT_NAME); | 170 IDS_SHORT_PRODUCT_NAME); |
| 181 builder->AddF("resetWarningDetailsInitial", | 171 builder->AddF("resetPowerwashRollbackConfirmationDetails", |
| 182 IDS_RESET_SCREEN_WARNING_DETAILS, | 172 IDS_RESET_SCREEN_CONFIRMATION_WARNING_ROLLBACK_DETAILS, |
| 183 IDS_SHORT_PRODUCT_NAME); | 173 IDS_SHORT_PRODUCT_NAME); |
| 184 } | 174 } |
| 185 | 175 |
| 186 // Invoked from call to CanRollbackCheck upon completion of the DBus call. | 176 // Invoked from call to CanRollbackCheck upon completion of the DBus call. |
| 187 void ResetScreenHandler::OnRollbackCheck(bool can_rollback) { | 177 void ResetScreenHandler::OnRollbackCheck(bool can_rollback) { |
| 188 VLOG(1) << "Callback from CanRollbackCheck, result " << can_rollback; | 178 VLOG(1) << "Callback from CanRollbackCheck, result " << can_rollback; |
| 189 rollback_available_ = can_rollback; | 179 rollback_available_ = can_rollback; |
| 190 ShowWithParams(); | 180 ShowWithParams(); |
| 191 } | 181 } |
| 192 | 182 |
| 193 // static | 183 // static |
| 194 void ResetScreenHandler::RegisterPrefs(PrefRegistrySimple* registry) { | 184 void ResetScreenHandler::RegisterPrefs(PrefRegistrySimple* registry) { |
| 195 registry->RegisterBooleanPref(prefs::kFactoryResetRequested, false); | 185 registry->RegisterBooleanPref(prefs::kFactoryResetRequested, false); |
| 196 registry->RegisterBooleanPref(prefs::kRollbackRequested, false); | |
| 197 } | 186 } |
| 198 | 187 |
| 199 void ResetScreenHandler::Initialize() { | 188 void ResetScreenHandler::Initialize() { |
| 200 if (!page_is_ready() || !delegate_) | 189 if (!page_is_ready() || !delegate_) |
| 201 return; | 190 return; |
| 202 | 191 |
| 203 if (show_on_init_) { | 192 if (show_on_init_) { |
| 204 Show(); | 193 Show(); |
| 205 show_on_init_ = false; | 194 show_on_init_ = false; |
| 206 } | 195 } |
| 207 } | 196 } |
| 208 | 197 |
| 209 void ResetScreenHandler::RegisterMessages() { | 198 void ResetScreenHandler::RegisterMessages() { |
| 210 AddCallback("cancelOnReset", &ResetScreenHandler::HandleOnCancel); | 199 AddCallback("cancelOnReset", &ResetScreenHandler::HandleOnCancel); |
| 211 AddCallback("restartOnReset", &ResetScreenHandler::HandleOnRestart); | 200 AddCallback("restartOnReset", &ResetScreenHandler::HandleOnRestart); |
| 212 AddCallback("powerwashOnReset", &ResetScreenHandler::HandleOnPowerwash); | 201 AddCallback("powerwashOnReset", &ResetScreenHandler::HandleOnPowerwash); |
| 213 AddCallback("resetOnLearnMore", &ResetScreenHandler::HandleOnLearnMore); | 202 AddCallback("resetOnLearnMore", &ResetScreenHandler::HandleOnLearnMore); |
| 203 AddCallback( |
| 204 "showRollbackOnResetScreen", &ResetScreenHandler::HandleOnShowRollback); |
| 205 AddCallback( |
| 206 "hideRollbackOnResetScreen", &ResetScreenHandler::HandleOnHideRollback); |
| 207 AddCallback( |
| 208 "showConfirmationOnReset", &ResetScreenHandler::HandleOnShowConfirm); |
| 214 } | 209 } |
| 215 | 210 |
| 216 void ResetScreenHandler::HandleOnCancel() { | 211 void ResetScreenHandler::HandleOnCancel() { |
| 217 if (preparing_for_rollback_) | 212 if (preparing_for_rollback_) |
| 218 return; | 213 return; |
| 219 if (delegate_) | 214 if (delegate_) |
| 220 delegate_->OnExit(); | 215 delegate_->OnExit(); |
| 221 DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(this); | 216 DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(this); |
| 222 } | 217 } |
| 223 | 218 |
| 224 void ResetScreenHandler::HandleOnRestart(bool should_rollback) { | 219 void ResetScreenHandler::HandleOnRestart() { |
| 225 PrefService* prefs = g_browser_process->local_state(); | 220 PrefService* prefs = g_browser_process->local_state(); |
| 226 prefs->SetBoolean(prefs::kFactoryResetRequested, true); | 221 prefs->SetBoolean(prefs::kFactoryResetRequested, true); |
| 227 prefs->SetBoolean(prefs::kRollbackRequested, should_rollback); | |
| 228 prefs->CommitPendingWrite(); | 222 prefs->CommitPendingWrite(); |
| 229 | 223 |
| 230 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); | 224 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); |
| 231 } | 225 } |
| 232 | 226 |
| 233 void ResetScreenHandler::HandleOnPowerwash(bool rollback_checked) { | 227 void ResetScreenHandler::HandleOnPowerwash(bool rollback_checked) { |
| 234 if (rollback_available_ && (rollback_checked || reboot_was_requested_)) { | 228 if (rollback_available_ && rollback_checked) { |
| 235 preparing_for_rollback_ = true; | 229 preparing_for_rollback_ = true; |
| 236 CallJS("updateViewOnRollbackCall"); | 230 CallJS("updateViewOnRollbackCall"); |
| 237 DBusThreadManager::Get()->GetUpdateEngineClient()->AddObserver(this); | 231 DBusThreadManager::Get()->GetUpdateEngineClient()->AddObserver(this); |
| 232 VLOG(1) << "Starting Rollback"; |
| 238 chromeos::DBusThreadManager::Get()->GetUpdateEngineClient()->Rollback(); | 233 chromeos::DBusThreadManager::Get()->GetUpdateEngineClient()->Rollback(); |
| 239 } else { | 234 } else { |
| 240 if (rollback_checked && !rollback_available_) { | 235 if (rollback_checked && !rollback_available_) { |
| 241 NOTREACHED() << | 236 NOTREACHED() << |
| 242 "Rollback was checked but not available. Starting powerwash."; | 237 "Rollback was checked but not available. Starting powerwash."; |
| 243 } | 238 } |
| 239 VLOG(1) << "Starting Powerwash"; |
| 244 chromeos::DBusThreadManager::Get()->GetSessionManagerClient()-> | 240 chromeos::DBusThreadManager::Get()->GetSessionManagerClient()-> |
| 245 StartDeviceWipe(); | 241 StartDeviceWipe(); |
| 246 } | 242 } |
| 247 } | 243 } |
| 248 | 244 |
| 249 void ResetScreenHandler::HandleOnLearnMore() { | 245 void ResetScreenHandler::HandleOnLearnMore() { |
| 250 if (!help_app_.get()) | 246 if (!help_app_.get()) |
| 251 help_app_ = new HelpAppLauncher(GetNativeWindow()); | 247 help_app_ = new HelpAppLauncher(GetNativeWindow()); |
| 252 help_app_->ShowHelpTopic(HelpAppLauncher::HELP_POWERWASH); | 248 help_app_->ShowHelpTopic(HelpAppLauncher::HELP_POWERWASH); |
| 253 } | 249 } |
| 254 | 250 |
| 251 void ResetScreenHandler::HandleOnShowRollback() { |
| 252 VLOG(1) << "Requested rollback availability" << rollback_available_; |
| 253 if (rollback_available_) { |
| 254 UMA_HISTOGRAM_ENUMERATION( |
| 255 "Reset.ChromeOS.PowerwashDialogShown", |
| 256 reset::DIALOG_SHORTCUT_OFFERING_ROLLBACK_AVAILABLE, |
| 257 reset::DIALOG_VIEW_TYPE_SIZE); |
| 258 CallJS("showRollbackOption"); |
| 259 rollback_checked_ = true; |
| 260 } |
| 261 } |
| 262 |
| 263 void ResetScreenHandler::HandleOnHideRollback() { |
| 264 if (rollback_available_ && rollback_checked_) { |
| 265 CallJS("hideRollbackOption"); |
| 266 rollback_checked_ = false; |
| 267 } |
| 268 } |
| 269 |
| 270 void ResetScreenHandler::HandleOnShowConfirm() { |
| 271 int dialog_type = rollback_checked_ ? |
| 272 reset::DIALOG_SHORTCUT_CONFIRMING_POWERWASH_AND_ROLLBACK : |
| 273 reset::DIALOG_SHORTCUT_CONFIRMING_POWERWASH_ONLY; |
| 274 UMA_HISTOGRAM_ENUMERATION( |
| 275 "Reset.ChromeOS.PowerwashDialogShown", |
| 276 dialog_type, |
| 277 reset::DIALOG_VIEW_TYPE_SIZE); |
| 278 } |
| 279 |
| 255 void ResetScreenHandler::UpdateStatusChanged( | 280 void ResetScreenHandler::UpdateStatusChanged( |
| 256 const UpdateEngineClient::Status& status) { | 281 const UpdateEngineClient::Status& status) { |
| 257 VLOG(1) << "Update status change to " << status.status; | 282 VLOG(1) << "Update status change to " << status.status; |
| 258 if (status.status == UpdateEngineClient::UPDATE_STATUS_ERROR || | 283 if (status.status == UpdateEngineClient::UPDATE_STATUS_ERROR || |
| 259 status.status == | 284 status.status == |
| 260 UpdateEngineClient::UPDATE_STATUS_REPORTING_ERROR_EVENT) { | 285 UpdateEngineClient::UPDATE_STATUS_REPORTING_ERROR_EVENT) { |
| 261 preparing_for_rollback_ = false; | 286 preparing_for_rollback_ = false; |
| 262 // Show error screen. | 287 // Show error screen. |
| 263 base::DictionaryValue params; | 288 base::DictionaryValue params; |
| 264 params.SetInteger("uiState", kErrorUIStateRollback); | 289 params.SetInteger("uiState", kErrorUIStateRollback); |
| 265 ShowScreen(OobeUI::kScreenErrorMessage, ¶ms); | 290 ShowScreen(OobeUI::kScreenErrorMessage, ¶ms); |
| 266 } else if (status.status == | 291 } else if (status.status == |
| 267 UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT) { | 292 UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT) { |
| 268 DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); | 293 DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); |
| 269 } | 294 } |
| 270 } | 295 } |
| 271 | 296 |
| 272 } // namespace chromeos | 297 } // namespace chromeos |
| OLD | NEW |