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

Unified Diff: components/browser_sync/browser/profile_sync_service.cc

Issue 2159453002: [Sync] Don't start up sync when FirstSetupCompleted is false and no setup in progress (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Self review Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: components/browser_sync/browser/profile_sync_service.cc
diff --git a/components/browser_sync/browser/profile_sync_service.cc b/components/browser_sync/browser/profile_sync_service.cc
index 7a57b2f5654bbf4a3e7eee4e2bc37a17e7e9eb21..3e5c4b471e53aaad5334a45b046d9ab4bde93e4d 100644
--- a/components/browser_sync/browser/profile_sync_service.cc
+++ b/components/browser_sync/browser/profile_sync_service.cc
@@ -381,7 +381,15 @@ void ProfileSyncService::Initialize() {
base::Bind(&ProfileSyncService::OnMemoryPressure,
sync_enabled_weak_factory_.GetWeakPtr())));
startup_controller_->Reset(GetRegisteredDataTypes());
- startup_controller_->TryStart();
+
+ // Auto-start means IsFirstSetupComplete gets set automatically, and the
+ // first startup should be immediate, not deferred.
+ if (start_behavior_ == AUTO_START && !IsFirstSetupComplete()) {
+ SetFirstSetupComplete();
+ startup_controller_->TryStart(true);
+ } else {
+ startup_controller_->TryStart(false);
+ }
}
void ProfileSyncService::StartSyncingWithServer() {
@@ -626,7 +634,7 @@ void ProfileSyncService::OnGetTokenSuccess(
if (HasSyncingBackend())
backend_->UpdateCredentials(GetCredentials());
else
- startup_controller_->TryStart();
+ startup_controller_->TryStart(false);
}
void ProfileSyncService::OnGetTokenFailure(
@@ -701,7 +709,7 @@ void ProfileSyncService::OnRefreshTokensLoaded() {
if (HasSyncingBackend()) {
RequestAccessToken();
} else {
- startup_controller_->TryStart();
+ startup_controller_->TryStart(false);
}
}
@@ -948,13 +956,8 @@ void ProfileSyncService::PostBackendInitialization() {
UpdateLastSyncedTime();
}
- // Auto-start means IsFirstSetupComplete gets set automatically.
- if (start_behavior_ == AUTO_START && !IsFirstSetupComplete()) {
- // This will trigger a configure if it completes setup.
- SetFirstSetupComplete();
- } else if (CanConfigureDataTypes()) {
+ if (CanConfigureDataTypes())
ConfigureDataTypeManager();
- }
// Check for a cookie jar mismatch.
std::vector<gaia::ListedAccount> accounts;
@@ -1265,7 +1268,7 @@ void ProfileSyncService::OnActionableError(const SyncProtocolError& error) {
break;
case syncer::RESET_LOCAL_SYNC_DATA:
ShutdownImpl(syncer::DISABLE_SYNC);
- startup_controller_->TryStart();
+ startup_controller_->TryStart(false);
break;
default:
NOTREACHED();
@@ -1317,7 +1320,7 @@ void ProfileSyncService::OnClearServerDataDone() {
// Shutdown sync, delete the Directory, then restart, restoring the cached
// nigori state.
ShutdownImpl(syncer::DISABLE_SYNC);
- startup_controller_->TryStart();
+ startup_controller_->TryStart(true);
}
void ProfileSyncService::OnConfigureDone(
@@ -2064,7 +2067,7 @@ void ProfileSyncService::OnSyncManagedPrefChange(bool is_sync_managed) {
StopImpl(CLEAR_DATA);
} else {
// Sync is no longer disabled by policy. Try starting it up if appropriate.
- startup_controller_->TryStart();
+ startup_controller_->TryStart(true);
}
}
@@ -2335,7 +2338,7 @@ void ProfileSyncService::RequestStart() {
sync_prefs_.SetSyncRequested(true);
NotifyObservers();
}
- startup_controller_->TryStart();
+ startup_controller_->TryStart(true);
}
void ProfileSyncService::ReconfigureDatatypeManager() {

Powered by Google App Engine
This is Rietveld 408576698