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 fca60be161f368638f194e8bbf6f89a54e474690..0a18af3637a429095de74b28260594c38555bb38 100644 |
--- a/chrome/browser/sync/profile_sync_service.cc |
+++ b/chrome/browser/sync/profile_sync_service.cc |
@@ -59,6 +59,7 @@ |
#include "sync/api/sync_error.h" |
#include "sync/internal_api/public/configure_reason.h" |
#include "sync/internal_api/public/util/experiments.h" |
+#include "sync/internal_api/public/util/sync_string_conversions.h" |
#include "sync/js/js_arg_list.h" |
#include "sync/js/js_event_details.h" |
#include "sync/util/cryptographer.h" |
@@ -352,6 +353,7 @@ void ProfileSyncService::InitializeBackend(bool delete_stale_data) { |
initial_types, |
credentials, |
delete_stale_data, |
+ &sync_manager_factory_, |
backend_unrecoverable_error_handler_.get(), |
&browser_sync::ChromeReportUnrecoverableError); |
} |
@@ -1195,14 +1197,17 @@ void ProfileSyncService::ConfigureDataTypeManager() { |
syncer::ConfigureReason reason = syncer::CONFIGURE_REASON_UNKNOWN; |
if (!HasSyncSetupCompleted()) { |
reason = syncer::CONFIGURE_REASON_NEW_CLIENT; |
- } else if (restart == false || |
- syncer::InitialSyncEndedForTypes(types, GetUserShare())) { |
- reason = syncer::CONFIGURE_REASON_RECONFIGURATION; |
- } else { |
- DCHECK(restart); |
+ } else if (restart) { |
+ // Datatype downloads on restart are generally due to newly supported |
+ // datatypes (although it's also possible we're picking up where a failed |
+ // previous configuration left off). |
+ // TODO(sync): consider detecting configuration recovery and setting |
+ // the reason here appropriately. |
reason = syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE; |
+ } else { |
+ // The user initiated a reconfiguration (either to add or remove types). |
+ reason = syncer::CONFIGURE_REASON_RECONFIGURATION; |
} |
- DCHECK(reason != syncer::CONFIGURE_REASON_UNKNOWN); |
data_type_manager_->Configure(types, reason); |
} |