summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/sync/profile_sync_service.cc22
1 files changed, 13 insertions, 9 deletions
diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc
index 825f5d1..e35a5e4 100644
--- a/chrome/browser/sync/profile_sync_service.cc
+++ b/chrome/browser/sync/profile_sync_service.cc
@@ -777,15 +777,19 @@ void ProfileSyncService::GetPreferredDataTypes(
// the preference can't be read.
syncable::ModelTypeSet registered_types;
GetRegisteredDataTypes(&registered_types);
- for (int i = 0; i < syncable::MODEL_TYPE_COUNT; ++i) {
- syncable::ModelType model_type = syncable::ModelTypeFromInt(i);
- if (!registered_types.count(model_type))
- continue;
- const char* pref_name = GetPrefNameForDataType(model_type);
- if (!pref_name)
- continue;
- if (profile_->GetPrefs()->GetBoolean(pref_name))
- preferred_types->insert(model_type);
+ if (profile_->GetPrefs()->GetBoolean(prefs::kKeepEverythingSynced)) {
+ *preferred_types = registered_types;
+ } else {
+ for (int i = 0; i < syncable::MODEL_TYPE_COUNT; ++i) {
+ syncable::ModelType model_type = syncable::ModelTypeFromInt(i);
+ if (!registered_types.count(model_type))
+ continue;
+ const char* pref_name = GetPrefNameForDataType(model_type);
+ if (!pref_name)
+ continue;
+ if (profile_->GetPrefs()->GetBoolean(pref_name))
+ preferred_types->insert(model_type);
+ }
}
}