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(); |
} |