Index: components/sync/engine_impl/syncer.cc |
diff --git a/components/sync/engine_impl/syncer.cc b/components/sync/engine_impl/syncer.cc |
index 76b7da36884a3b16efe58ab39d81889e86db62c9..5d28f4a9dcebc48b5dc6a3418b95eba64f9cf396 100644 |
--- a/components/sync/engine_impl/syncer.cc |
+++ b/components/sync/engine_impl/syncer.cc |
@@ -82,6 +82,14 @@ bool Syncer::ConfigureSyncShare( |
VLOG(1) << "Configuring types " << ModelTypeSetToString(request_types); |
HandleCycleBegin(cycle); |
ConfigureGetUpdatesDelegate configure_delegate(source); |
+ |
+ // It is possible during shutdown that datatypes get unregistered from |
+ // ModelTypeRegistry before scheduled configure sync cycle gets executed. |
+ // When it happens we should adjust set of types to download to only include |
+ // registered types. |
+ if (cancelation_signal_->IsSignalled()) |
+ request_types.RetainAll(cycle->context()->GetEnabledTypes()); |
+ |
GetUpdatesProcessor get_updates_processor( |
cycle->context()->model_type_registry()->update_handler_map(), |
configure_delegate); |