Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(935)

Unified Diff: chrome/browser/chromeos/login/wizard_controller.cc

Issue 12213110: Implemented screen notifying users about malformed HWID. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Removed log message. Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();
}

Powered by Google App Engine
This is Rietveld 408576698