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..97d6cb6f6c4fce76812ca3289e20a077428bcac3 100644 |
--- a/components/sync/engine_impl/syncer.cc |
+++ b/components/sync/engine_impl/syncer.cc |
@@ -82,6 +82,15 @@ 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()) |
skym
2017/02/24 17:04:25
Would be good to have a unit test for this as well
pavely
2017/02/24 18:54:32
Done.
|
+ request_types.RetainAll( |
+ cycle->context()->model_type_registry()->GetEnabledTypes()); |
+ |
GetUpdatesProcessor get_updates_processor( |
cycle->context()->model_type_registry()->update_handler_map(), |
configure_delegate); |