Index: chrome/browser/sync/glue/sync_backend_host.cc |
diff --git a/chrome/browser/sync/glue/sync_backend_host.cc b/chrome/browser/sync/glue/sync_backend_host.cc |
index 4c8b2c1a7b7ce0eb0dab225b7e14e808211af9de..3f41a806dedf64eaf6180103c0e3a2833b842e8a 100644 |
--- a/chrome/browser/sync/glue/sync_backend_host.cc |
+++ b/chrome/browser/sync/glue/sync_backend_host.cc |
@@ -727,9 +727,14 @@ void SyncBackendHost::ConfigureDataTypes( |
GetDataTypesInState(CRYPTO, config_state_map); |
disabled_types.PutAll(fatal_types); |
disabled_types.PutAll(crypto_types); |
+ syncer::ModelTypeSet active_types = |
+ GetDataTypesInState(CONFIGURE_ACTIVE, config_state_map); |
+ syncer::ModelTypeSet clean_first_types = |
+ GetDataTypesInState(CONFIGURE_CLEAN, config_state_map); |
syncer::ModelTypeSet types_to_download = registrar_->ConfigureDataTypes( |
- GetDataTypesInState(CONFIGURE_ACTIVE, config_state_map), |
+ syncer::Union(active_types, clean_first_types), |
disabled_types); |
+ types_to_download.PutAll(clean_first_types); |
tim (not reviewing)
2013/07/01 21:10:18
In what cases does the registrar decide to remove
Nicolas Zea
2013/07/01 23:27:45
I'm not sure I understand the question? The regist
tim (not reviewing)
2013/07/02 18:54:18
I guess it wasn't clear what was happening with cl
|
types_to_download.RemoveAll(syncer::ProxyTypes()); |
if (!types_to_download.Empty()) |
types_to_download.Put(syncer::NIGORI); |
@@ -789,7 +794,7 @@ void SyncBackendHost::ConfigureDataTypes( |
types_to_download, |
types_to_purge, |
fatal_types, |
- crypto_types, |
+ syncer::Union(crypto_types, clean_first_types), |
inactive_types, |
routing_info, |
ready_task, |