OLD | NEW |
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 Loading... |
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 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 background_widget_(NULL), | 252 background_widget_(NULL), |
254 background_view_(NULL), | 253 background_view_(NULL), |
255 contents_(NULL), | 254 contents_(NULL), |
256 current_screen_(NULL), | 255 current_screen_(NULL), |
257 #if defined(OFFICIAL_BUILD) | 256 #if defined(OFFICIAL_BUILD) |
258 is_official_build_(true), | 257 is_official_build_(true), |
259 #else | 258 #else |
260 is_official_build_(false), | 259 is_official_build_(false), |
261 #endif | 260 #endif |
262 is_out_of_box_(false), | 261 is_out_of_box_(false), |
263 is_test_mode_(false), | |
264 observer_(NULL) { | 262 observer_(NULL) { |
265 DCHECK(default_controller_ == NULL); | 263 DCHECK(default_controller_ == NULL); |
266 default_controller_ = this; | 264 default_controller_ = this; |
267 registrar_.Add( | 265 registrar_.Add( |
268 this, | 266 this, |
269 NotificationType::APP_TERMINATING, | 267 NotificationType::APP_TERMINATING, |
270 NotificationService::AllSources()); | 268 NotificationService::AllSources()); |
271 } | 269 } |
272 | 270 |
273 WizardController::~WizardController() { | 271 WizardController::~WizardController() { |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
339 GetUpdateScreen()->CancelUpdate(); | 337 GetUpdateScreen()->CancelUpdate(); |
340 } | 338 } |
341 } | 339 } |
342 | 340 |
343 chromeos::NetworkScreen* WizardController::GetNetworkScreen() { | 341 chromeos::NetworkScreen* WizardController::GetNetworkScreen() { |
344 if (!network_screen_.get()) | 342 if (!network_screen_.get()) |
345 network_screen_.reset(new chromeos::NetworkScreen(this)); | 343 network_screen_.reset(new chromeos::NetworkScreen(this)); |
346 return network_screen_.get(); | 344 return network_screen_.get(); |
347 } | 345 } |
348 | 346 |
349 chromeos::LoginScreen* WizardController::GetLoginScreen() { | |
350 if (!login_screen_.get()) | |
351 login_screen_.reset(new chromeos::LoginScreen(this)); | |
352 return login_screen_.get(); | |
353 } | |
354 | |
355 chromeos::AccountScreen* WizardController::GetAccountScreen() { | 347 chromeos::AccountScreen* WizardController::GetAccountScreen() { |
356 if (!account_screen_.get()) | 348 if (!account_screen_.get()) |
357 account_screen_.reset(new chromeos::AccountScreen(this)); | 349 account_screen_.reset(new chromeos::AccountScreen(this)); |
358 return account_screen_.get(); | 350 return account_screen_.get(); |
359 } | 351 } |
360 | 352 |
361 chromeos::UpdateScreen* WizardController::GetUpdateScreen() { | 353 chromeos::UpdateScreen* WizardController::GetUpdateScreen() { |
362 if (!update_screen_.get()) { | 354 if (!update_screen_.get()) { |
363 update_screen_.reset(new chromeos::UpdateScreen(this)); | 355 update_screen_.reset(new chromeos::UpdateScreen(this)); |
364 update_screen_->SetRebootCheckDelay(kWaitForRebootTimeSec); | 356 update_screen_->SetRebootCheckDelay(kWaitForRebootTimeSec); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
407 background_view_->SetOobeProgress(chromeos::BackgroundView::SELECT_NETWORK); | 399 background_view_->SetOobeProgress(chromeos::BackgroundView::SELECT_NETWORK); |
408 } | 400 } |
409 | 401 |
410 chromeos::ExistingUserController* WizardController::ShowLoginScreen() { | 402 chromeos::ExistingUserController* WizardController::ShowLoginScreen() { |
411 SetStatusAreaVisible(true); | 403 SetStatusAreaVisible(true); |
412 background_view_->SetOobeProgress(chromeos::BackgroundView::SIGNIN); | 404 background_view_->SetOobeProgress(chromeos::BackgroundView::SIGNIN); |
413 | 405 |
414 // Initiate services customization. | 406 // Initiate services customization. |
415 chromeos::ApplyServicesCustomization::StartIfNeeded(); | 407 chromeos::ApplyServicesCustomization::StartIfNeeded(); |
416 | 408 |
417 // When run under automation test show plain login screen. | 409 std::vector<chromeos::UserManager::User> users; |
418 if (!is_test_mode_ && | 410 if (chromeos::CrosLibrary::Get()->EnsureLoaded()) |
419 chromeos::CrosLibrary::Get()->EnsureLoaded() && | 411 users = chromeos::UserManager::Get()->GetUsers(); |
420 CommandLine::ForCurrentProcess()->HasSwitch( | |
421 switches::kEnableLoginImages)) { | |
422 std::vector<chromeos::UserManager::User> users = | |
423 chromeos::UserManager::Get()->GetUsers(); | |
424 // ExistingUserController deletes itself. | |
425 gfx::Rect screen_bounds; | |
426 background_widget_->GetBounds(&screen_bounds, true); | |
427 chromeos::ExistingUserController* controller = | |
428 new chromeos::ExistingUserController(users, screen_bounds); | |
429 controller->OwnBackground(background_widget_, background_view_); | |
430 controller->Init(); | |
431 background_widget_ = NULL; | |
432 background_view_ = NULL; | |
433 | 412 |
434 MessageLoop::current()->DeleteSoon(FROM_HERE, this); | 413 // ExistingUserController deletes itself. |
| 414 gfx::Rect screen_bounds; |
| 415 background_widget_->GetBounds(&screen_bounds, true); |
| 416 chromeos::ExistingUserController* controller = |
| 417 new chromeos::ExistingUserController(users, screen_bounds); |
| 418 controller->OwnBackground(background_widget_, background_view_); |
| 419 controller->Init(); |
| 420 background_widget_ = NULL; |
| 421 background_view_ = NULL; |
435 | 422 |
436 return controller; | 423 MessageLoop::current()->DeleteSoon(FROM_HERE, this); |
437 } | |
438 | 424 |
439 SetCurrentScreen(GetLoginScreen()); | 425 return controller; |
440 return NULL; | |
441 } | 426 } |
442 | 427 |
443 void WizardController::ShowAccountScreen() { | 428 void WizardController::ShowAccountScreen() { |
444 VLOG(1) << "Showing create account screen."; | 429 VLOG(1) << "Showing create account screen."; |
445 SetStatusAreaVisible(true); | 430 SetStatusAreaVisible(true); |
446 SetCurrentScreen(GetAccountScreen()); | 431 SetCurrentScreen(GetAccountScreen()); |
447 } | 432 } |
448 | 433 |
449 void WizardController::ShowUpdateScreen() { | 434 void WizardController::ShowUpdateScreen() { |
450 VLOG(1) << "Showing update screen."; | 435 VLOG(1) << "Showing update screen."; |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
532 local_state->RegisterBooleanPref(kEulaAccepted, false); | 517 local_state->RegisterBooleanPref(kEulaAccepted, false); |
533 // Check if the pref is already registered in case | 518 // Check if the pref is already registered in case |
534 // Preferences::RegisterUserPrefs runs before this code in the future. | 519 // Preferences::RegisterUserPrefs runs before this code in the future. |
535 if (local_state->FindPreference(prefs::kAccessibilityEnabled) == NULL) { | 520 if (local_state->FindPreference(prefs::kAccessibilityEnabled) == NULL) { |
536 local_state->RegisterBooleanPref(prefs::kAccessibilityEnabled, false); | 521 local_state->RegisterBooleanPref(prefs::kAccessibilityEnabled, false); |
537 } | 522 } |
538 } | 523 } |
539 | 524 |
540 /////////////////////////////////////////////////////////////////////////////// | 525 /////////////////////////////////////////////////////////////////////////////// |
541 // WizardController, ExitHandlers: | 526 // WizardController, ExitHandlers: |
542 void WizardController::OnLoginSignInSelected() { | |
543 // Don't show user image screen in case of automated testing. | |
544 if (is_test_mode_) { | |
545 MessageLoop::current()->DeleteSoon(FROM_HERE, this); | |
546 return; | |
547 } | |
548 // Don't launch browser until we pass image screen. | |
549 chromeos::LoginUtils::Get()->EnableBrowserLaunch(false); | |
550 ShowUserImageScreen(); | |
551 } | |
552 | |
553 void WizardController::OnLoginGuestUser() { | |
554 // We're on the stack, so don't try and delete us now. | |
555 MessageLoop::current()->DeleteSoon(FROM_HERE, this); | |
556 } | |
557 | |
558 void WizardController::OnLoginCreateAccount() { | |
559 ShowAccountScreen(); | |
560 } | |
561 | |
562 void WizardController::OnNetworkConnected() { | 527 void WizardController::OnNetworkConnected() { |
563 if (is_official_build_) { | 528 if (is_official_build_) { |
564 if (!IsEulaAccepted()) { | 529 if (!IsEulaAccepted()) { |
565 ShowEulaScreen(); | 530 ShowEulaScreen(); |
566 } else { | 531 } else { |
567 // Possible cases: | 532 // Possible cases: |
568 // 1. EULA was accepted, forced shutdown/reboot during update. | 533 // 1. EULA was accepted, forced shutdown/reboot during update. |
569 // 2. EULA was accepted, planned reboot after update. | 534 // 2. EULA was accepted, planned reboot after update. |
570 // Make sure that device is up-to-date. | 535 // Make sure that device is up-to-date. |
571 InitiateOOBEUpdate(); | 536 InitiateOOBEUpdate(); |
572 } | 537 } |
573 } else { | 538 } else { |
574 InitiateOOBEUpdate(); | 539 InitiateOOBEUpdate(); |
575 } | 540 } |
576 } | 541 } |
577 | 542 |
578 void WizardController::OnNetworkOffline() { | 543 void WizardController::OnNetworkOffline() { |
579 // TODO(dpolukhin): if(is_out_of_box_) we cannot work offline and | 544 // TODO(dpolukhin): if(is_out_of_box_) we cannot work offline and |
580 // should report some error message here and stay on the same screen. | 545 // should report some error message here and stay on the same screen. |
581 ShowLoginScreen(); | 546 ShowLoginScreen(); |
582 } | 547 } |
583 | 548 |
584 void WizardController::OnAccountCreateBack() { | 549 void WizardController::OnAccountCreateBack() { |
585 chromeos::ExistingUserController* controller = ShowLoginScreen(); | 550 chromeos::ExistingUserController* controller = ShowLoginScreen(); |
586 if (controller) | 551 DCHECK(controller); |
587 controller->SelectNewUser(); | 552 controller->SelectNewUser(); |
588 } | 553 } |
589 | 554 |
590 void WizardController::OnAccountCreated() { | 555 void WizardController::OnAccountCreated() { |
591 chromeos::ExistingUserController* controller = ShowLoginScreen(); | 556 chromeos::ExistingUserController* controller = ShowLoginScreen(); |
592 if (controller) | 557 DCHECK(controller); |
593 controller->LoginNewUser(username_, password_); | 558 controller->LoginNewUser(username_, password_); |
594 else | |
595 Login(username_, password_); | |
596 // TODO(dpolukhin): clear password memory for real. Now it is not | 559 // TODO(dpolukhin): clear password memory for real. Now it is not |
597 // a problem because we can't extract password from the form. | 560 // a problem because we can't extract password from the form. |
598 password_.clear(); | 561 password_.clear(); |
599 } | 562 } |
600 | 563 |
601 void WizardController::OnConnectionFailed() { | 564 void WizardController::OnConnectionFailed() { |
602 // TODO(dpolukhin): show error message after login screen is displayed. | 565 // TODO(dpolukhin): show error message after login screen is displayed. |
603 ShowLoginScreen(); | 566 ShowLoginScreen(); |
604 } | 567 } |
605 | 568 |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
755 // to WizardController it happens after screen is shown. | 718 // to WizardController it happens after screen is shown. |
756 if (background_view_) { | 719 if (background_view_) { |
757 background_view_->SetStatusAreaVisible(visible); | 720 background_view_->SetStatusAreaVisible(visible); |
758 } | 721 } |
759 } | 722 } |
760 | 723 |
761 void WizardController::ShowFirstScreen(const std::string& first_screen_name) { | 724 void WizardController::ShowFirstScreen(const std::string& first_screen_name) { |
762 if (first_screen_name == kNetworkScreenName) { | 725 if (first_screen_name == kNetworkScreenName) { |
763 ShowNetworkScreen(); | 726 ShowNetworkScreen(); |
764 } else if (first_screen_name == kLoginScreenName) { | 727 } else if (first_screen_name == kLoginScreenName) { |
765 // This flag is passed if we're running under automation test. | |
766 is_test_mode_ = true; | |
767 ShowLoginScreen(); | 728 ShowLoginScreen(); |
768 } else if (first_screen_name == kAccountScreenName) { | 729 } else if (first_screen_name == kAccountScreenName) { |
769 ShowAccountScreen(); | 730 ShowAccountScreen(); |
770 } else if (first_screen_name == kUpdateScreenName) { | 731 } else if (first_screen_name == kUpdateScreenName) { |
771 InitiateOOBEUpdate(); | 732 InitiateOOBEUpdate(); |
772 } else if (first_screen_name == kUserImageScreenName) { | 733 } else if (first_screen_name == kUserImageScreenName) { |
773 ShowUserImageScreen(); | 734 ShowUserImageScreen(); |
774 } else if (first_screen_name == kEulaScreenName) { | 735 } else if (first_screen_name == kEulaScreenName) { |
775 ShowEulaScreen(); | 736 ShowEulaScreen(); |
776 } else if (first_screen_name == kRegistrationScreenName) { | 737 } else if (first_screen_name == kRegistrationScreenName) { |
777 if (is_official_build_) { | 738 if (is_official_build_) { |
778 ShowRegistrationScreen(); | 739 ShowRegistrationScreen(); |
779 } else { | 740 } else { |
780 // Just proceed to image screen. | 741 // Just proceed to image screen. |
781 OnRegistrationSuccess(); | 742 OnRegistrationSuccess(); |
782 } | 743 } |
783 } else if (first_screen_name == kHTMLPageScreenName) { | 744 } else if (first_screen_name == kHTMLPageScreenName) { |
784 ShowHTMLPageScreen(); | 745 ShowHTMLPageScreen(); |
785 } else if (first_screen_name != kTestNoScreenName) { | 746 } else if (first_screen_name != kTestNoScreenName) { |
786 if (is_out_of_box_) { | 747 if (is_out_of_box_) { |
787 ShowNetworkScreen(); | 748 ShowNetworkScreen(); |
788 } else { | 749 } else { |
789 ShowLoginScreen(); | 750 ShowLoginScreen(); |
790 } | 751 } |
791 } | 752 } |
792 } | 753 } |
793 | 754 |
794 void WizardController::Login(const std::string& username, | |
795 const std::string& password) { | |
796 chromeos::LoginScreen* login = GetLoginScreen(); | |
797 if (username.empty()) | |
798 return; | |
799 login->view()->SetUsername(username); | |
800 | |
801 if (password.empty()) | |
802 return; | |
803 login->view()->SetPassword(password); | |
804 login->view()->Login(); | |
805 } | |
806 | |
807 // static | 755 // static |
808 bool WizardController::IsEulaAccepted() { | 756 bool WizardController::IsEulaAccepted() { |
809 return g_browser_process->local_state()->GetBoolean(kEulaAccepted); | 757 return g_browser_process->local_state()->GetBoolean(kEulaAccepted); |
810 } | 758 } |
811 | 759 |
812 // static | 760 // static |
813 bool WizardController::IsOobeCompleted() { | 761 bool WizardController::IsOobeCompleted() { |
814 return g_browser_process->local_state()->GetBoolean(kOobeComplete); | 762 return g_browser_process->local_state()->GetBoolean(kOobeComplete); |
815 } | 763 } |
816 | 764 |
(...skipping 23 matching lines...) Expand all Loading... |
840 else | 788 else |
841 manifest = LoadStartupManifest(); | 789 manifest = LoadStartupManifest(); |
842 return IsRegistrationScreenValid(manifest); | 790 return IsRegistrationScreenValid(manifest); |
843 } | 791 } |
844 | 792 |
845 // static | 793 // static |
846 void WizardController::MarkDeviceRegistered() { | 794 void WizardController::MarkDeviceRegistered() { |
847 // Create flag file for boot-time init scripts. | 795 // Create flag file for boot-time init scripts. |
848 FilePath oobe_complete_path(kOobeCompleteFlagFilePath); | 796 FilePath oobe_complete_path(kOobeCompleteFlagFilePath); |
849 FILE* oobe_flag_file = file_util::OpenFile(oobe_complete_path, "w+b"); | 797 FILE* oobe_flag_file = file_util::OpenFile(oobe_complete_path, "w+b"); |
850 DCHECK(oobe_flag_file != NULL) << kOobeCompleteFlagFilePath; | 798 if (oobe_flag_file == NULL) |
851 if (oobe_flag_file != NULL) | 799 DLOG(WARNING) << kOobeCompleteFlagFilePath << " doesn't exist."; |
| 800 else |
852 file_util::CloseFile(oobe_flag_file); | 801 file_util::CloseFile(oobe_flag_file); |
853 } | 802 } |
854 | 803 |
855 /////////////////////////////////////////////////////////////////////////////// | 804 /////////////////////////////////////////////////////////////////////////////// |
856 // WizardController, chromeos::ScreenObserver overrides: | 805 // WizardController, chromeos::ScreenObserver overrides: |
857 void WizardController::OnExit(ExitCodes exit_code) { | 806 void WizardController::OnExit(ExitCodes exit_code) { |
858 LOG(INFO) << "Wizard screen exit code: " << exit_code; | 807 LOG(INFO) << "Wizard screen exit code: " << exit_code; |
859 switch (exit_code) { | 808 switch (exit_code) { |
860 case LOGIN_SIGN_IN_SELECTED: | |
861 OnLoginSignInSelected(); | |
862 break; | |
863 case LOGIN_GUEST_SELECTED: | |
864 OnLoginGuestUser(); | |
865 break; | |
866 case LOGIN_CREATE_ACCOUNT: | |
867 OnLoginCreateAccount(); | |
868 break; | |
869 case NETWORK_CONNECTED: | 809 case NETWORK_CONNECTED: |
870 OnNetworkConnected(); | 810 OnNetworkConnected(); |
871 break; | 811 break; |
872 case NETWORK_OFFLINE: | 812 case NETWORK_OFFLINE: |
873 OnNetworkOffline(); | 813 OnNetworkOffline(); |
874 break; | 814 break; |
875 case ACCOUNT_CREATE_BACK: | 815 case ACCOUNT_CREATE_BACK: |
876 OnAccountCreateBack(); | 816 OnAccountCreateBack(); |
877 break; | 817 break; |
878 case ACCOUNT_CREATED: | 818 case ACCOUNT_CREATED: |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
953 chromeos::language_prefs::kPreferredKeyboardLayout); | 893 chromeos::language_prefs::kPreferredKeyboardLayout); |
954 chromeos::input_method::EnableInputMethods( | 894 chromeos::input_method::EnableInputMethods( |
955 locale, chromeos::input_method::kKeyboardLayoutsOnly, | 895 locale, chromeos::input_method::kKeyboardLayoutsOnly, |
956 initial_input_method_id); | 896 initial_input_method_id); |
957 } | 897 } |
958 | 898 |
959 gfx::Rect screen_bounds(chromeos::CalculateScreenBounds(size)); | 899 gfx::Rect screen_bounds(chromeos::CalculateScreenBounds(size)); |
960 | 900 |
961 // Check whether we need to execute OOBE process. | 901 // Check whether we need to execute OOBE process. |
962 bool oobe_complete = WizardController::IsOobeCompleted(); | 902 bool oobe_complete = WizardController::IsOobeCompleted(); |
| 903 bool show_login_screen = |
| 904 (first_screen_name.empty() && oobe_complete) || |
| 905 first_screen_name == WizardController::kLoginScreenName; |
963 | 906 |
964 if (first_screen_name.empty() && | 907 if (show_login_screen && chromeos::CrosLibrary::Get()->EnsureLoaded()) { |
965 oobe_complete && | |
966 chromeos::CrosLibrary::Get()->EnsureLoaded() && | |
967 CommandLine::ForCurrentProcess()->HasSwitch( | |
968 switches::kEnableLoginImages)) { | |
969 std::vector<chromeos::UserManager::User> users = | 908 std::vector<chromeos::UserManager::User> users = |
970 chromeos::UserManager::Get()->GetUsers(); | 909 chromeos::UserManager::Get()->GetUsers(); |
971 | 910 |
972 // Fix for users who updated device and thus never passed register screen. | 911 // Fix for users who updated device and thus never passed register screen. |
973 // If we already have user we assume that it is not a second part of OOBE. | 912 // If we already have users, we assume that it is not a second part of |
974 // See http://crosbug.com/6289 | 913 // OOBE. See http://crosbug.com/6289 |
975 if (!WizardController::IsDeviceRegistered() && !users.empty()) { | 914 if (!WizardController::IsDeviceRegistered() && !users.empty()) { |
976 VLOG(1) << "Mark device registered because there are remembered users: " | 915 VLOG(1) << "Mark device registered because there are remembered users: " |
977 << users.size(); | 916 << users.size(); |
978 WizardController::MarkDeviceRegistered(); | 917 WizardController::MarkDeviceRegistered(); |
979 } | 918 } |
980 | 919 |
981 // ExistingUserController deletes itself. | 920 // ExistingUserController deletes itself. |
982 (new chromeos::ExistingUserController(users, screen_bounds))->Init(); | 921 (new chromeos::ExistingUserController(users, screen_bounds))->Init(); |
983 | 922 |
984 // Initiate services customization. | 923 // Initiate services customization. |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1035 // user has changed to during OOBE. | 974 // user has changed to during OOBE. |
1036 if (!timezone_name.empty()) { | 975 if (!timezone_name.empty()) { |
1037 icu::TimeZone* timezone = icu::TimeZone::createTimeZone( | 976 icu::TimeZone* timezone = icu::TimeZone::createTimeZone( |
1038 icu::UnicodeString::fromUTF8(timezone_name)); | 977 icu::UnicodeString::fromUTF8(timezone_name)); |
1039 chromeos::CrosLibrary::Get()->GetSystemLibrary()->SetTimezone(timezone); | 978 chromeos::CrosLibrary::Get()->GetSystemLibrary()->SetTimezone(timezone); |
1040 } | 979 } |
1041 } | 980 } |
1042 } | 981 } |
1043 | 982 |
1044 } // namespace browser | 983 } // namespace browser |
OLD | NEW |