| 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 |