Chromium Code Reviews| Index: chrome/browser/chromeos/login/wizard_controller.cc |
| diff --git a/chrome/browser/chromeos/login/wizard_controller.cc b/chrome/browser/chromeos/login/wizard_controller.cc |
| index 616218e1e173bc9a5480b921e43a8d70bd1a7901..728402c1a51fb06fa5f3be1823144421d3d397a3 100644 |
| --- a/chrome/browser/chromeos/login/wizard_controller.cc |
| +++ b/chrome/browser/chromeos/login/wizard_controller.cc |
| @@ -28,6 +28,7 @@ |
| #include "chrome/browser/chromeos/login/existing_user_controller.h" |
| #include "chrome/browser/chromeos/login/helper.h" |
| #include "chrome/browser/chromeos/login/html_page_screen.h" |
| +#include "chrome/browser/chromeos/login/hwid_checker.h" |
| #include "chrome/browser/chromeos/login/login_display_host.h" |
| #include "chrome/browser/chromeos/login/login_utils.h" |
| #include "chrome/browser/chromeos/login/network_screen.h" |
| @@ -37,6 +38,7 @@ |
| #include "chrome/browser/chromeos/login/update_screen.h" |
| #include "chrome/browser/chromeos/login/user_image_screen.h" |
| #include "chrome/browser/chromeos/login/user_manager.h" |
| +#include "chrome/browser/chromeos/login/wrong_hwid_screen.h" |
| #include "chrome/browser/chromeos/settings/cros_settings.h" |
| #include "chrome/browser/chromeos/settings/cros_settings_names.h" |
| #include "chrome/browser/prefs/pref_registry_simple.h" |
| @@ -114,6 +116,7 @@ const char WizardController::kRegistrationScreenName[] = "register"; |
| const char WizardController::kHTMLPageScreenName[] = "html"; |
| const char WizardController::kEnterpriseEnrollmentScreenName[] = "enroll"; |
| const char WizardController::kResetScreenName[] = "reset"; |
| +const char WizardController::kWrongHWIDScreenName[] = "wrong-hwid"; |
| // Passing this parameter as a "first screen" initiates full OOBE flow. |
| const char WizardController::kOutOfBoxScreenName[] = "oobe"; |
| @@ -177,6 +180,9 @@ void WizardController::Init(const std::string& first_screen_name, |
| chrome::NOTIFICATION_WIZARD_FIRST_SCREEN_SHOWN, |
| content::NotificationService::AllSources(), |
| content::NotificationService::NoDetails()); |
| + if (!IsMachineHWIDCorrect() && !IsDeviceRegistered() && |
| + first_screen_name.empty()) |
| + ShowWrongHWIDScreen(); |
|
Nikita (slow)
2013/02/11 17:09:03
nit: Add {}
You could also move this above and pl
dzhioev (left Google)
2013/02/11 23:32:56
I am not sure that it will be correct. We want to
Nikita (slow)
2013/02/12 07:51:50
I see, yes that makes sense to open first screen b
|
| } |
| chromeos::NetworkScreen* WizardController::GetNetworkScreen() { |
| @@ -257,6 +263,15 @@ chromeos::ResetScreen* WizardController::GetResetScreen() { |
| return reset_screen_.get(); |
| } |
| +chromeos::WrongHWIDScreen* WizardController::GetWrongHWIDScreen() { |
| + if (!wrong_hwid_screen_.get()) { |
| + wrong_hwid_screen_.reset( |
| + new chromeos::WrongHWIDScreen( |
| + this, oobe_display_->GetWrongHWIDScreenActor())); |
| + } |
| + return wrong_hwid_screen_.get(); |
| +} |
| + |
| void WizardController::ShowNetworkScreen() { |
| VLOG(1) << "Showing network screen."; |
| SetStatusAreaVisible(false); |
| @@ -351,6 +366,12 @@ void WizardController::ShowResetScreen() { |
| SetCurrentScreen(GetResetScreen()); |
| } |
| +void WizardController::ShowWrongHWIDScreen() { |
| + VLOG(1) << "Showing wrong HWID screen."; |
| + SetStatusAreaVisible(false); |
| + SetCurrentScreen(GetWrongHWIDScreen()); |
| +} |
| + |
| void WizardController::SkipToLoginForTesting() { |
| MarkEulaAccepted(); |
| PerformPostEulaActions(); |
| @@ -528,6 +549,14 @@ void WizardController::OnResetCanceled() { |
| ShowLoginScreen(); |
| } |
| +void WizardController::OnWrongHWIDWarningSkipped() { |
| + if (IsOobeCompleted()) { |
| + ShowLoginScreen(); |
|
Nikita (slow)
2013/02/11 17:09:03
nit: Drop {}
dzhioev (left Google)
2013/02/11 23:32:56
It seems like code is incorrect here. I'll check i
Nikita (slow)
2013/02/12 07:51:50
Do you mean that it has to use previous_screen_ he
dzhioev (left Google)
2013/02/12 13:57:51
Yes, I do. I think code shoud be same as in Wizard
|
| + } else { |
| + ShowNetworkScreen(); |
| + } |
| +} |
| + |
| void WizardController::OnEnterpriseAutoEnrollmentDone() { |
| VLOG(1) << "Automagic enrollment done, resuming previous signin"; |
| ResumeLoginScreen(); |
| @@ -628,6 +657,8 @@ void WizardController::AdvanceToScreen(const std::string& screen_name) { |
| ShowHTMLPageScreen(); |
| } else if (screen_name == kEnterpriseEnrollmentScreenName) { |
| ShowEnterpriseEnrollmentScreen(); |
| + } else if (screen_name == kWrongHWIDScreenName) { |
| + ShowWrongHWIDScreen(); |
| } else if (screen_name != kTestNoScreenName) { |
| if (is_out_of_box_) { |
| ShowNetworkScreen(); |
| @@ -790,6 +821,9 @@ void WizardController::OnExit(ExitCodes exit_code) { |
| case ENTERPRISE_AUTO_MAGIC_ENROLLMENT_COMPLETED: |
| OnEnterpriseAutoEnrollmentDone(); |
| break; |
| + case WRONG_HWID_WARNING_SKIPPED: |
| + OnWrongHWIDWarningSkipped(); |
| + break; |
| default: |
| NOTREACHED(); |
| } |