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

Side by Side Diff: chrome/browser/chromeos/login/wizard_controller.cc

Issue 5809001: Removed old login screen from source. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed long line Created 10 years 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 <gdk/gdk.h> 7 #include <gdk/gdk.h>
8 #include <signal.h> 8 #include <signal.h>
9 #include <sys/types.h> 9 #include <sys/types.h>
10 10
(...skipping 14 matching lines...) Expand all
25 #include "chrome/browser/chromeos/input_method/input_method_util.h" 25 #include "chrome/browser/chromeos/input_method/input_method_util.h"
26 #include "chrome/browser/chromeos/language_preferences.h" 26 #include "chrome/browser/chromeos/language_preferences.h"
27 #include "chrome/browser/chromeos/login/account_screen.h" 27 #include "chrome/browser/chromeos/login/account_screen.h"
28 #include "chrome/browser/chromeos/login/apply_services_customization.h" 28 #include "chrome/browser/chromeos/login/apply_services_customization.h"
29 #include "chrome/browser/chromeos/login/background_view.h" 29 #include "chrome/browser/chromeos/login/background_view.h"
30 #include "chrome/browser/chromeos/login/eula_view.h" 30 #include "chrome/browser/chromeos/login/eula_view.h"
31 #include "chrome/browser/chromeos/login/existing_user_controller.h" 31 #include "chrome/browser/chromeos/login/existing_user_controller.h"
32 #include "chrome/browser/chromeos/login/helper.h" 32 #include "chrome/browser/chromeos/login/helper.h"
33 #include "chrome/browser/chromeos/login/html_page_screen.h" 33 #include "chrome/browser/chromeos/login/html_page_screen.h"
34 #include "chrome/browser/chromeos/login/language_switch_menu.h" 34 #include "chrome/browser/chromeos/login/language_switch_menu.h"
35 #include "chrome/browser/chromeos/login/login_screen.h"
36 #include "chrome/browser/chromeos/login/login_utils.h" 35 #include "chrome/browser/chromeos/login/login_utils.h"
37 #include "chrome/browser/chromeos/login/network_screen.h" 36 #include "chrome/browser/chromeos/login/network_screen.h"
38 #include "chrome/browser/chromeos/login/registration_screen.h" 37 #include "chrome/browser/chromeos/login/registration_screen.h"
39 #include "chrome/browser/chromeos/login/rounded_rect_painter.h" 38 #include "chrome/browser/chromeos/login/rounded_rect_painter.h"
40 #include "chrome/browser/chromeos/login/update_screen.h" 39 #include "chrome/browser/chromeos/login/update_screen.h"
41 #include "chrome/browser/chromeos/login/user_image_screen.h" 40 #include "chrome/browser/chromeos/login/user_image_screen.h"
42 #include "chrome/browser/chromeos/login/user_manager.h" 41 #include "chrome/browser/chromeos/login/user_manager.h"
43 #include "chrome/browser/chromeos/login/wizard_accessibility_helper.h" 42 #include "chrome/browser/chromeos/login/wizard_accessibility_helper.h"
44 #include "chrome/browser/chromeos/wm_ipc.h" 43 #include "chrome/browser/chromeos/wm_ipc.h"
45 #include "chrome/browser/prefs/pref_service.h" 44 #include "chrome/browser/prefs/pref_service.h"
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 GetUpdateScreen()->CancelUpdate(); 341 GetUpdateScreen()->CancelUpdate();
343 } 342 }
344 } 343 }
345 344
346 chromeos::NetworkScreen* WizardController::GetNetworkScreen() { 345 chromeos::NetworkScreen* WizardController::GetNetworkScreen() {
347 if (!network_screen_.get()) 346 if (!network_screen_.get())
348 network_screen_.reset(new chromeos::NetworkScreen(this)); 347 network_screen_.reset(new chromeos::NetworkScreen(this));
349 return network_screen_.get(); 348 return network_screen_.get();
350 } 349 }
351 350
352 chromeos::LoginScreen* WizardController::GetLoginScreen() {
353 if (!login_screen_.get())
354 login_screen_.reset(new chromeos::LoginScreen(this));
355 return login_screen_.get();
356 }
357
358 chromeos::AccountScreen* WizardController::GetAccountScreen() { 351 chromeos::AccountScreen* WizardController::GetAccountScreen() {
359 if (!account_screen_.get()) 352 if (!account_screen_.get())
360 account_screen_.reset(new chromeos::AccountScreen(this)); 353 account_screen_.reset(new chromeos::AccountScreen(this));
361 return account_screen_.get(); 354 return account_screen_.get();
362 } 355 }
363 356
364 chromeos::UpdateScreen* WizardController::GetUpdateScreen() { 357 chromeos::UpdateScreen* WizardController::GetUpdateScreen() {
365 if (!update_screen_.get()) { 358 if (!update_screen_.get()) {
366 update_screen_.reset(new chromeos::UpdateScreen(this)); 359 update_screen_.reset(new chromeos::UpdateScreen(this));
367 update_screen_->SetMaximalCurtainTime(kMaximalCurtainTimeSec); 360 update_screen_->SetMaximalCurtainTime(kMaximalCurtainTimeSec);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 background_view_->SetOobeProgress(chromeos::BackgroundView::SELECT_NETWORK); 404 background_view_->SetOobeProgress(chromeos::BackgroundView::SELECT_NETWORK);
412 } 405 }
413 406
414 chromeos::ExistingUserController* WizardController::ShowLoginScreen() { 407 chromeos::ExistingUserController* WizardController::ShowLoginScreen() {
415 SetStatusAreaVisible(true); 408 SetStatusAreaVisible(true);
416 background_view_->SetOobeProgress(chromeos::BackgroundView::SIGNIN); 409 background_view_->SetOobeProgress(chromeos::BackgroundView::SIGNIN);
417 410
418 // Initiate services customization. 411 // Initiate services customization.
419 chromeos::ApplyServicesCustomization::StartIfNeeded(); 412 chromeos::ApplyServicesCustomization::StartIfNeeded();
420 413
421 // When run under automation test show plain login screen. 414 std::vector<chromeos::UserManager::User> users;
422 if (!is_test_mode_ && 415 if (chromeos::CrosLibrary::Get()->EnsureLoaded())
423 chromeos::CrosLibrary::Get()->EnsureLoaded() && 416 users = chromeos::UserManager::Get()->GetUsers();
424 CommandLine::ForCurrentProcess()->HasSwitch(
425 switches::kEnableLoginImages)) {
426 std::vector<chromeos::UserManager::User> users =
427 chromeos::UserManager::Get()->GetUsers();
428 // ExistingUserController deletes itself.
429 gfx::Rect screen_bounds;
430 background_widget_->GetBounds(&screen_bounds, true);
431 chromeos::ExistingUserController* controller =
432 new chromeos::ExistingUserController(users, screen_bounds);
433 controller->OwnBackground(background_widget_, background_view_);
434 controller->Init();
435 background_widget_ = NULL;
436 background_view_ = NULL;
437 417
438 MessageLoop::current()->DeleteSoon(FROM_HERE, this); 418 // ExistingUserController deletes itself.
419 gfx::Rect screen_bounds;
420 background_widget_->GetBounds(&screen_bounds, true);
421 chromeos::ExistingUserController* controller =
422 new chromeos::ExistingUserController(users, screen_bounds);
423 controller->OwnBackground(background_widget_, background_view_);
424 controller->Init();
425 background_widget_ = NULL;
426 background_view_ = NULL;
439 427
440 return controller; 428 MessageLoop::current()->DeleteSoon(FROM_HERE, this);
441 }
442 429
443 SetCurrentScreen(GetLoginScreen()); 430 return controller;
444 return NULL;
445 } 431 }
446 432
447 void WizardController::ShowAccountScreen() { 433 void WizardController::ShowAccountScreen() {
448 VLOG(1) << "Showing create account screen."; 434 VLOG(1) << "Showing create account screen.";
449 SetStatusAreaVisible(true); 435 SetStatusAreaVisible(true);
450 SetCurrentScreen(GetAccountScreen()); 436 SetCurrentScreen(GetAccountScreen());
451 } 437 }
452 438
453 void WizardController::ShowUpdateScreen() { 439 void WizardController::ShowUpdateScreen() {
454 VLOG(1) << "Showing update screen."; 440 VLOG(1) << "Showing update screen.";
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 local_state->RegisterBooleanPref(kEulaAccepted, false); 522 local_state->RegisterBooleanPref(kEulaAccepted, false);
537 // Check if the pref is already registered in case 523 // Check if the pref is already registered in case
538 // Preferences::RegisterUserPrefs runs before this code in the future. 524 // Preferences::RegisterUserPrefs runs before this code in the future.
539 if (local_state->FindPreference(prefs::kAccessibilityEnabled) == NULL) { 525 if (local_state->FindPreference(prefs::kAccessibilityEnabled) == NULL) {
540 local_state->RegisterBooleanPref(prefs::kAccessibilityEnabled, false); 526 local_state->RegisterBooleanPref(prefs::kAccessibilityEnabled, false);
541 } 527 }
542 } 528 }
543 529
544 /////////////////////////////////////////////////////////////////////////////// 530 ///////////////////////////////////////////////////////////////////////////////
545 // WizardController, ExitHandlers: 531 // WizardController, ExitHandlers:
546 void WizardController::OnLoginSignInSelected() {
547 // Don't show user image screen in case of automated testing.
548 if (is_test_mode_) {
549 MessageLoop::current()->DeleteSoon(FROM_HERE, this);
550 return;
551 }
552 // Don't launch browser until we pass image screen.
553 chromeos::LoginUtils::Get()->EnableBrowserLaunch(false);
554 ShowUserImageScreen();
555 }
556
557 void WizardController::OnLoginGuestUser() {
558 // We're on the stack, so don't try and delete us now.
559 MessageLoop::current()->DeleteSoon(FROM_HERE, this);
560 }
561
562 void WizardController::OnLoginCreateAccount() {
563 ShowAccountScreen();
564 }
565
566 void WizardController::OnNetworkConnected() { 532 void WizardController::OnNetworkConnected() {
567 if (is_official_build_) { 533 if (is_official_build_) {
568 if (!IsEulaAccepted()) { 534 if (!IsEulaAccepted()) {
569 ShowEulaScreen(); 535 ShowEulaScreen();
570 } else { 536 } else {
571 // Possible cases: 537 // Possible cases:
572 // 1. EULA was accepted, forced shutdown/reboot during update. 538 // 1. EULA was accepted, forced shutdown/reboot during update.
573 // 2. EULA was accepted, planned reboot after update. 539 // 2. EULA was accepted, planned reboot after update.
574 // Make sure that device is up-to-date. 540 // Make sure that device is up-to-date.
575 InitiateOOBEUpdate(); 541 InitiateOOBEUpdate();
(...skipping 10 matching lines...) Expand all
586 } 552 }
587 553
588 void WizardController::OnAccountCreateBack() { 554 void WizardController::OnAccountCreateBack() {
589 chromeos::ExistingUserController* controller = ShowLoginScreen(); 555 chromeos::ExistingUserController* controller = ShowLoginScreen();
590 if (controller) 556 if (controller)
591 controller->SelectNewUser(); 557 controller->SelectNewUser();
592 } 558 }
593 559
594 void WizardController::OnAccountCreated() { 560 void WizardController::OnAccountCreated() {
595 chromeos::ExistingUserController* controller = ShowLoginScreen(); 561 chromeos::ExistingUserController* controller = ShowLoginScreen();
596 if (controller) 562 if (controller)
Dmitry Polukhin 2010/12/14 14:06:18 It should be DCHECK now.
whywhat 2010/12/16 10:47:52 Done.
597 controller->LoginNewUser(username_, password_); 563 controller->LoginNewUser(username_, password_);
598 else
599 Login(username_, password_);
600 // TODO(dpolukhin): clear password memory for real. Now it is not 564 // TODO(dpolukhin): clear password memory for real. Now it is not
601 // a problem because we can't extract password from the form. 565 // a problem because we can't extract password from the form.
602 password_.clear(); 566 password_.clear();
603 } 567 }
604 568
605 void WizardController::OnConnectionFailed() { 569 void WizardController::OnConnectionFailed() {
606 // TODO(dpolukhin): show error message after login screen is displayed. 570 // TODO(dpolukhin): show error message after login screen is displayed.
607 ShowLoginScreen(); 571 ShowLoginScreen();
608 } 572 }
609 573
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
759 // to WizardController it happens after screen is shown. 723 // to WizardController it happens after screen is shown.
760 if (background_view_) { 724 if (background_view_) {
761 background_view_->SetStatusAreaVisible(visible); 725 background_view_->SetStatusAreaVisible(visible);
762 } 726 }
763 } 727 }
764 728
765 void WizardController::ShowFirstScreen(const std::string& first_screen_name) { 729 void WizardController::ShowFirstScreen(const std::string& first_screen_name) {
766 if (first_screen_name == kNetworkScreenName) { 730 if (first_screen_name == kNetworkScreenName) {
767 ShowNetworkScreen(); 731 ShowNetworkScreen();
768 } else if (first_screen_name == kLoginScreenName) { 732 } else if (first_screen_name == kLoginScreenName) {
769 // This flag is passed if we're running under automation test.
770 is_test_mode_ = true;
771 ShowLoginScreen(); 733 ShowLoginScreen();
772 } else if (first_screen_name == kAccountScreenName) { 734 } else if (first_screen_name == kAccountScreenName) {
773 ShowAccountScreen(); 735 ShowAccountScreen();
774 } else if (first_screen_name == kUpdateScreenName) { 736 } else if (first_screen_name == kUpdateScreenName) {
775 InitiateOOBEUpdate(); 737 InitiateOOBEUpdate();
776 } else if (first_screen_name == kUserImageScreenName) { 738 } else if (first_screen_name == kUserImageScreenName) {
777 ShowUserImageScreen(); 739 ShowUserImageScreen();
778 } else if (first_screen_name == kEulaScreenName) { 740 } else if (first_screen_name == kEulaScreenName) {
779 ShowEulaScreen(); 741 ShowEulaScreen();
780 } else if (first_screen_name == kRegistrationScreenName) { 742 } else if (first_screen_name == kRegistrationScreenName) {
781 if (is_official_build_) { 743 if (is_official_build_) {
782 ShowRegistrationScreen(); 744 ShowRegistrationScreen();
783 } else { 745 } else {
784 // Just proceed to image screen. 746 // Just proceed to image screen.
785 OnRegistrationSuccess(); 747 OnRegistrationSuccess();
786 } 748 }
787 } else if (first_screen_name == kHTMLPageScreenName) { 749 } else if (first_screen_name == kHTMLPageScreenName) {
788 ShowHTMLPageScreen(); 750 ShowHTMLPageScreen();
789 } else if (first_screen_name != kTestNoScreenName) { 751 } else if (first_screen_name != kTestNoScreenName) {
790 if (is_out_of_box_) { 752 if (is_out_of_box_) {
791 ShowNetworkScreen(); 753 ShowNetworkScreen();
792 } else { 754 } else {
793 ShowLoginScreen(); 755 ShowLoginScreen();
794 } 756 }
795 } 757 }
796 } 758 }
797 759
798 void WizardController::Login(const std::string& username,
799 const std::string& password) {
800 chromeos::LoginScreen* login = GetLoginScreen();
801 if (username.empty())
802 return;
803 login->view()->SetUsername(username);
804
805 if (password.empty())
806 return;
807 login->view()->SetPassword(password);
808 login->view()->Login();
809 }
810
811 // static 760 // static
812 bool WizardController::IsEulaAccepted() { 761 bool WizardController::IsEulaAccepted() {
813 return g_browser_process->local_state()->GetBoolean(kEulaAccepted); 762 return g_browser_process->local_state()->GetBoolean(kEulaAccepted);
814 } 763 }
815 764
816 // static 765 // static
817 bool WizardController::IsOobeCompleted() { 766 bool WizardController::IsOobeCompleted() {
818 return g_browser_process->local_state()->GetBoolean(kOobeComplete); 767 return g_browser_process->local_state()->GetBoolean(kOobeComplete);
819 } 768 }
820 769
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
854 DCHECK(oobe_flag_file != NULL) << kOobeCompleteFlagFilePath; 803 DCHECK(oobe_flag_file != NULL) << kOobeCompleteFlagFilePath;
855 if (oobe_flag_file != NULL) 804 if (oobe_flag_file != NULL)
856 file_util::CloseFile(oobe_flag_file); 805 file_util::CloseFile(oobe_flag_file);
857 } 806 }
858 807
859 /////////////////////////////////////////////////////////////////////////////// 808 ///////////////////////////////////////////////////////////////////////////////
860 // WizardController, chromeos::ScreenObserver overrides: 809 // WizardController, chromeos::ScreenObserver overrides:
861 void WizardController::OnExit(ExitCodes exit_code) { 810 void WizardController::OnExit(ExitCodes exit_code) {
862 LOG(INFO) << "Wizard screen exit code: " << exit_code; 811 LOG(INFO) << "Wizard screen exit code: " << exit_code;
863 switch (exit_code) { 812 switch (exit_code) {
864 case LOGIN_SIGN_IN_SELECTED:
865 OnLoginSignInSelected();
866 break;
867 case LOGIN_GUEST_SELECTED:
868 OnLoginGuestUser();
869 break;
870 case LOGIN_CREATE_ACCOUNT:
871 OnLoginCreateAccount();
872 break;
873 case NETWORK_CONNECTED: 813 case NETWORK_CONNECTED:
874 OnNetworkConnected(); 814 OnNetworkConnected();
875 break; 815 break;
876 case NETWORK_OFFLINE: 816 case NETWORK_OFFLINE:
877 OnNetworkOffline(); 817 OnNetworkOffline();
878 break; 818 break;
879 case ACCOUNT_CREATE_BACK: 819 case ACCOUNT_CREATE_BACK:
880 OnAccountCreateBack(); 820 OnAccountCreateBack();
881 break; 821 break;
882 case ACCOUNT_CREATED: 822 case ACCOUNT_CREATED:
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
958 chromeos::input_method::EnableInputMethods( 898 chromeos::input_method::EnableInputMethods(
959 locale, chromeos::input_method::kKeyboardLayoutsOnly, 899 locale, chromeos::input_method::kKeyboardLayoutsOnly,
960 initial_input_method_id); 900 initial_input_method_id);
961 } 901 }
962 902
963 gfx::Rect screen_bounds(chromeos::CalculateScreenBounds(size)); 903 gfx::Rect screen_bounds(chromeos::CalculateScreenBounds(size));
964 904
965 // Check whether we need to execute OOBE process. 905 // Check whether we need to execute OOBE process.
966 bool oobe_complete = WizardController::IsOobeCompleted(); 906 bool oobe_complete = WizardController::IsOobeCompleted();
967 907
968 if (first_screen_name.empty() && 908 if (first_screen_name.empty() &&
Dmitry Polukhin 2010/12/14 14:06:18 Also we need to check that first screen is login.
whywhat 2010/12/16 10:47:52 Done.
969 oobe_complete && 909 oobe_complete &&
970 chromeos::CrosLibrary::Get()->EnsureLoaded() && 910 chromeos::CrosLibrary::Get()->EnsureLoaded()) {
971 CommandLine::ForCurrentProcess()->HasSwitch(
972 switches::kEnableLoginImages)) {
973 std::vector<chromeos::UserManager::User> users = 911 std::vector<chromeos::UserManager::User> users =
974 chromeos::UserManager::Get()->GetUsers(); 912 chromeos::UserManager::Get()->GetUsers();
975 913
976 // Fix for users who updated device and thus never passed register screen. 914 // Fix for users who updated device and thus never passed register screen.
977 // If we already have user we assume that it is not a second part of OOBE. 915 // If we already have users, we assume that it is not a second part of
978 // See http://crosbug.com/6289 916 // OOBE. See http://crosbug.com/6289
979 if (!WizardController::IsDeviceRegistered() && !users.empty()) { 917 if (!WizardController::IsDeviceRegistered() && !users.empty()) {
980 VLOG(1) << "Mark device registered because there are remembered users: " 918 VLOG(1) << "Mark device registered because there are remembered users: "
981 << users.size(); 919 << users.size();
982 WizardController::MarkDeviceRegistered(); 920 WizardController::MarkDeviceRegistered();
983 } 921 }
984 922
985 // ExistingUserController deletes itself. 923 // ExistingUserController deletes itself.
986 (new chromeos::ExistingUserController(users, screen_bounds))->Init(); 924 (new chromeos::ExistingUserController(users, screen_bounds))->Init();
987 925
988 // Initiate services customization. 926 // Initiate services customization.
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1036 // user has changed to during OOBE. 974 // user has changed to during OOBE.
1037 if (!timezone_name.empty()) { 975 if (!timezone_name.empty()) {
1038 icu::TimeZone* timezone = icu::TimeZone::createTimeZone( 976 icu::TimeZone* timezone = icu::TimeZone::createTimeZone(
1039 icu::UnicodeString::fromUTF8(timezone_name)); 977 icu::UnicodeString::fromUTF8(timezone_name));
1040 chromeos::CrosLibrary::Get()->GetSystemLibrary()->SetTimezone(timezone); 978 chromeos::CrosLibrary::Get()->GetSystemLibrary()->SetTimezone(timezone);
1041 } 979 }
1042 } 980 }
1043 } 981 }
1044 982
1045 } // namespace browser 983 } // namespace browser
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698