Chromium Code Reviews| 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 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 202 if (status == PrefService::INITIALIZATION_STATUS_ERROR) { | 202 if (status == PrefService::INITIALIZATION_STATUS_ERROR) { |
| 203 OnLocalStateInitialized(false); | 203 OnLocalStateInitialized(false); |
| 204 return; | 204 return; |
| 205 } else if (status == PrefService::INITIALIZATION_STATUS_WAITING) { | 205 } else if (status == PrefService::INITIALIZATION_STATUS_WAITING) { |
| 206 GetLocalState()->AddPrefInitObserver( | 206 GetLocalState()->AddPrefInitObserver( |
| 207 base::Bind(&WizardController::OnLocalStateInitialized, | 207 base::Bind(&WizardController::OnLocalStateInitialized, |
| 208 weak_factory_.GetWeakPtr())); | 208 weak_factory_.GetWeakPtr())); |
| 209 } | 209 } |
| 210 } | 210 } |
| 211 | 211 |
| 212 AdvanceToScreen(first_screen_name); | 212 bool shoud_not_resume = is_out_of_box_ && !first_screen_name.empty() && |
|
ygorshenin1
2014/05/16 13:03:29
nit: could you please replace
"should_not_resume =
pastarmovj
2014/05/19 14:12:27
Actually compacted the logic further and i even th
| |
| 213 first_screen_name != WizardController::kTestNoScreenName; | |
| 214 const PrefService::Preference* oobe_stage_pref = | |
| 215 GetLocalState()->FindPreference(prefs::kOobeScreenPending); | |
| 216 if (!oobe_stage_pref->IsDefaultValue() && !shoud_not_resume) | |
| 217 first_screen_name_ = GetLocalState()->GetString(prefs::kOobeScreenPending); | |
| 218 | |
| 219 AdvanceToScreen(first_screen_name_); | |
| 213 if (!IsMachineHWIDCorrect() && !StartupUtils::IsDeviceRegistered() && | 220 if (!IsMachineHWIDCorrect() && !StartupUtils::IsDeviceRegistered() && |
| 214 first_screen_name.empty()) | 221 first_screen_name_.empty()) |
| 215 ShowWrongHWIDScreen(); | 222 ShowWrongHWIDScreen(); |
| 216 } | 223 } |
| 217 | 224 |
| 218 chromeos::NetworkScreen* WizardController::GetNetworkScreen() { | 225 chromeos::NetworkScreen* WizardController::GetNetworkScreen() { |
| 219 if (!network_screen_.get()) | 226 if (!network_screen_.get()) |
| 220 network_screen_.reset(new chromeos::NetworkScreen( | 227 network_screen_.reset(new chromeos::NetworkScreen( |
| 221 this, oobe_display_->GetNetworkScreenActor())); | 228 this, oobe_display_->GetNetworkScreenActor())); |
| 222 return network_screen_.get(); | 229 return network_screen_.get(); |
| 223 } | 230 } |
| 224 | 231 |
| (...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 706 host_->GetAutoEnrollmentController()->Start(); | 713 host_->GetAutoEnrollmentController()->Start(); |
| 707 host_->PrewarmAuthentication(); | 714 host_->PrewarmAuthentication(); |
| 708 NetworkPortalDetector::Get()->Enable(true); | 715 NetworkPortalDetector::Get()->Enable(true); |
| 709 } | 716 } |
| 710 | 717 |
| 711 void WizardController::PerformOOBECompletedActions() { | 718 void WizardController::PerformOOBECompletedActions() { |
| 712 StartupUtils::MarkOobeCompleted(); | 719 StartupUtils::MarkOobeCompleted(); |
| 713 } | 720 } |
| 714 | 721 |
| 715 void WizardController::SetCurrentScreen(WizardScreen* new_current) { | 722 void WizardController::SetCurrentScreen(WizardScreen* new_current) { |
| 723 // First remember how far have we reached so that we can resume if needed. | |
|
Mattias Nissler (ping if slow)
2014/05/15 09:30:25
So there are some interstitial screens that we may
ygorshenin1
2014/05/16 13:03:29
Yes, we definitely shouldn't return to the error s
pastarmovj
2014/05/19 14:12:27
Ok new proposal implemented below is only store th
| |
| 724 if (is_out_of_box_) | |
| 725 StartupUtils::SaveOobePendingScreen(new_current->GetName()); | |
| 726 | |
| 716 SetCurrentScreenSmooth(new_current, false); | 727 SetCurrentScreenSmooth(new_current, false); |
| 717 } | 728 } |
| 718 | 729 |
| 719 void WizardController::ShowCurrentScreen() { | 730 void WizardController::ShowCurrentScreen() { |
| 720 // ShowCurrentScreen may get called by smooth_show_timer_ even after | 731 // ShowCurrentScreen may get called by smooth_show_timer_ even after |
| 721 // flow has been switched to sign in screen (ExistingUserController). | 732 // flow has been switched to sign in screen (ExistingUserController). |
| 722 if (!oobe_display_) | 733 if (!oobe_display_) |
| 723 return; | 734 return; |
| 724 | 735 |
| 725 smooth_show_timer_.Stop(); | 736 smooth_show_timer_.Stop(); |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 754 } else { | 765 } else { |
| 755 ShowCurrentScreen(); | 766 ShowCurrentScreen(); |
| 756 } | 767 } |
| 757 } | 768 } |
| 758 | 769 |
| 759 void WizardController::SetStatusAreaVisible(bool visible) { | 770 void WizardController::SetStatusAreaVisible(bool visible) { |
| 760 host_->SetStatusAreaVisible(visible); | 771 host_->SetStatusAreaVisible(visible); |
| 761 } | 772 } |
| 762 | 773 |
| 763 void WizardController::AdvanceToScreen(const std::string& screen_name) { | 774 void WizardController::AdvanceToScreen(const std::string& screen_name) { |
| 775 // First remember how far have we reached so that we can resume if needed. | |
| 776 if (is_out_of_box_) | |
| 777 StartupUtils::SaveOobePendingScreen(screen_name); | |
| 778 | |
| 764 if (screen_name == kNetworkScreenName) { | 779 if (screen_name == kNetworkScreenName) { |
| 765 ShowNetworkScreen(); | 780 ShowNetworkScreen(); |
| 766 } else if (screen_name == kLoginScreenName) { | 781 } else if (screen_name == kLoginScreenName) { |
| 767 ShowLoginScreen(LoginScreenContext()); | 782 ShowLoginScreen(LoginScreenContext()); |
| 768 } else if (screen_name == kUpdateScreenName) { | 783 } else if (screen_name == kUpdateScreenName) { |
| 769 InitiateOOBEUpdate(); | 784 InitiateOOBEUpdate(); |
| 770 } else if (screen_name == kUserImageScreenName) { | 785 } else if (screen_name == kUserImageScreenName) { |
| 771 ShowUserImageScreen(); | 786 ShowUserImageScreen(); |
| 772 } else if (screen_name == kEulaScreenName) { | 787 } else if (screen_name == kEulaScreenName) { |
| 773 ShowEulaScreen(); | 788 ShowEulaScreen(); |
| (...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1060 // cancelled on destruction. | 1075 // cancelled on destruction. |
| 1061 GetTimezoneProvider()->RequestTimezone( | 1076 GetTimezoneProvider()->RequestTimezone( |
| 1062 position, | 1077 position, |
| 1063 false, // sensor | 1078 false, // sensor |
| 1064 timeout - elapsed, | 1079 timeout - elapsed, |
| 1065 base::Bind(&WizardController::OnTimezoneResolved, | 1080 base::Bind(&WizardController::OnTimezoneResolved, |
| 1066 base::Unretained(this))); | 1081 base::Unretained(this))); |
| 1067 } | 1082 } |
| 1068 | 1083 |
| 1069 } // namespace chromeos | 1084 } // namespace chromeos |
| OLD | NEW |