| Index: chrome/browser/sync/glue/sync_backend_host_impl.cc
|
| diff --git a/chrome/browser/sync/glue/sync_backend_host_impl.cc b/chrome/browser/sync/glue/sync_backend_host_impl.cc
|
| index dc0de63237f7dc4872aca1018e7b95145a3bc8db..b8913ea549f2abd4b6bf354c9b9eb8fd73181b98 100644
|
| --- a/chrome/browser/sync/glue/sync_backend_host_impl.cc
|
| +++ b/chrome/browser/sync/glue/sync_backend_host_impl.cc
|
| @@ -339,8 +339,6 @@ void SyncBackendHostImpl::ConfigureDataTypes(
|
| // backend because configuration requests are never aborted; they are retried
|
| // until they succeed or the backend is shut down.
|
|
|
| - syncer::ModelTypeSet previous_types = registrar_->GetLastConfiguredTypes();
|
| -
|
| syncer::ModelTypeSet disabled_types =
|
| GetDataTypesInState(DISABLED, config_state_map);
|
| syncer::ModelTypeSet fatal_types =
|
| @@ -349,10 +347,8 @@ void SyncBackendHostImpl::ConfigureDataTypes(
|
| GetDataTypesInState(CRYPTO, config_state_map);
|
| syncer::ModelTypeSet unready_types =
|
| GetDataTypesInState(UNREADY, config_state_map);
|
| - disabled_types.PutAll(fatal_types);
|
|
|
| - // TODO(zea): These types won't be fully purged if they are subsequently
|
| - // disabled by the user. Fix that. See crbug.com/386778
|
| + disabled_types.PutAll(fatal_types);
|
| disabled_types.PutAll(crypto_types);
|
| disabled_types.PutAll(unready_types);
|
|
|
| @@ -395,7 +391,7 @@ void SyncBackendHostImpl::ConfigureDataTypes(
|
|
|
| syncer::ModelTypeSet current_types = registrar_->GetLastConfiguredTypes();
|
| syncer::ModelTypeSet types_to_purge =
|
| - syncer::Difference(previous_types, current_types);
|
| + syncer::Difference(syncer::ModelTypeSet::All(), current_types);
|
| syncer::ModelTypeSet inactive_types =
|
| GetDataTypesInState(CONFIGURE_INACTIVE, config_state_map);
|
| types_to_purge.RemoveAll(inactive_types);
|
|
|