Chromium Code Reviews| 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); |