| 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 "ash/system/devicetype_utils.h" | 9 #include "ash/system/devicetype_utils.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 #include "ui/base/l10n/l10n_util.h" | 37 #include "ui/base/l10n/l10n_util.h" |
| 38 | 38 |
| 39 namespace chromeos { | 39 namespace chromeos { |
| 40 namespace { | 40 namespace { |
| 41 | 41 |
| 42 const char kJsScreenPath[] = "login.OAuthEnrollmentScreen"; | 42 const char kJsScreenPath[] = "login.OAuthEnrollmentScreen"; |
| 43 | 43 |
| 44 // Enrollment step names. | 44 // Enrollment step names. |
| 45 const char kEnrollmentStepSignin[] = "signin"; | 45 const char kEnrollmentStepSignin[] = "signin"; |
| 46 const char kEnrollmentStepAdJoin[] = "ad-join"; | 46 const char kEnrollmentStepAdJoin[] = "ad-join"; |
| 47 const char kEnrollmentStepPickLicense[] = "license"; |
| 47 const char kEnrollmentStepSuccess[] = "success"; | 48 const char kEnrollmentStepSuccess[] = "success"; |
| 48 const char kEnrollmentStepWorking[] = "working"; | 49 const char kEnrollmentStepWorking[] = "working"; |
| 49 | 50 |
| 50 // Enrollment mode constants used in the UI. This needs to be kept in sync with | 51 // Enrollment mode constants used in the UI. This needs to be kept in sync with |
| 51 // oobe_screen_oauth_enrollment.js. | 52 // oobe_screen_oauth_enrollment.js. |
| 52 const char kEnrollmentModeUIForced[] = "forced"; | 53 const char kEnrollmentModeUIForced[] = "forced"; |
| 53 const char kEnrollmentModeUIManual[] = "manual"; | 54 const char kEnrollmentModeUIManual[] = "manual"; |
| 54 const char kEnrollmentModeUIRecovery[] = "recovery"; | 55 const char kEnrollmentModeUIRecovery[] = "recovery"; |
| 55 | 56 |
| 56 // Converts |mode| to a mode identifier for the UI. | 57 // Converts |mode| to a mode identifier for the UI. |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 AddCallback("oauthEnrollAdCompleteLogin", | 143 AddCallback("oauthEnrollAdCompleteLogin", |
| 143 &EnrollmentScreenHandler::HandleAdCompleteLogin); | 144 &EnrollmentScreenHandler::HandleAdCompleteLogin); |
| 144 AddCallback("oauthEnrollRetry", | 145 AddCallback("oauthEnrollRetry", |
| 145 &EnrollmentScreenHandler::HandleRetry); | 146 &EnrollmentScreenHandler::HandleRetry); |
| 146 AddCallback("frameLoadingCompleted", | 147 AddCallback("frameLoadingCompleted", |
| 147 &EnrollmentScreenHandler::HandleFrameLoadingCompleted); | 148 &EnrollmentScreenHandler::HandleFrameLoadingCompleted); |
| 148 AddCallback("oauthEnrollAttributes", | 149 AddCallback("oauthEnrollAttributes", |
| 149 &EnrollmentScreenHandler::HandleDeviceAttributesProvided); | 150 &EnrollmentScreenHandler::HandleDeviceAttributesProvided); |
| 150 AddCallback("oauthEnrollOnLearnMore", | 151 AddCallback("oauthEnrollOnLearnMore", |
| 151 &EnrollmentScreenHandler::HandleOnLearnMore); | 152 &EnrollmentScreenHandler::HandleOnLearnMore); |
| 153 AddCallback("onLicenseTypeSelected", |
| 154 &EnrollmentScreenHandler::HandleLicenseTypeSelected); |
| 152 } | 155 } |
| 153 | 156 |
| 154 // EnrollmentScreenHandler | 157 // EnrollmentScreenHandler |
| 155 // EnrollmentScreenActor implementation ----------------------------------- | 158 // EnrollmentScreenActor implementation ----------------------------------- |
| 156 | 159 |
| 157 void EnrollmentScreenHandler::SetParameters( | 160 void EnrollmentScreenHandler::SetParameters( |
| 158 Controller* controller, | 161 Controller* controller, |
| 159 const policy::EnrollmentConfig& config) { | 162 const policy::EnrollmentConfig& config) { |
| 160 CHECK(config.should_enroll()); | 163 CHECK(config.should_enroll()); |
| 161 controller_ = controller; | 164 controller_ = controller; |
| 162 config_ = config; | 165 config_ = config; |
| 163 } | 166 } |
| 164 | 167 |
| 165 void EnrollmentScreenHandler::Show() { | 168 void EnrollmentScreenHandler::Show() { |
| 166 if (!page_is_ready()) | 169 if (!page_is_ready()) |
| 167 show_on_init_ = true; | 170 show_on_init_ = true; |
| 168 else | 171 else |
| 169 DoShow(); | 172 DoShow(); |
| 170 } | 173 } |
| 171 | 174 |
| 172 void EnrollmentScreenHandler::Hide() { | 175 void EnrollmentScreenHandler::Hide() { |
| 173 } | 176 } |
| 174 | 177 |
| 175 void EnrollmentScreenHandler::ShowSigninScreen() { | 178 void EnrollmentScreenHandler::ShowSigninScreen() { |
| 176 observe_network_failure_ = true; | 179 observe_network_failure_ = true; |
| 177 ShowStep(kEnrollmentStepSignin); | 180 ShowStep(kEnrollmentStepSignin); |
| 178 } | 181 } |
| 179 | 182 |
| 183 void EnrollmentScreenHandler::ShowLicenseTypeSelectionScreen( |
| 184 const base::DictionaryValue& license_types) { |
| 185 CallJS("setAvailableLicenseTypes", license_types); |
| 186 ShowStep(kEnrollmentStepPickLicense); |
| 187 } |
| 188 |
| 180 void EnrollmentScreenHandler::ShowAdJoin() { | 189 void EnrollmentScreenHandler::ShowAdJoin() { |
| 181 observe_network_failure_ = false; | 190 observe_network_failure_ = false; |
| 182 if (!authpolicy_login_helper_) | 191 if (!authpolicy_login_helper_) |
| 183 authpolicy_login_helper_ = base::MakeUnique<AuthPolicyLoginHelper>(); | 192 authpolicy_login_helper_ = base::MakeUnique<AuthPolicyLoginHelper>(); |
| 184 ShowStep(kEnrollmentStepAdJoin); | 193 ShowStep(kEnrollmentStepAdJoin); |
| 185 } | 194 } |
| 186 | 195 |
| 187 void EnrollmentScreenHandler::ShowAttributePromptScreen( | 196 void EnrollmentScreenHandler::ShowAttributePromptScreen( |
| 188 const std::string& asset_id, | 197 const std::string& asset_id, |
| 189 const std::string& location) { | 198 const std::string& location) { |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 351 false); | 360 false); |
| 352 return; | 361 return; |
| 353 case policy::EnrollmentStatus::ACTIVE_DIRECTORY_POLICY_FETCH_FAILED: | 362 case policy::EnrollmentStatus::ACTIVE_DIRECTORY_POLICY_FETCH_FAILED: |
| 354 ShowError(IDS_ENTERPRISE_ENROLLMENT_ERROR_ACTIVE_DIRECTORY_POLICY_FETCH, | 363 ShowError(IDS_ENTERPRISE_ENROLLMENT_ERROR_ACTIVE_DIRECTORY_POLICY_FETCH, |
| 355 false); | 364 false); |
| 356 return; | 365 return; |
| 357 case policy::EnrollmentStatus::DM_TOKEN_STORE_FAILED: | 366 case policy::EnrollmentStatus::DM_TOKEN_STORE_FAILED: |
| 358 ShowError(IDS_ENTERPRISE_ENROLLMENT_ERROR_SAVE_DEVICE_CONFIGURATION, | 367 ShowError(IDS_ENTERPRISE_ENROLLMENT_ERROR_SAVE_DEVICE_CONFIGURATION, |
| 359 false); | 368 false); |
| 360 return; | 369 return; |
| 370 case policy::EnrollmentStatus::LICENSE_REQUEST_FAILED: |
| 371 ShowError(IDS_ENTERPRISE_ENROLLMENT_ERROR_LICENSE_REQUEST, false); |
| 372 return; |
| 361 } | 373 } |
| 362 NOTREACHED(); | 374 NOTREACHED(); |
| 363 } | 375 } |
| 364 | 376 |
| 365 // EnrollmentScreenHandler BaseScreenHandler implementation ----- | 377 // EnrollmentScreenHandler BaseScreenHandler implementation ----- |
| 366 | 378 |
| 367 void EnrollmentScreenHandler::Initialize() { | 379 void EnrollmentScreenHandler::Initialize() { |
| 368 if (show_on_init_) { | 380 if (show_on_init_) { |
| 369 Show(); | 381 Show(); |
| 370 show_on_init_ = false; | 382 show_on_init_ = false; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 397 builder->Add("oauthEnrollAdMachineNameInput", | 409 builder->Add("oauthEnrollAdMachineNameInput", |
| 398 IDS_AD_MACHINE_NAME_INPUT_LABEL); | 410 IDS_AD_MACHINE_NAME_INPUT_LABEL); |
| 399 builder->Add("oauthEnrollAdDomainJoinWelcomeMessage", | 411 builder->Add("oauthEnrollAdDomainJoinWelcomeMessage", |
| 400 IDS_AD_DOMAIN_JOIN_WELCOME_MESSAGE); | 412 IDS_AD_DOMAIN_JOIN_WELCOME_MESSAGE); |
| 401 builder->Add("adLoginUsername", IDS_AD_LOGIN_USER); | 413 builder->Add("adLoginUsername", IDS_AD_LOGIN_USER); |
| 402 builder->Add("adLoginInvalidUsername", IDS_AD_INVALID_USERNAME); | 414 builder->Add("adLoginInvalidUsername", IDS_AD_INVALID_USERNAME); |
| 403 builder->Add("adLoginPassword", IDS_AD_LOGIN_PASSWORD); | 415 builder->Add("adLoginPassword", IDS_AD_LOGIN_PASSWORD); |
| 404 builder->Add("adLoginInvalidPassword", IDS_AD_INVALID_PASSWORD); | 416 builder->Add("adLoginInvalidPassword", IDS_AD_INVALID_PASSWORD); |
| 405 builder->Add("adJoinErrorMachineNameInvalid", IDS_AD_MACHINENAME_INVALID); | 417 builder->Add("adJoinErrorMachineNameInvalid", IDS_AD_MACHINENAME_INVALID); |
| 406 builder->Add("adJoinErrorMachineNameTooLong", IDS_AD_MACHINENAME_TOO_LONG); | 418 builder->Add("adJoinErrorMachineNameTooLong", IDS_AD_MACHINENAME_TOO_LONG); |
| 419 builder->Add("licenseSelectionCardTitle", |
| 420 IDS_ENTERPRISE_ENROLLMENT_LICENSE_SELECTION); |
| 421 builder->Add("licenseSelectionCardExplanation", |
| 422 IDS_ENTERPRISE_ENROLLMENT_LICENSE_SELECTION_EXPLANATION); |
| 423 builder->Add("perpetualLicenseTypeTitle", |
| 424 IDS_ENTERPRISE_ENROLLMENT_PERPETUAL_LICENSE_TYPE); |
| 425 builder->Add("annualLicenseTypeTitle", |
| 426 IDS_ENTERPRISE_ENROLLMENT_ANNUAL_LICENSE_TYPE); |
| 427 builder->Add("kioskLicenseTypeTitle", |
| 428 IDS_ENTERPRISE_ENROLLMENT_KIOSK_LICENSE_TYPE); |
| 429 builder->Add("licenseCountTemplate", |
| 430 IDS_ENTERPRISE_ENROLLMENT_LICENSES_REMAINING_TEMPLATE); |
| 407 } | 431 } |
| 408 | 432 |
| 409 bool EnrollmentScreenHandler::IsOnEnrollmentScreen() const { | 433 bool EnrollmentScreenHandler::IsOnEnrollmentScreen() const { |
| 410 return (GetCurrentScreen() == kScreenId); | 434 return (GetCurrentScreen() == kScreenId); |
| 411 } | 435 } |
| 412 | 436 |
| 413 bool EnrollmentScreenHandler::IsEnrollmentScreenHiddenByError() const { | 437 bool EnrollmentScreenHandler::IsEnrollmentScreenHiddenByError() const { |
| 414 return (GetCurrentScreen() == OobeScreen::SCREEN_ERROR_MESSAGE && | 438 return (GetCurrentScreen() == OobeScreen::SCREEN_ERROR_MESSAGE && |
| 415 error_screen_->GetParentScreen() == kScreenId); | 439 error_screen_->GetParentScreen() == kScreenId); |
| 416 } | 440 } |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 625 const std::string& location) { | 649 const std::string& location) { |
| 626 controller_->OnDeviceAttributeProvided(asset_id, location); | 650 controller_->OnDeviceAttributeProvided(asset_id, location); |
| 627 } | 651 } |
| 628 | 652 |
| 629 void EnrollmentScreenHandler::HandleOnLearnMore() { | 653 void EnrollmentScreenHandler::HandleOnLearnMore() { |
| 630 if (!help_app_.get()) | 654 if (!help_app_.get()) |
| 631 help_app_ = new HelpAppLauncher(GetNativeWindow()); | 655 help_app_ = new HelpAppLauncher(GetNativeWindow()); |
| 632 help_app_->ShowHelpTopic(HelpAppLauncher::HELP_DEVICE_ATTRIBUTES); | 656 help_app_->ShowHelpTopic(HelpAppLauncher::HELP_DEVICE_ATTRIBUTES); |
| 633 } | 657 } |
| 634 | 658 |
| 659 void EnrollmentScreenHandler::HandleLicenseTypeSelected( |
| 660 const std::string& licenseType) { |
| 661 controller_->OnLicenseTypeSelected(licenseType); |
| 662 } |
| 663 |
| 635 void EnrollmentScreenHandler::ShowStep(const char* step) { | 664 void EnrollmentScreenHandler::ShowStep(const char* step) { |
| 636 CallJS("showStep", std::string(step)); | 665 CallJS("showStep", std::string(step)); |
| 637 } | 666 } |
| 638 | 667 |
| 639 void EnrollmentScreenHandler::ShowError(int message_id, bool retry) { | 668 void EnrollmentScreenHandler::ShowError(int message_id, bool retry) { |
| 640 ShowErrorMessage(l10n_util::GetStringUTF8(message_id), retry); | 669 ShowErrorMessage(l10n_util::GetStringUTF8(message_id), retry); |
| 641 } | 670 } |
| 642 | 671 |
| 643 void EnrollmentScreenHandler::ShowErrorForDevice(int message_id, bool retry) { | 672 void EnrollmentScreenHandler::ShowErrorForDevice(int message_id, bool retry) { |
| 644 ShowErrorMessage( | 673 ShowErrorMessage( |
| (...skipping 25 matching lines...) Expand all Loading... |
| 670 | 699 |
| 671 ShowScreenWithData(OobeScreen::SCREEN_OOBE_ENROLLMENT, &screen_data); | 700 ShowScreenWithData(OobeScreen::SCREEN_OOBE_ENROLLMENT, &screen_data); |
| 672 if (first_show_) { | 701 if (first_show_) { |
| 673 first_show_ = false; | 702 first_show_ = false; |
| 674 UpdateStateInternal(NetworkError::ERROR_REASON_UPDATE, true); | 703 UpdateStateInternal(NetworkError::ERROR_REASON_UPDATE, true); |
| 675 } | 704 } |
| 676 histogram_helper_->OnScreenShow(); | 705 histogram_helper_->OnScreenShow(); |
| 677 } | 706 } |
| 678 | 707 |
| 679 } // namespace chromeos | 708 } // namespace chromeos |
| OLD | NEW |