diff options
Diffstat (limited to 'chrome/browser/sync/sync_prefs.cc')
-rw-r--r-- | chrome/browser/sync/sync_prefs.cc | 116 |
1 files changed, 54 insertions, 62 deletions
diff --git a/chrome/browser/sync/sync_prefs.cc b/chrome/browser/sync/sync_prefs.cc index e013bda..bbaa8ec 100644 --- a/chrome/browser/sync/sync_prefs.cc +++ b/chrome/browser/sync/sync_prefs.cc @@ -123,11 +123,11 @@ void SyncPrefs::SetKeepEverythingSynced(bool keep_everything_synced) { pref_service_->ScheduleSavePersistentPrefs(); } -syncable::ModelTypeSet SyncPrefs::GetPreferredDataTypes( - const syncable::ModelTypeSet& registered_types) const { +syncable::ModelEnumSet SyncPrefs::GetPreferredDataTypes( + syncable::ModelEnumSet registered_types) const { DCHECK(non_thread_safe_.CalledOnValidThread()); if (!pref_service_) { - return syncable::ModelTypeSet(); + return syncable::ModelEnumSet(); } if (pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced)) { @@ -136,93 +136,92 @@ syncable::ModelTypeSet SyncPrefs::GetPreferredDataTypes( // Remove autofill_profile since it's controlled by autofill, and // search_engines since it's controlled by preferences (see code below). - syncable::ModelTypeSet user_selectable_types(registered_types); - DCHECK_EQ(user_selectable_types.count(syncable::NIGORI), 0u); - user_selectable_types.erase(syncable::AUTOFILL_PROFILE); - user_selectable_types.erase(syncable::SEARCH_ENGINES); + syncable::ModelEnumSet user_selectable_types(registered_types); + DCHECK(!user_selectable_types.Has(syncable::NIGORI)); + user_selectable_types.Remove(syncable::AUTOFILL_PROFILE); + user_selectable_types.Remove(syncable::SEARCH_ENGINES); // Remove app_notifications since it's controlled by apps (see // code below). // TODO(akalin): Centralize notion of all user selectable data types. - user_selectable_types.erase(syncable::APP_NOTIFICATIONS); + user_selectable_types.Remove(syncable::APP_NOTIFICATIONS); - syncable::ModelTypeSet preferred_types; + syncable::ModelEnumSet preferred_types; - for (syncable::ModelTypeSet::const_iterator it = - user_selectable_types.begin(); - it != user_selectable_types.end(); ++it) { - if (GetDataTypePreferred(*it)) { - preferred_types.insert(*it); + for (syncable::ModelEnumSet::Iterator it = user_selectable_types.First(); + it.Good(); it.Inc()) { + if (GetDataTypePreferred(it.Get())) { + preferred_types.Put(it.Get()); } } // Group the enabled/disabled state of autofill_profile with autofill, and // search_engines with preferences (since only autofill and preferences are // shown on the UI). - if (registered_types.count(syncable::AUTOFILL) && - registered_types.count(syncable::AUTOFILL_PROFILE) && + if (registered_types.Has(syncable::AUTOFILL) && + registered_types.Has(syncable::AUTOFILL_PROFILE) && GetDataTypePreferred(syncable::AUTOFILL)) { - preferred_types.insert(syncable::AUTOFILL_PROFILE); + preferred_types.Put(syncable::AUTOFILL_PROFILE); } - if (registered_types.count(syncable::PREFERENCES) && - registered_types.count(syncable::SEARCH_ENGINES) && + if (registered_types.Has(syncable::PREFERENCES) && + registered_types.Has(syncable::SEARCH_ENGINES) && GetDataTypePreferred(syncable::PREFERENCES)) { - preferred_types.insert(syncable::SEARCH_ENGINES); + preferred_types.Put(syncable::SEARCH_ENGINES); } // Set app_notifications to the same enabled/disabled state as // apps (since only apps is shown on the UI). - if (registered_types.count(syncable::APPS) && - registered_types.count(syncable::APP_NOTIFICATIONS) && + if (registered_types.Has(syncable::APPS) && + registered_types.Has(syncable::APP_NOTIFICATIONS) && GetDataTypePreferred(syncable::APPS)) { - preferred_types.insert(syncable::APP_NOTIFICATIONS); + preferred_types.Put(syncable::APP_NOTIFICATIONS); } return preferred_types; } void SyncPrefs::SetPreferredDataTypes( - const syncable::ModelTypeSet& registered_types, - const syncable::ModelTypeSet& preferred_types) { + syncable::ModelEnumSet registered_types, + syncable::ModelEnumSet preferred_types) { DCHECK(non_thread_safe_.CalledOnValidThread()); CHECK(pref_service_); - DCHECK(std::includes(registered_types.begin(), registered_types.end(), - preferred_types.begin(), preferred_types.end())); - syncable::ModelTypeSet preferred_types_with_dependents(preferred_types); + DCHECK(registered_types.HasAll(preferred_types)); + syncable::ModelEnumSet preferred_types_with_dependents(preferred_types); // Set autofill_profile to the same enabled/disabled state as // autofill (since only autofill is shown in the UI). - if (registered_types.count(syncable::AUTOFILL) && - registered_types.count(syncable::AUTOFILL_PROFILE)) { - if (preferred_types_with_dependents.count(syncable::AUTOFILL)) { - preferred_types_with_dependents.insert(syncable::AUTOFILL_PROFILE); + if (registered_types.Has(syncable::AUTOFILL) && + registered_types.Has(syncable::AUTOFILL_PROFILE)) { + if (preferred_types_with_dependents.Has(syncable::AUTOFILL)) { + preferred_types_with_dependents.Put(syncable::AUTOFILL_PROFILE); } else { - preferred_types_with_dependents.erase(syncable::AUTOFILL_PROFILE); + preferred_types_with_dependents.Remove(syncable::AUTOFILL_PROFILE); } } // Set app_notifications to the same enabled/disabled state as // apps (since only apps is shown in the UI). - if (registered_types.count(syncable::APPS) && - registered_types.count(syncable::APP_NOTIFICATIONS)) { - if (preferred_types_with_dependents.count(syncable::APPS)) { - preferred_types_with_dependents.insert(syncable::APP_NOTIFICATIONS); + if (registered_types.Has(syncable::APPS) && + registered_types.Has(syncable::APP_NOTIFICATIONS)) { + if (preferred_types_with_dependents.Has(syncable::APPS)) { + preferred_types_with_dependents.Put(syncable::APP_NOTIFICATIONS); } else { - preferred_types_with_dependents.erase(syncable::APP_NOTIFICATIONS); + preferred_types_with_dependents.Remove(syncable::APP_NOTIFICATIONS); } } // Set search_engines to the same enabled/disabled state as // preferences (since only preferences is shown in the UI). - if (registered_types.count(syncable::PREFERENCES) && - registered_types.count(syncable::SEARCH_ENGINES)) { - if (preferred_types_with_dependents.count(syncable::PREFERENCES)) { - preferred_types_with_dependents.insert(syncable::SEARCH_ENGINES); + if (registered_types.Has(syncable::PREFERENCES) && + registered_types.Has(syncable::SEARCH_ENGINES)) { + if (preferred_types_with_dependents.Has(syncable::PREFERENCES)) { + preferred_types_with_dependents.Put(syncable::SEARCH_ENGINES); } else { - preferred_types_with_dependents.erase(syncable::SEARCH_ENGINES); + preferred_types_with_dependents.Remove(syncable::SEARCH_ENGINES); } } - for (syncable::ModelTypeSet::const_iterator it = registered_types.begin(); - it != registered_types.end(); ++it) { - SetDataTypePreferred(*it, preferred_types_with_dependents.count(*it) > 0); + for (syncable::ModelEnumSet::Iterator it = registered_types.First(); + it.Good(); it.Inc()) { + SetDataTypePreferred( + it.Get(), preferred_types_with_dependents.Has(it.Get())); } } @@ -314,25 +313,18 @@ void SyncPrefs::SetMaxVersion(syncable::ModelType model_type, } void SyncPrefs::AcknowledgeSyncedTypes( - const syncable::ModelTypeSet& types) { + syncable::ModelEnumSet types) { DCHECK(non_thread_safe_.CalledOnValidThread()); CHECK(pref_service_); - syncable::ModelTypeSet acknowledged_types = - syncable::ModelTypeSetFromValue( - *pref_service_->GetList(prefs::kSyncAcknowledgedSyncTypes)); - // Add the types to the current set of acknowledged // types, and then store the resulting set in prefs. - { - syncable::ModelTypeSet temp; - std::set_union(acknowledged_types.begin(), acknowledged_types.end(), - types.begin(), types.end(), - std::inserter(temp, temp.end())); - std::swap(acknowledged_types, temp); - } + const syncable::ModelEnumSet acknowledged_types = + Union(types, + syncable::ModelEnumSetFromValue( + *pref_service_->GetList(prefs::kSyncAcknowledgedSyncTypes))); scoped_ptr<ListValue> value( - syncable::ModelTypeSetToValue(acknowledged_types)); + syncable::ModelEnumSetToValue(acknowledged_types)); pref_service_->Set(prefs::kSyncAcknowledgedSyncTypes, *value); pref_service_->ScheduleSavePersistentPrefs(); } @@ -365,12 +357,12 @@ void SyncPrefs::SetManagedForTest(bool is_managed) { pref_service_->ScheduleSavePersistentPrefs(); } -syncable::ModelTypeSet SyncPrefs::GetAcknowledgeSyncedTypesForTest() const { +syncable::ModelEnumSet SyncPrefs::GetAcknowledgeSyncedTypesForTest() const { DCHECK(non_thread_safe_.CalledOnValidThread()); if (!pref_service_) { - return syncable::ModelTypeSet(); + return syncable::ModelEnumSet(); } - return syncable::ModelTypeSetFromValue( + return syncable::ModelEnumSetFromValue( *pref_service_->GetList(prefs::kSyncAcknowledgedSyncTypes)); } |