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

Side by Side 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: Implemented wizard controller test. 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/chromeos/login/wizard_controller.h" 5 #include "chrome/browser/chromeos/login/wizard_controller.h"
6 6
7 #include <signal.h> 7 #include <signal.h>
8 #include <stdlib.h> 8 #include <stdlib.h>
9 #include <sys/types.h> 9 #include <sys/types.h>
10 10
(...skipping 12 matching lines...) Expand all
23 #include "base/values.h" 23 #include "base/values.h"
24 #include "chrome/browser/browser_process.h" 24 #include "chrome/browser/browser_process.h"
25 #include "chrome/browser/chromeos/cros/cros_library.h" 25 #include "chrome/browser/chromeos/cros/cros_library.h"
26 #include "chrome/browser/chromeos/cros/cryptohome_library.h" 26 #include "chrome/browser/chromeos/cros/cryptohome_library.h"
27 #include "chrome/browser/chromeos/customization_document.h" 27 #include "chrome/browser/chromeos/customization_document.h"
28 #include "chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen. h" 28 #include "chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen. h"
29 #include "chrome/browser/chromeos/login/eula_screen.h" 29 #include "chrome/browser/chromeos/login/eula_screen.h"
30 #include "chrome/browser/chromeos/login/existing_user_controller.h" 30 #include "chrome/browser/chromeos/login/existing_user_controller.h"
31 #include "chrome/browser/chromeos/login/helper.h" 31 #include "chrome/browser/chromeos/login/helper.h"
32 #include "chrome/browser/chromeos/login/html_page_screen.h" 32 #include "chrome/browser/chromeos/login/html_page_screen.h"
33 #include "chrome/browser/chromeos/login/hwid_checker.h"
33 #include "chrome/browser/chromeos/login/login_display_host.h" 34 #include "chrome/browser/chromeos/login/login_display_host.h"
34 #include "chrome/browser/chromeos/login/login_utils.h" 35 #include "chrome/browser/chromeos/login/login_utils.h"
35 #include "chrome/browser/chromeos/login/network_screen.h" 36 #include "chrome/browser/chromeos/login/network_screen.h"
36 #include "chrome/browser/chromeos/login/oobe_display.h" 37 #include "chrome/browser/chromeos/login/oobe_display.h"
37 #include "chrome/browser/chromeos/login/registration_screen.h" 38 #include "chrome/browser/chromeos/login/registration_screen.h"
38 #include "chrome/browser/chromeos/login/reset_screen.h" 39 #include "chrome/browser/chromeos/login/reset_screen.h"
39 #include "chrome/browser/chromeos/login/terms_of_service_screen.h" 40 #include "chrome/browser/chromeos/login/terms_of_service_screen.h"
40 #include "chrome/browser/chromeos/login/update_screen.h" 41 #include "chrome/browser/chromeos/login/update_screen.h"
41 #include "chrome/browser/chromeos/login/user_image_screen.h" 42 #include "chrome/browser/chromeos/login/user_image_screen.h"
42 #include "chrome/browser/chromeos/login/user_manager.h" 43 #include "chrome/browser/chromeos/login/user_manager.h"
44 #include "chrome/browser/chromeos/login/wrong_hwid_screen.h"
43 #include "chrome/browser/chromeos/settings/cros_settings.h" 45 #include "chrome/browser/chromeos/settings/cros_settings.h"
44 #include "chrome/browser/chromeos/settings/cros_settings_names.h" 46 #include "chrome/browser/chromeos/settings/cros_settings_names.h"
45 #include "chrome/browser/profiles/profile.h" 47 #include "chrome/browser/profiles/profile.h"
46 #include "chrome/browser/profiles/profile_manager.h" 48 #include "chrome/browser/profiles/profile_manager.h"
47 #include "chrome/browser/ui/options/options_util.h" 49 #include "chrome/browser/ui/options/options_util.h"
48 #include "chrome/common/chrome_notification_types.h" 50 #include "chrome/common/chrome_notification_types.h"
49 #include "chrome/common/pref_names.h" 51 #include "chrome/common/pref_names.h"
50 #include "chromeos/dbus/dbus_thread_manager.h" 52 #include "chromeos/dbus/dbus_thread_manager.h"
51 #include "chromeos/dbus/session_manager_client.h" 53 #include "chromeos/dbus/session_manager_client.h"
52 #include "content/public/browser/browser_thread.h" 54 #include "content/public/browser/browser_thread.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 const char WizardController::kNetworkScreenName[] = "network"; 114 const char WizardController::kNetworkScreenName[] = "network";
113 const char WizardController::kLoginScreenName[] = "login"; 115 const char WizardController::kLoginScreenName[] = "login";
114 const char WizardController::kUpdateScreenName[] = "update"; 116 const char WizardController::kUpdateScreenName[] = "update";
115 const char WizardController::kUserImageScreenName[] = "image"; 117 const char WizardController::kUserImageScreenName[] = "image";
116 const char WizardController::kEulaScreenName[] = "eula"; 118 const char WizardController::kEulaScreenName[] = "eula";
117 const char WizardController::kRegistrationScreenName[] = "register"; 119 const char WizardController::kRegistrationScreenName[] = "register";
118 const char WizardController::kHTMLPageScreenName[] = "html"; 120 const char WizardController::kHTMLPageScreenName[] = "html";
119 const char WizardController::kEnterpriseEnrollmentScreenName[] = "enroll"; 121 const char WizardController::kEnterpriseEnrollmentScreenName[] = "enroll";
120 const char WizardController::kResetScreenName[] = "reset"; 122 const char WizardController::kResetScreenName[] = "reset";
121 const char WizardController::kTermsOfServiceScreenName[] = "tos"; 123 const char WizardController::kTermsOfServiceScreenName[] = "tos";
124 const char WizardController::kWrongHWIDScreenName[] = "wrong-hwid";
122 125
123 // Passing this parameter as a "first screen" initiates full OOBE flow. 126 // Passing this parameter as a "first screen" initiates full OOBE flow.
124 const char WizardController::kOutOfBoxScreenName[] = "oobe"; 127 const char WizardController::kOutOfBoxScreenName[] = "oobe";
125 128
126 // Special test value that commands not to create any window yet. 129 // Special test value that commands not to create any window yet.
127 const char WizardController::kTestNoScreenName[] = "test:nowindow"; 130 const char WizardController::kTestNoScreenName[] = "test:nowindow";
128 131
129 // Initialize default controller. 132 // Initialize default controller.
130 // static 133 // static
131 WizardController* WizardController::default_controller_ = NULL; 134 WizardController* WizardController::default_controller_ = NULL;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 bool oobe_complete = IsOobeCompleted(); 178 bool oobe_complete = IsOobeCompleted();
176 if (!oobe_complete || first_screen_name == kOutOfBoxScreenName) { 179 if (!oobe_complete || first_screen_name == kOutOfBoxScreenName) {
177 is_out_of_box_ = true; 180 is_out_of_box_ = true;
178 } 181 }
179 182
180 AdvanceToScreen(first_screen_name); 183 AdvanceToScreen(first_screen_name);
181 content::NotificationService::current()->Notify( 184 content::NotificationService::current()->Notify(
182 chrome::NOTIFICATION_WIZARD_FIRST_SCREEN_SHOWN, 185 chrome::NOTIFICATION_WIZARD_FIRST_SCREEN_SHOWN,
183 content::NotificationService::AllSources(), 186 content::NotificationService::AllSources(),
184 content::NotificationService::NoDetails()); 187 content::NotificationService::NoDetails());
188 if (!IsMachineHWIDCorrect() && !IsDeviceRegistered() &&
189 first_screen_name.empty())
190 ShowWrongHWIDScreen();
185 } 191 }
186 192
187 chromeos::NetworkScreen* WizardController::GetNetworkScreen() { 193 chromeos::NetworkScreen* WizardController::GetNetworkScreen() {
188 if (!network_screen_.get()) 194 if (!network_screen_.get())
189 network_screen_.reset(new chromeos::NetworkScreen( 195 network_screen_.reset(new chromeos::NetworkScreen(
190 this, oobe_display_->GetNetworkScreenActor())); 196 this, oobe_display_->GetNetworkScreenActor()));
191 return network_screen_.get(); 197 return network_screen_.get();
192 } 198 }
193 199
194 chromeos::UpdateScreen* WizardController::GetUpdateScreen() { 200 chromeos::UpdateScreen* WizardController::GetUpdateScreen() {
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 270
265 chromeos::TermsOfServiceScreen* WizardController::GetTermsOfServiceScreen() { 271 chromeos::TermsOfServiceScreen* WizardController::GetTermsOfServiceScreen() {
266 if (!terms_of_service_screen_.get()) { 272 if (!terms_of_service_screen_.get()) {
267 terms_of_service_screen_.reset( 273 terms_of_service_screen_.reset(
268 new chromeos::TermsOfServiceScreen( 274 new chromeos::TermsOfServiceScreen(
269 this, oobe_display_->GetTermsOfServiceScreenActor())); 275 this, oobe_display_->GetTermsOfServiceScreenActor()));
270 } 276 }
271 return terms_of_service_screen_.get(); 277 return terms_of_service_screen_.get();
272 } 278 }
273 279
280 chromeos::WrongHWIDScreen* WizardController::GetWrongHWIDScreen() {
281 if (!wrong_hwid_screen_.get()) {
282 wrong_hwid_screen_.reset(
283 new chromeos::WrongHWIDScreen(
284 this, oobe_display_->GetWrongHWIDScreenActor()));
285 }
286 return wrong_hwid_screen_.get();
287 }
288
274 void WizardController::ShowNetworkScreen() { 289 void WizardController::ShowNetworkScreen() {
275 VLOG(1) << "Showing network screen."; 290 VLOG(1) << "Showing network screen.";
276 SetStatusAreaVisible(false); 291 SetStatusAreaVisible(false);
277 SetCurrentScreen(GetNetworkScreen()); 292 SetCurrentScreen(GetNetworkScreen());
278 } 293 }
279 294
280 void WizardController::ShowLoginScreen() { 295 void WizardController::ShowLoginScreen() {
281 if (!time_eula_accepted_.is_null()) { 296 if (!time_eula_accepted_.is_null()) {
282 base::TimeDelta delta = base::Time::Now() - time_eula_accepted_; 297 base::TimeDelta delta = base::Time::Now() - time_eula_accepted_;
283 UMA_HISTOGRAM_MEDIUM_TIMES("OOBE.EULAToSignInTime", delta); 298 UMA_HISTOGRAM_MEDIUM_TIMES("OOBE.EULAToSignInTime", delta);
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 prefs::kTermsOfServiceURL)) { 391 prefs::kTermsOfServiceURL)) {
377 ShowUserImageScreen(); 392 ShowUserImageScreen();
378 return; 393 return;
379 } 394 }
380 395
381 VLOG(1) << "Showing Terms of Service screen."; 396 VLOG(1) << "Showing Terms of Service screen.";
382 SetStatusAreaVisible(true); 397 SetStatusAreaVisible(true);
383 SetCurrentScreen(GetTermsOfServiceScreen()); 398 SetCurrentScreen(GetTermsOfServiceScreen());
384 } 399 }
385 400
401 void WizardController::ShowWrongHWIDScreen() {
402 VLOG(1) << "Showing wrong HWID screen.";
403 SetStatusAreaVisible(false);
404 SetCurrentScreen(GetWrongHWIDScreen());
405 }
406
386 void WizardController::SkipToLoginForTesting() { 407 void WizardController::SkipToLoginForTesting() {
387 MarkEulaAccepted(); 408 MarkEulaAccepted();
388 PerformPostEulaActions(); 409 PerformPostEulaActions();
389 PerformPostUpdateActions(); 410 PerformPostUpdateActions();
390 ShowLoginScreen(); 411 ShowLoginScreen();
391 } 412 }
392 413
393 void WizardController::SkipPostLoginScreensForTesting() { 414 void WizardController::SkipPostLoginScreensForTesting() {
394 skip_post_login_screens_ = true; 415 skip_post_login_screens_ = true;
395 } 416 }
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 ShowLoginScreen(); 574 ShowLoginScreen();
554 } 575 }
555 576
556 void WizardController::OnResetCanceled() { 577 void WizardController::OnResetCanceled() {
557 if (previous_screen_) 578 if (previous_screen_)
558 SetCurrentScreen(previous_screen_); 579 SetCurrentScreen(previous_screen_);
559 else 580 else
560 ShowLoginScreen(); 581 ShowLoginScreen();
561 } 582 }
562 583
584 void WizardController::OnWrongHWIDWarningSkipped() {
585 if (previous_screen_)
586 SetCurrentScreen(previous_screen_);
587 else
588 ShowLoginScreen();
589 }
590
563 void WizardController::OnEnterpriseAutoEnrollmentDone() { 591 void WizardController::OnEnterpriseAutoEnrollmentDone() {
564 VLOG(1) << "Automagic enrollment done, resuming previous signin"; 592 VLOG(1) << "Automagic enrollment done, resuming previous signin";
565 ResumeLoginScreen(); 593 ResumeLoginScreen();
566 } 594 }
567 595
568 void WizardController::OnOOBECompleted() { 596 void WizardController::OnOOBECompleted() {
569 PerformPostUpdateActions(); 597 PerformPostUpdateActions();
570 ShowLoginScreen(); 598 ShowLoginScreen();
571 } 599 }
572 600
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 OnRegistrationSuccess(); 694 OnRegistrationSuccess();
667 } 695 }
668 } else if (screen_name == kResetScreenName) { 696 } else if (screen_name == kResetScreenName) {
669 ShowResetScreen(); 697 ShowResetScreen();
670 } else if (screen_name == kHTMLPageScreenName) { 698 } else if (screen_name == kHTMLPageScreenName) {
671 ShowHTMLPageScreen(); 699 ShowHTMLPageScreen();
672 } else if (screen_name == kEnterpriseEnrollmentScreenName) { 700 } else if (screen_name == kEnterpriseEnrollmentScreenName) {
673 ShowEnterpriseEnrollmentScreen(); 701 ShowEnterpriseEnrollmentScreen();
674 } else if (screen_name == kTermsOfServiceScreenName) { 702 } else if (screen_name == kTermsOfServiceScreenName) {
675 ShowTermsOfServiceScreen(); 703 ShowTermsOfServiceScreen();
704 } else if (screen_name == kWrongHWIDScreenName) {
705 ShowWrongHWIDScreen();
676 } else if (screen_name != kTestNoScreenName) { 706 } else if (screen_name != kTestNoScreenName) {
677 if (is_out_of_box_) { 707 if (is_out_of_box_) {
678 ShowNetworkScreen(); 708 ShowNetworkScreen();
679 } else { 709 } else {
680 ShowLoginScreen(); 710 ShowLoginScreen();
681 } 711 }
682 } 712 }
683 } 713 }
684 714
685 // static 715 // static
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 OnResetCanceled(); 863 OnResetCanceled();
834 break; 864 break;
835 case ENTERPRISE_AUTO_MAGIC_ENROLLMENT_COMPLETED: 865 case ENTERPRISE_AUTO_MAGIC_ENROLLMENT_COMPLETED:
836 OnEnterpriseAutoEnrollmentDone(); 866 OnEnterpriseAutoEnrollmentDone();
837 break; 867 break;
838 case TERMS_OF_SERVICE_DECLINED: 868 case TERMS_OF_SERVICE_DECLINED:
839 OnTermsOfServiceDeclined(); 869 OnTermsOfServiceDeclined();
840 break; 870 break;
841 case TERMS_OF_SERVICE_ACCEPTED: 871 case TERMS_OF_SERVICE_ACCEPTED:
842 OnTermsOfServiceAccepted(); 872 OnTermsOfServiceAccepted();
873 case WRONG_HWID_WARNING_SKIPPED:
874 OnWrongHWIDWarningSkipped();
843 break; 875 break;
844 default: 876 default:
845 NOTREACHED(); 877 NOTREACHED();
846 } 878 }
847 } 879 }
848 880
849 void WizardController::OnSetUserNamePassword(const std::string& username, 881 void WizardController::OnSetUserNamePassword(const std::string& username,
850 const std::string& password) { 882 const std::string& password) {
851 username_ = username; 883 username_ = username;
852 password_ = password; 884 password_ = password;
(...skipping 12 matching lines...) Expand all
865 return zero_delay_enabled_; 897 return zero_delay_enabled_;
866 } 898 }
867 899
868 // static 900 // static
869 void WizardController::SetZeroDelays() { 901 void WizardController::SetZeroDelays() {
870 kShowDelayMs = 0; 902 kShowDelayMs = 0;
871 zero_delay_enabled_ = true; 903 zero_delay_enabled_ = true;
872 } 904 }
873 905
874 } // namespace chromeos 906 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/wizard_controller.h ('k') | chrome/browser/chromeos/login/wizard_controller_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698