Chromium Code Reviews| Index: components/sync_driver/startup_controller.cc |
| diff --git a/components/sync_driver/startup_controller.cc b/components/sync_driver/startup_controller.cc |
| index 9dffa5cf22269d4bfc0f76c3e62da687daa81f1e..8eabee19fad2d6c398d975b1fb6925012086246b 100644 |
| --- a/components/sync_driver/startup_controller.cc |
| +++ b/components/sync_driver/startup_controller.cc |
| @@ -76,7 +76,7 @@ void StartupController::Reset(const syncer::ModelTypeSet registered_types) { |
| void StartupController::SetSetupInProgress(bool setup_in_progress) { |
| setup_in_progress_ = setup_in_progress; |
| if (setup_in_progress_) { |
| - TryStart(); |
| + TryStart(false); |
| } |
| } |
| @@ -113,7 +113,10 @@ void StartupController::OverrideFallbackTimeoutForTest( |
| fallback_timeout_ = timeout; |
| } |
| -bool StartupController::TryStart() { |
| +bool StartupController::TryStart(bool request_immediate) { |
| + if (request_immediate) |
| + received_start_request_ = true; |
| + |
| if (!can_start_.Run()) |
| return false; |
| @@ -121,13 +124,18 @@ bool StartupController::TryStart() { |
| // |
| // - a datatype has requested an immediate start of sync, or |
| // - sync needs to start up the backend immediately to provide control state |
| - // and encryption information to the UI, or |
| - // - this is the first time sync is ever starting up. |
| - if (received_start_request_ || setup_in_progress_ || |
| - !sync_prefs_->IsFirstSetupComplete()) { |
| + // and encryption information to the UI. |
| + // Do not start up the sync backend if setup has not completed and isn't |
| + // in progress. |
| + if (setup_in_progress_) { |
| return StartUp(STARTUP_IMMEDIATE); |
| + } else if (sync_prefs_->IsFirstSetupComplete()) { |
| + if (received_start_request_) |
| + return StartUp(STARTUP_IMMEDIATE); |
| + else |
|
maxbogue
2016/07/15 21:44:48
nit: this is somewhat personal style but I very mu
Nicolas Zea
2016/07/15 22:42:22
Consistency within the file is important in this c
|
| + return StartUp(STARTUP_BACKEND_DEFERRED); |
| } else { |
| - return StartUp(STARTUP_BACKEND_DEFERRED); |
| + return false; |
| } |
| } |
| @@ -154,7 +162,7 @@ void StartupController::OnFallbackStartupTimerExpired() { |
| TRIGGER_FALLBACK_TIMER, |
| MAX_TRIGGER_VALUE); |
| received_start_request_ = true; |
| - TryStart(); |
| + TryStart(false); |
| } |
| std::string StartupController::GetBackendInitializationStateString() const { |
| @@ -192,7 +200,7 @@ void StartupController::OnDataTypeRequestsSyncStartup(syncer::ModelType type) { |
| MAX_TRIGGER_VALUE); |
| } |
| received_start_request_ = true; |
| - TryStart(); |
| + TryStart(false); |
| } |
| } // namespace browser_sync |