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 |
83 | |
84 | |
Dmitry Polukhin
2014/08/22 07:58:23
Nit, remove duplicating empty strings.
merkulova
2014/08/22 09:46:46
Done.
| |
93 void ResetScreenHandler::Show() { | 85 void ResetScreenHandler::Show() { |
94 if (!page_is_ready()) { | 86 if (!page_is_ready()) { |
95 show_on_init_ = true; | 87 show_on_init_ = true; |
96 return; | 88 return; |
97 } | 89 } |
98 | 90 |
99 ChooseAndApplyShowScenario(); | 91 ChooseAndApplyShowScenario(); |
100 } | 92 } |
101 | 93 |
102 void ResetScreenHandler::ChooseAndApplyShowScenario() { | 94 void ResetScreenHandler::ChooseAndApplyShowScenario() { |
103 PrefService* prefs = g_browser_process->local_state(); | 95 PrefService* prefs = g_browser_process->local_state(); |
104 restart_required_ = !CommandLine::ForCurrentProcess()->HasSwitch( | 96 restart_required_ = !CommandLine::ForCurrentProcess()->HasSwitch( |
105 switches::kFirstExecAfterBoot); | 97 switches::kFirstExecAfterBoot); |
98 | |
106 reboot_was_requested_ = false; | 99 reboot_was_requested_ = false; |
107 rollback_available_ = false; | 100 rollback_available_ = false; |
108 preparing_for_rollback_ = false; | 101 preparing_for_rollback_ = false; |
109 if (!restart_required_) // First exec after boot. | 102 if (!restart_required_) // First exec after boot. |
110 reboot_was_requested_ = prefs->GetBoolean(prefs::kFactoryResetRequested); | 103 reboot_was_requested_ = prefs->GetBoolean(prefs::kFactoryResetRequested); |
111 | 104 |
112 if (!CommandLine::ForCurrentProcess()->HasSwitch( | 105 if (!CommandLine::ForCurrentProcess()->HasSwitch( |
113 switches::kEnableRollbackOption)) { | 106 switches::kEnableRollbackOption)) { |
114 rollback_available_ = false; | 107 rollback_available_ = false; |
115 ShowWithParams(); | 108 ShowWithParams(); |
116 } else if (!restart_required_ && reboot_was_requested_) { | 109 } else if (!restart_required_ && reboot_was_requested_) { |
117 // First exec after boot. | 110 // 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()-> | 111 chromeos::DBusThreadManager::Get()->GetUpdateEngineClient()-> |
123 CanRollbackCheck(base::Bind(&ResetScreenHandler::OnRollbackCheck, | 112 CanRollbackCheck(base::Bind(&ResetScreenHandler::OnRollbackCheck, |
124 weak_ptr_factory_.GetWeakPtr())); | 113 weak_ptr_factory_.GetWeakPtr())); |
114 } else { | |
115 // Will require restart. | |
116 ShowWithParams(); | |
125 } | 117 } |
126 } | 118 } |
127 | 119 |
128 void ResetScreenHandler::Hide() { | 120 void ResetScreenHandler::Hide() { |
129 DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(this); | 121 DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(this); |
130 } | 122 } |
131 | 123 |
132 void ResetScreenHandler::SetDelegate(Delegate* delegate) { | 124 void ResetScreenHandler::SetDelegate(Delegate* delegate) { |
133 delegate_ = delegate; | 125 delegate_ = delegate; |
134 if (page_is_ready()) | 126 if (page_is_ready()) |
135 Initialize(); | 127 Initialize(); |
136 } | 128 } |
137 | 129 |
138 void ResetScreenHandler::DeclareLocalizedValues( | 130 void ResetScreenHandler::DeclareLocalizedValues( |
139 LocalizedValuesBuilder* builder) { | 131 LocalizedValuesBuilder* builder) { |
140 builder->Add("resetScreenTitle", IDS_RESET_SCREEN_TITLE); | 132 builder->Add("resetScreenTitle", IDS_RESET_SCREEN_TITLE); |
141 builder->Add("resetScreenAccessibleTitle", IDS_RESET_SCREEN_TITLE); | 133 builder->Add("resetScreenAccessibleTitle", IDS_RESET_SCREEN_TITLE); |
142 builder->Add("resetScreenIconTitle",IDS_RESET_SCREEN_ICON_TITLE); | 134 builder->Add("resetScreenIconTitle",IDS_RESET_SCREEN_ICON_TITLE); |
143 builder->Add("cancelButton", IDS_CANCEL); | 135 builder->Add("cancelButton", IDS_CANCEL); |
136 builder->Add("resetButtonReset", IDS_RESET_SCREEN_RESET); | |
137 builder->Add("resetButtonRestart", IDS_RELAUNCH_BUTTON); | |
138 builder->Add("resetButtonPowerwash", IDS_RESET_SCREEN_POWERWASH); | |
139 builder->Add("resetButtonPowerwashAndRollback", | |
140 IDS_RESET_SCREEN_POWERWASH_AND_REVERT); | |
144 | 141 |
145 builder->Add("resetWarningDataDetails", | 142 builder->Add("resetWarningDataDetails", |
146 IDS_RESET_SCREEN_WARNING_DETAILS_DATA); | 143 IDS_RESET_SCREEN_WARNING_DETAILS_DATA); |
147 builder->Add("resetRestartMessage", IDS_RESET_SCREEN_RESTART_MSG); | 144 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", | 145 builder->AddF("resetRevertPromise", |
152 IDS_RESET_SCREEN_PREPARING_REVERT_PROMISE, | 146 IDS_RESET_SCREEN_PREPARING_REVERT_PROMISE, |
153 IDS_SHORT_PRODUCT_NAME); | 147 IDS_SHORT_PRODUCT_NAME); |
154 builder->AddF("resetRevertSpinnerMessage", | 148 builder->AddF("resetRevertSpinnerMessage", |
155 IDS_RESET_SCREEN_PREPARING_REVERT_SPINNER_MESSAGE, | 149 IDS_RESET_SCREEN_PREPARING_REVERT_SPINNER_MESSAGE, |
156 IDS_SHORT_PRODUCT_NAME); | 150 IDS_SHORT_PRODUCT_NAME); |
157 | 151 |
158 // Different variants of the same UI elements for all dialog cases. | 152 // Variants for screen title. |
159 builder->Add("resetButtonReset", IDS_RESET_SCREEN_RESET); | 153 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, | 154 IDS_RESET_SCREEN_WARNING_MSG, |
172 IDS_SHORT_PRODUCT_NAME); | 155 IDS_SHORT_PRODUCT_NAME); |
156 builder->AddF("resetPowerwashWarningTitle", | |
157 IDS_RESET_SCREEN_WARNING_POWERWASH_MSG, | |
158 IDS_SHORT_PRODUCT_NAME); | |
159 builder->AddF("resetPowerwasAndRollbackhWarningTitle", | |
160 IDS_RESET_SCREEN_WARNING_POWERWASH_AND_ROLLBACK_MSG, | |
161 IDS_SHORT_PRODUCT_NAME); | |
173 | 162 |
174 builder->AddF( | 163 // Variants for screen message. |
175 "resetAndRollbackWarningDetailsConfirmational", | 164 builder->AddF("resetPowerwashWarningDetails", |
176 IDS_RESET_SCREEN_CONFIRMATION_WARNING_ROLLBACK_DETAILS, | 165 IDS_RESET_SCREEN_WARNING_DETAILS, |
177 IDS_SHORT_PRODUCT_NAME); | 166 IDS_SHORT_PRODUCT_NAME); |
178 builder->AddF("resetWarningDetailsConfirmational", | 167 builder->AddF("resetPowerwashRollbackWarningDetails", |
168 IDS_RESET_SCREEN_WARNING_POWERWASH_AND_ROLLBACK_MSG, | |
169 IDS_SHORT_PRODUCT_NAME); | |
170 builder->AddF("resetPowerwashConfirmationDetails", | |
179 IDS_RESET_SCREEN_CONFIRMATION_WARNING_DETAILS, | 171 IDS_RESET_SCREEN_CONFIRMATION_WARNING_DETAILS, |
180 IDS_SHORT_PRODUCT_NAME); | 172 IDS_SHORT_PRODUCT_NAME); |
181 builder->AddF("resetWarningDetailsInitial", | 173 builder->AddF("resetPowerwashRollbackConfirmationDetails", |
182 IDS_RESET_SCREEN_WARNING_DETAILS, | 174 IDS_RESET_SCREEN_CONFIRMATION_WARNING_ROLLBACK_DETAILS, |
183 IDS_SHORT_PRODUCT_NAME); | 175 IDS_SHORT_PRODUCT_NAME); |
184 } | 176 } |
185 | 177 |
186 // Invoked from call to CanRollbackCheck upon completion of the DBus call. | 178 // Invoked from call to CanRollbackCheck upon completion of the DBus call. |
187 void ResetScreenHandler::OnRollbackCheck(bool can_rollback) { | 179 void ResetScreenHandler::OnRollbackCheck(bool can_rollback) { |
188 VLOG(1) << "Callback from CanRollbackCheck, result " << can_rollback; | 180 VLOG(1) << "Callback from CanRollbackCheck, result " << can_rollback; |
189 rollback_available_ = can_rollback; | 181 rollback_available_ = can_rollback; |
190 ShowWithParams(); | 182 ShowWithParams(); |
191 } | 183 } |
192 | 184 |
193 // static | 185 // static |
194 void ResetScreenHandler::RegisterPrefs(PrefRegistrySimple* registry) { | 186 void ResetScreenHandler::RegisterPrefs(PrefRegistrySimple* registry) { |
195 registry->RegisterBooleanPref(prefs::kFactoryResetRequested, false); | 187 registry->RegisterBooleanPref(prefs::kFactoryResetRequested, false); |
196 registry->RegisterBooleanPref(prefs::kRollbackRequested, false); | |
197 } | 188 } |
198 | 189 |
199 void ResetScreenHandler::Initialize() { | 190 void ResetScreenHandler::Initialize() { |
200 if (!page_is_ready() || !delegate_) | 191 if (!page_is_ready() || !delegate_) |
201 return; | 192 return; |
202 | 193 |
203 if (show_on_init_) { | 194 if (show_on_init_) { |
204 Show(); | 195 Show(); |
205 show_on_init_ = false; | 196 show_on_init_ = false; |
206 } | 197 } |
207 } | 198 } |
208 | 199 |
209 void ResetScreenHandler::RegisterMessages() { | 200 void ResetScreenHandler::RegisterMessages() { |
210 AddCallback("cancelOnReset", &ResetScreenHandler::HandleOnCancel); | 201 AddCallback("cancelOnReset", &ResetScreenHandler::HandleOnCancel); |
211 AddCallback("restartOnReset", &ResetScreenHandler::HandleOnRestart); | 202 AddCallback("restartOnReset", &ResetScreenHandler::HandleOnRestart); |
212 AddCallback("powerwashOnReset", &ResetScreenHandler::HandleOnPowerwash); | 203 AddCallback("powerwashOnReset", &ResetScreenHandler::HandleOnPowerwash); |
213 AddCallback("resetOnLearnMore", &ResetScreenHandler::HandleOnLearnMore); | 204 AddCallback("resetOnLearnMore", &ResetScreenHandler::HandleOnLearnMore); |
205 AddCallback( | |
206 "showRollbackOnResetScreen", &ResetScreenHandler::HandleOnShowRollback); | |
207 AddCallback( | |
208 "hideRollbackOnResetScreen", &ResetScreenHandler::HandleOnHideRollback); | |
209 AddCallback( | |
210 "showConfirmationOnReset", &ResetScreenHandler::HandleOnShowConfirm); | |
214 } | 211 } |
215 | 212 |
216 void ResetScreenHandler::HandleOnCancel() { | 213 void ResetScreenHandler::HandleOnCancel() { |
217 if (preparing_for_rollback_) | 214 if (preparing_for_rollback_) |
218 return; | 215 return; |
219 if (delegate_) | 216 if (delegate_) |
220 delegate_->OnExit(); | 217 delegate_->OnExit(); |
221 DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(this); | 218 DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(this); |
222 } | 219 } |
223 | 220 |
224 void ResetScreenHandler::HandleOnRestart(bool should_rollback) { | 221 void ResetScreenHandler::HandleOnRestart() { |
225 PrefService* prefs = g_browser_process->local_state(); | 222 PrefService* prefs = g_browser_process->local_state(); |
226 prefs->SetBoolean(prefs::kFactoryResetRequested, true); | 223 prefs->SetBoolean(prefs::kFactoryResetRequested, true); |
227 prefs->SetBoolean(prefs::kRollbackRequested, should_rollback); | |
228 prefs->CommitPendingWrite(); | 224 prefs->CommitPendingWrite(); |
229 | 225 |
230 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); | 226 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); |
231 } | 227 } |
232 | 228 |
233 void ResetScreenHandler::HandleOnPowerwash(bool rollback_checked) { | 229 void ResetScreenHandler::HandleOnPowerwash(bool rollback_checked) { |
234 if (rollback_available_ && (rollback_checked || reboot_was_requested_)) { | 230 if (rollback_available_ && rollback_checked) { |
235 preparing_for_rollback_ = true; | 231 preparing_for_rollback_ = true; |
236 CallJS("updateViewOnRollbackCall"); | 232 CallJS("updateViewOnRollbackCall"); |
237 DBusThreadManager::Get()->GetUpdateEngineClient()->AddObserver(this); | 233 DBusThreadManager::Get()->GetUpdateEngineClient()->AddObserver(this); |
234 VLOG(1) << "Starting Rollback"; | |
238 chromeos::DBusThreadManager::Get()->GetUpdateEngineClient()->Rollback(); | 235 chromeos::DBusThreadManager::Get()->GetUpdateEngineClient()->Rollback(); |
239 } else { | 236 } else { |
240 if (rollback_checked && !rollback_available_) { | 237 if (rollback_checked && !rollback_available_) { |
241 NOTREACHED() << | 238 NOTREACHED() << |
242 "Rollback was checked but not available. Starting powerwash."; | 239 "Rollback was checked but not available. Starting powerwash."; |
243 } | 240 } |
241 VLOG(1) << "Starting Powerwash"; | |
244 chromeos::DBusThreadManager::Get()->GetSessionManagerClient()-> | 242 chromeos::DBusThreadManager::Get()->GetSessionManagerClient()-> |
245 StartDeviceWipe(); | 243 StartDeviceWipe(); |
246 } | 244 } |
247 } | 245 } |
248 | 246 |
249 void ResetScreenHandler::HandleOnLearnMore() { | 247 void ResetScreenHandler::HandleOnLearnMore() { |
250 if (!help_app_.get()) | 248 if (!help_app_.get()) |
251 help_app_ = new HelpAppLauncher(GetNativeWindow()); | 249 help_app_ = new HelpAppLauncher(GetNativeWindow()); |
252 help_app_->ShowHelpTopic(HelpAppLauncher::HELP_POWERWASH); | 250 help_app_->ShowHelpTopic(HelpAppLauncher::HELP_POWERWASH); |
253 } | 251 } |
254 | 252 |
253 void ResetScreenHandler::HandleOnShowRollback() { | |
254 VLOG(1) << "Requested rollback availability" << rollback_available_; | |
255 if (rollback_available_) { | |
256 UMA_HISTOGRAM_ENUMERATION( | |
257 "Reset.ChromeOS.PowerwashDialogShown", | |
258 reset::DIALOG_SHORTCUT_OFFERING_ROLLBACK_AVAILABLE, | |
259 reset::DIALOG_VIEW_TYPE_SIZE); | |
260 CallJS("showRollbackOption"); | |
261 rollback_checked_ = true; | |
262 } | |
263 } | |
264 | |
265 void ResetScreenHandler::HandleOnHideRollback() { | |
266 if (rollback_available_ && rollback_checked_) { | |
267 CallJS("hideRollbackOption"); | |
268 rollback_checked_ = false; | |
269 } | |
270 } | |
271 | |
272 void ResetScreenHandler::HandleOnShowConfirm() { | |
273 int dialog_type = rollback_checked_ ? | |
274 reset::DIALOG_SHORTCUT_CONFIRMING_POWERWASH_AND_ROLLBACK : | |
275 reset::DIALOG_SHORTCUT_CONFIRMING_POWERWASH_ONLY; | |
276 UMA_HISTOGRAM_ENUMERATION( | |
277 "Reset.ChromeOS.PowerwashDialogShown", | |
278 dialog_type, | |
279 reset::DIALOG_VIEW_TYPE_SIZE); | |
280 } | |
281 | |
255 void ResetScreenHandler::UpdateStatusChanged( | 282 void ResetScreenHandler::UpdateStatusChanged( |
256 const UpdateEngineClient::Status& status) { | 283 const UpdateEngineClient::Status& status) { |
257 VLOG(1) << "Update status change to " << status.status; | 284 VLOG(1) << "Update status change to " << status.status; |
258 if (status.status == UpdateEngineClient::UPDATE_STATUS_ERROR || | 285 if (status.status == UpdateEngineClient::UPDATE_STATUS_ERROR || |
259 status.status == | 286 status.status == |
260 UpdateEngineClient::UPDATE_STATUS_REPORTING_ERROR_EVENT) { | 287 UpdateEngineClient::UPDATE_STATUS_REPORTING_ERROR_EVENT) { |
261 preparing_for_rollback_ = false; | 288 preparing_for_rollback_ = false; |
262 // Show error screen. | 289 // Show error screen. |
263 base::DictionaryValue params; | 290 base::DictionaryValue params; |
264 params.SetInteger("uiState", kErrorUIStateRollback); | 291 params.SetInteger("uiState", kErrorUIStateRollback); |
265 ShowScreen(OobeUI::kScreenErrorMessage, ¶ms); | 292 ShowScreen(OobeUI::kScreenErrorMessage, ¶ms); |
266 } else if (status.status == | 293 } else if (status.status == |
267 UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT) { | 294 UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT) { |
268 DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); | 295 DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); |
269 } | 296 } |
270 } | 297 } |
271 | 298 |
272 } // namespace chromeos | 299 } // namespace chromeos |
OLD | NEW |