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

Unified Diff: chrome/browser/sync/profile_sync_service.cc

Issue 8295017: [Sync] Support open tabs experiment enabling before sync setup completion. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Refactor Created 9 years, 2 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
« no previous file with comments | « chrome/browser/sync/glue/sync_backend_host.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/profile_sync_service.cc
diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc
index 9cbb4df057af99e1ca562bad4cce61a0084c61b5..97f781fa90ec4e0370c3b02927732ed9747e1d32 100644
--- a/chrome/browser/sync/profile_sync_service.cc
+++ b/chrome/browser/sync/profile_sync_service.cc
@@ -607,7 +607,8 @@ void ProfileSyncService::OnSyncCycleCompleted() {
void ProfileSyncService::OnDataTypesChanged(
const syncable::ModelTypeSet& to_add) {
// We don't bother doing anything if the migrator is busy.
- if (migrator_->state() != browser_sync::BackendMigrator::IDLE) {
+ if (migrator_.get() &&
akalin 2011/10/15 01:21:55 can remove the _.get() check, or convert to CHECK
Nicolas Zea 2011/10/15 02:06:27 This is getting called before the frontend is noti
akalin 2011/10/18 19:13:42 Can you add a comment here to that effect?
+ migrator_->state() != browser_sync::BackendMigrator::IDLE) {
VLOG(1) << "Dropping OnDataTypesChanged due to migrator busy.";
return;
}
@@ -627,12 +628,13 @@ void ProfileSyncService::OnDataTypesChanged(
for (syncable::ModelTypeSet::const_iterator it = to_register.begin();
it != to_register.end(); ++it) {
- // Received notice to enable session sync. Check if sessions are
+ // Received notice to enable experimental type. Check if the type is
// registered, and if not register a new datatype controller.
RegisterNewDataType(*it);
- // Enable the about:flags switch for sessions so we don't have to always
- // perform this reconfiguration. Once we set this, sessions will remain
- // registered, so we will no longer go down this code path.
+ // Enable the about:flags switch for the experimental type so we don't have
+ // to always perform this reconfiguration. Once we set this, the type will
+ // remain registered on restart, so we will no longer go down this code
+ // path.
std::string experiment_name = GetExperimentNameForDataType(*it);
if (experiment_name.empty())
continue;
@@ -642,15 +644,18 @@ void ProfileSyncService::OnDataTypesChanged(
}
// Check if the user has "Keep Everything Synced" enabled. If so, we want
- // to turn on sessions if it's not already on. Otherwise we leave it off.
- // Note: if sessions are already registered, we don't turn it on. This
+ // to turn on all experimental types if they're not already on. Otherwise we
+ // leave them off.
+ // Note: if any types are already registered, we don't turn them on. This
// covers the case where we're already in the process of reconfiguring
- // to turn sessions on.
+ // to turn an experimental type on.
if (sync_prefs_.HasKeepEverythingSynced()) {
// Mark all data types as preferred.
sync_prefs_.SetPreferredDataTypes(registered_types, registered_types);
- if (!to_register.empty()) {
+ // Only automatically turn on types if we have already finished set up.
+ // Otherwise, just leave the experimental types on by default.
+ if (!to_register.empty() && HasSyncSetupCompleted() && migrator_.get()) {
akalin 2011/10/15 01:21:55 can remove migrator_.get() check
akalin 2011/10/15 01:21:55 do we still need the HasSyncSetupCompleted check?
Nicolas Zea 2011/10/15 02:06:27 see above.
Nicolas Zea 2011/10/15 02:06:27 Theoretically the migrator check covers this case,
VLOG(1) << "Dynamically enabling new datatypes: "
<< syncable::ModelTypeSetToString(to_register);
OnMigrationNeededForTypes(to_register);
« no previous file with comments | « chrome/browser/sync/glue/sync_backend_host.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698