Chromium Code Reviews| 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 ee4690a69a8e1d87538731466a373a80507be997..3c26b2f02e7939428be4b6fc8f1d28180fa6729d 100644 |
| --- a/chrome/browser/sync/profile_sync_service.cc |
| +++ b/chrome/browser/sync/profile_sync_service.cc |
| @@ -825,6 +825,9 @@ void ProfileSyncService::OnBackendInitialized( |
| } |
| if (HasSyncSetupCompleted()) { |
| + const syncer::ModelTypeSet priority_types = GetPriorityDataTypes(); |
|
Nicolas Zea
2013/02/25 23:47:47
how about just intersecting the preferred datatype
albertb
2013/03/01 22:01:56
Done.
|
| + data_type_manager_->Configure(priority_types, |
| + syncer::CONFIGURE_REASON_RECONFIGURATION); |
| ConfigureDataTypeManager(); |
| } else { |
| DCHECK(FirstSetupInProgress()); |
| @@ -1413,6 +1416,7 @@ void ProfileSyncService::ChangePreferredDataTypes( |
| ReconfigureDatatypeManager(); |
| } |
| +// TODO(albertb): Extract a common method. |
| syncer::ModelTypeSet ProfileSyncService::GetPreferredDataTypes() const { |
| const syncer::ModelTypeSet registered_types = GetRegisteredDataTypes(); |
| const syncer::ModelTypeSet preferred_types = |
| @@ -1422,6 +1426,16 @@ syncer::ModelTypeSet ProfileSyncService::GetPreferredDataTypes() const { |
| return Difference(preferred_types, failed_types); |
| } |
| +syncer::ModelTypeSet ProfileSyncService::GetPriorityDataTypes() const { |
| + const syncer::ModelTypeSet registered_types = GetRegisteredDataTypes(); |
| + const syncer::ModelTypeSet preferred_types = |
| + sync_prefs_.GetPreferredDataTypes(registered_types); |
| + const syncer::ModelTypeSet failed_types = |
| + failed_datatypes_handler_.GetFailedTypes(); |
| + return Difference(Intersection(preferred_types, syncer::PriorityUserTypes()), |
| + failed_types); |
| +} |
| + |
| syncer::ModelTypeSet ProfileSyncService::GetRegisteredDataTypes() const { |
| syncer::ModelTypeSet registered_types; |
| // The data_type_controllers_ are determined by command-line flags; that's |