| 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/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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |