| Index: chrome/browser/sync/sync_prefs.cc
|
| diff --git a/chrome/browser/sync/sync_prefs.cc b/chrome/browser/sync/sync_prefs.cc
|
| index e013bda166aa24058b738339e5341249ad088ace..bbaa8ec0afe9674879dec9e8999dfa77a2e84fae 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));
|
| }
|
|
|
|
|