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

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

Issue 275913004: Add a pref to track progress of OOBE and resume if needed. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: s/stage/screen/g Created 6 years, 7 months 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) 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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698