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 |