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/enrollment_screen_handler.h" | 5 #include "chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 | 33 |
34 namespace chromeos { | 34 namespace chromeos { |
35 namespace { | 35 namespace { |
36 | 36 |
37 const char kJsScreenPath[] = "login.OAuthEnrollmentScreen"; | 37 const char kJsScreenPath[] = "login.OAuthEnrollmentScreen"; |
38 | 38 |
39 // Enrollment step names. | 39 // Enrollment step names. |
40 const char kEnrollmentStepSignin[] = "signin"; | 40 const char kEnrollmentStepSignin[] = "signin"; |
41 const char kEnrollmentStepSuccess[] = "success"; | 41 const char kEnrollmentStepSuccess[] = "success"; |
42 const char kEnrollmentStepWorking[] = "working"; | 42 const char kEnrollmentStepWorking[] = "working"; |
| 43 const char kEnrollmentStepNaming[] = "naming"; |
43 | 44 |
44 // Enrollment mode constants used in the UI. This needs to be kept in sync with | 45 // Enrollment mode constants used in the UI. This needs to be kept in sync with |
45 // oobe_screen_oauth_enrollment.js. | 46 // oobe_screen_oauth_enrollment.js. |
46 const char kEnrollmentModeUIForced[] = "forced"; | 47 const char kEnrollmentModeUIForced[] = "forced"; |
47 const char kEnrollmentModeUIManual[] = "manual"; | 48 const char kEnrollmentModeUIManual[] = "manual"; |
48 const char kEnrollmentModeUIRecovery[] = "recovery"; | 49 const char kEnrollmentModeUIRecovery[] = "recovery"; |
49 | 50 |
50 // Enrollment help topic IDs. | 51 // Enrollment help topic IDs. |
51 const int kEnrollmentHelpTopicRegular = 6142332; | 52 const int kEnrollmentHelpTopicRegular = 6142332; |
52 const int kEnrollmentHelpTopicServerTriggered = 4631259; | 53 const int kEnrollmentHelpTopicServerTriggered = 4631259; |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 | 142 |
142 void EnrollmentScreenHandler::RegisterMessages() { | 143 void EnrollmentScreenHandler::RegisterMessages() { |
143 AddCallback("oauthEnrollClose", | 144 AddCallback("oauthEnrollClose", |
144 &EnrollmentScreenHandler::HandleClose); | 145 &EnrollmentScreenHandler::HandleClose); |
145 AddCallback("oauthEnrollCompleteLogin", | 146 AddCallback("oauthEnrollCompleteLogin", |
146 &EnrollmentScreenHandler::HandleCompleteLogin); | 147 &EnrollmentScreenHandler::HandleCompleteLogin); |
147 AddCallback("oauthEnrollRetry", | 148 AddCallback("oauthEnrollRetry", |
148 &EnrollmentScreenHandler::HandleRetry); | 149 &EnrollmentScreenHandler::HandleRetry); |
149 AddCallback("frameLoadingCompleted", | 150 AddCallback("frameLoadingCompleted", |
150 &EnrollmentScreenHandler::HandleFrameLoadingCompleted); | 151 &EnrollmentScreenHandler::HandleFrameLoadingCompleted); |
| 152 AddCallback("oauthEnrollNaming", |
| 153 &EnrollmentScreenHandler::HandleDeviceNaming); |
151 } | 154 } |
152 | 155 |
153 // EnrollmentScreenHandler | 156 // EnrollmentScreenHandler |
154 // EnrollmentScreenActor implementation ----------------------------------- | 157 // EnrollmentScreenActor implementation ----------------------------------- |
155 | 158 |
156 void EnrollmentScreenHandler::SetParameters( | 159 void EnrollmentScreenHandler::SetParameters( |
157 Controller* controller, | 160 Controller* controller, |
158 const policy::EnrollmentConfig& config) { | 161 const policy::EnrollmentConfig& config) { |
159 CHECK_NE(policy::EnrollmentConfig::MODE_NONE, config.mode); | 162 CHECK_NE(policy::EnrollmentConfig::MODE_NONE, config.mode); |
160 controller_ = controller; | 163 controller_ = controller; |
(...skipping 16 matching lines...) Expand all Loading... |
177 } | 180 } |
178 | 181 |
179 void EnrollmentScreenHandler::Hide() { | 182 void EnrollmentScreenHandler::Hide() { |
180 } | 183 } |
181 | 184 |
182 void EnrollmentScreenHandler::ShowSigninScreen() { | 185 void EnrollmentScreenHandler::ShowSigninScreen() { |
183 observe_network_failure_ = true; | 186 observe_network_failure_ = true; |
184 ShowStep(kEnrollmentStepSignin); | 187 ShowStep(kEnrollmentStepSignin); |
185 } | 188 } |
186 | 189 |
| 190 void EnrollmentScreenHandler::ShowDeviceNamingScreen() { |
| 191 base::DictionaryValue data; |
| 192 |
| 193 // TODO: add existing Asset ID and Location values. |
| 194 data.SetString("device_asset_id", "Asset Identifier"); |
| 195 data.SetString("device_location", "Location"); |
| 196 |
| 197 OnBeforeShowNaming(data); |
| 198 ShowStep(kEnrollmentStepNaming); |
| 199 } |
| 200 |
187 void EnrollmentScreenHandler::ShowEnrollmentSpinnerScreen() { | 201 void EnrollmentScreenHandler::ShowEnrollmentSpinnerScreen() { |
188 ShowStep(kEnrollmentStepWorking); | 202 ShowStep(kEnrollmentStepWorking); |
189 } | 203 } |
190 | 204 |
191 void EnrollmentScreenHandler::ShowAuthError( | 205 void EnrollmentScreenHandler::ShowAuthError( |
192 const GoogleServiceAuthError& error) { | 206 const GoogleServiceAuthError& error) { |
193 switch (error.state()) { | 207 switch (error.state()) { |
194 case GoogleServiceAuthError::NONE: | 208 case GoogleServiceAuthError::NONE: |
195 case GoogleServiceAuthError::CAPTCHA_REQUIRED: | 209 case GoogleServiceAuthError::CAPTCHA_REQUIRED: |
196 case GoogleServiceAuthError::TWO_FACTOR: | 210 case GoogleServiceAuthError::TWO_FACTOR: |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
320 policy::FormatStoreStatus(status.store_status(), | 334 policy::FormatStoreStatus(status.store_status(), |
321 status.validation_status())), | 335 status.validation_status())), |
322 true); | 336 true); |
323 return; | 337 return; |
324 case policy::EnrollmentStatus::STATUS_STORE_TOKEN_AND_ID_FAILED: | 338 case policy::EnrollmentStatus::STATUS_STORE_TOKEN_AND_ID_FAILED: |
325 // This error should not happen for enterprise enrollment. | 339 // This error should not happen for enterprise enrollment. |
326 ShowError(IDS_ENTERPRISE_ENROLLMENT_STATUS_STORE_TOKEN_AND_ID_FAILED, | 340 ShowError(IDS_ENTERPRISE_ENROLLMENT_STATUS_STORE_TOKEN_AND_ID_FAILED, |
327 true); | 341 true); |
328 NOTREACHED(); | 342 NOTREACHED(); |
329 return; | 343 return; |
| 344 case policy::EnrollmentStatus::STATUS_DEVICE_NAMING_FAILED: |
| 345 ShowError(IDS_ENTERPRISE_ENROLLMENT_DEVICE_NAMING_ERROR, false); |
| 346 return; |
330 } | 347 } |
331 NOTREACHED(); | 348 NOTREACHED(); |
332 } | 349 } |
333 | 350 |
334 // EnrollmentScreenHandler BaseScreenHandler implementation ----- | 351 // EnrollmentScreenHandler BaseScreenHandler implementation ----- |
335 | 352 |
336 void EnrollmentScreenHandler::Initialize() { | 353 void EnrollmentScreenHandler::Initialize() { |
337 if (show_on_init_) { | 354 if (show_on_init_) { |
338 Show(); | 355 Show(); |
339 show_on_init_ = false; | 356 show_on_init_ = false; |
340 } | 357 } |
341 } | 358 } |
342 | 359 |
343 void EnrollmentScreenHandler::DeclareLocalizedValues( | 360 void EnrollmentScreenHandler::DeclareLocalizedValues( |
344 ::login::LocalizedValuesBuilder* builder) { | 361 ::login::LocalizedValuesBuilder* builder) { |
345 builder->Add("oauthEnrollScreenTitle", | 362 builder->Add("oauthEnrollScreenTitle", |
346 IDS_ENTERPRISE_ENROLLMENT_SCREEN_TITLE); | 363 IDS_ENTERPRISE_ENROLLMENT_SCREEN_TITLE); |
347 builder->Add("oauthEnrollDescription", IDS_ENTERPRISE_ENROLLMENT_DESCRIPTION); | 364 builder->Add("oauthEnrollDescription", IDS_ENTERPRISE_ENROLLMENT_DESCRIPTION); |
348 builder->Add("oauthEnrollReEnrollmentText", | 365 builder->Add("oauthEnrollReEnrollmentText", |
349 IDS_ENTERPRISE_ENROLLMENT_RE_ENROLLMENT_TEXT); | 366 IDS_ENTERPRISE_ENROLLMENT_RE_ENROLLMENT_TEXT); |
350 builder->Add("oauthEnrollRetry", IDS_ENTERPRISE_ENROLLMENT_RETRY); | 367 builder->Add("oauthEnrollRetry", IDS_ENTERPRISE_ENROLLMENT_RETRY); |
351 builder->Add("oauthEnrollCancel", IDS_ENTERPRISE_ENROLLMENT_CANCEL); | 368 builder->Add("oauthEnrollCancel", IDS_ENTERPRISE_ENROLLMENT_CANCEL); |
352 builder->Add("oauthEnrollBack", IDS_ENTERPRISE_ENROLLMENT_BACK); | 369 builder->Add("oauthEnrollBack", IDS_ENTERPRISE_ENROLLMENT_BACK); |
353 builder->Add("oauthEnrollDone", IDS_ENTERPRISE_ENROLLMENT_DONE); | 370 builder->Add("oauthEnrollDone", IDS_ENTERPRISE_ENROLLMENT_DONE); |
| 371 builder->Add("oauthEnrollContinue", IDS_ENTERPRISE_ENROLLMENT_CONTINUE); |
354 builder->Add("oauthEnrollSuccess", IDS_ENTERPRISE_ENROLLMENT_SUCCESS); | 372 builder->Add("oauthEnrollSuccess", IDS_ENTERPRISE_ENROLLMENT_SUCCESS); |
| 373 builder->Add("oauthEnrollNaming", IDS_ENTERPRISE_ENROLLMENT_NAMING); |
355 builder->Add("oauthEnrollExplainLink", | 374 builder->Add("oauthEnrollExplainLink", |
356 IDS_ENTERPRISE_ENROLLMENT_EXPLAIN_LINK); | 375 IDS_ENTERPRISE_ENROLLMENT_EXPLAIN_LINK); |
357 builder->Add("oauthEnrollWorking", IDS_ENTERPRISE_ENROLLMENT_WORKING); | 376 builder->Add("oauthEnrollWorking", IDS_ENTERPRISE_ENROLLMENT_WORKING); |
| 377 builder->Add("oauthEnrollAssetIdLabel", |
| 378 IDS_ENTERPRISE_ENROLLMENT_ASSET_ID_LABEL); |
| 379 builder->Add("oauthEnrollLocationLabel", |
| 380 IDS_ENTERPRISE_ENROLLMENT_LOCATION_LABEL); |
358 } | 381 } |
359 | 382 |
360 OobeUI::Screen EnrollmentScreenHandler::GetCurrentScreen() const { | 383 OobeUI::Screen EnrollmentScreenHandler::GetCurrentScreen() const { |
361 OobeUI::Screen screen = OobeUI::SCREEN_UNKNOWN; | 384 OobeUI::Screen screen = OobeUI::SCREEN_UNKNOWN; |
362 OobeUI* oobe_ui = static_cast<OobeUI*>(web_ui()->GetController()); | 385 OobeUI* oobe_ui = static_cast<OobeUI*>(web_ui()->GetController()); |
363 if (oobe_ui) | 386 if (oobe_ui) |
364 screen = oobe_ui->current_screen(); | 387 screen = oobe_ui->current_screen(); |
365 return screen; | 388 return screen; |
366 } | 389 } |
367 | 390 |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
507 frame_error_ = frame_error; | 530 frame_error_ = frame_error; |
508 | 531 |
509 if (network_state_informer_->state() != NetworkStateInformer::ONLINE) | 532 if (network_state_informer_->state() != NetworkStateInformer::ONLINE) |
510 return; | 533 return; |
511 if (frame_error_) | 534 if (frame_error_) |
512 UpdateState(NetworkError::ERROR_REASON_FRAME_ERROR); | 535 UpdateState(NetworkError::ERROR_REASON_FRAME_ERROR); |
513 else | 536 else |
514 UpdateState(NetworkError::ERROR_REASON_UPDATE); | 537 UpdateState(NetworkError::ERROR_REASON_UPDATE); |
515 } | 538 } |
516 | 539 |
| 540 void EnrollmentScreenHandler::HandleDeviceNaming(const std::string& asset_id, |
| 541 const std::string& location) { |
| 542 |
| 543 // TODO: add the device attribute update request |
| 544 // If DeviceAttributeUpdateResponse SUCCESS then status = 0 |
| 545 int status = 1; |
| 546 if (status != 0) { |
| 547 // Show DeviceAttributeUpdate error |
| 548 ShowEnrollmentStatus(policy::EnrollmentStatus::ForStatus( |
| 549 policy::EnrollmentStatus::STATUS_DEVICE_NAMING_FAILED)); |
| 550 } else { |
| 551 ShowEnrollmentStatus(policy::EnrollmentStatus::ForStatus( |
| 552 policy::EnrollmentStatus::STATUS_SUCCESS)); |
| 553 } |
| 554 } |
| 555 |
517 void EnrollmentScreenHandler::ShowStep(const char* step) { | 556 void EnrollmentScreenHandler::ShowStep(const char* step) { |
518 CallJS("showStep", std::string(step)); | 557 CallJS("showStep", std::string(step)); |
519 } | 558 } |
520 | 559 |
521 void EnrollmentScreenHandler::ShowError(int message_id, bool retry) { | 560 void EnrollmentScreenHandler::ShowError(int message_id, bool retry) { |
522 ShowErrorMessage(l10n_util::GetStringUTF8(message_id), retry); | 561 ShowErrorMessage(l10n_util::GetStringUTF8(message_id), retry); |
523 } | 562 } |
524 | 563 |
525 void EnrollmentScreenHandler::ShowErrorMessage(const std::string& message, | 564 void EnrollmentScreenHandler::ShowErrorMessage(const std::string& message, |
526 bool retry) { | 565 bool retry) { |
(...skipping 18 matching lines...) Expand all Loading... |
545 : kEnrollmentHelpTopicRegular); | 584 : kEnrollmentHelpTopicRegular); |
546 | 585 |
547 ShowScreen(OobeUI::kScreenOobeEnrollment, &screen_data); | 586 ShowScreen(OobeUI::kScreenOobeEnrollment, &screen_data); |
548 if (first_show_) { | 587 if (first_show_) { |
549 first_show_ = false; | 588 first_show_ = false; |
550 UpdateStateInternal(NetworkError::ERROR_REASON_UPDATE, true); | 589 UpdateStateInternal(NetworkError::ERROR_REASON_UPDATE, true); |
551 } | 590 } |
552 histogram_helper_->OnScreenShow(); | 591 histogram_helper_->OnScreenShow(); |
553 } | 592 } |
554 | 593 |
| 594 void EnrollmentScreenHandler::OnBeforeShowNaming( |
| 595 const base::DictionaryValue& data) { |
| 596 CallJS("onBeforeShowNaming", data); |
| 597 } |
| 598 |
555 } // namespace chromeos | 599 } // namespace chromeos |
OLD | NEW |