Index: sync/internal_api/sync_manager_impl.cc |
diff --git a/sync/internal_api/sync_manager_impl.cc b/sync/internal_api/sync_manager_impl.cc |
index 30bbafd2b4f5c72ac351eb3f595e6fdf1ea5330e..8d2893923d3e7668dfd5e944fbfa1a10a510d019 100644 |
--- a/sync/internal_api/sync_manager_impl.cc |
+++ b/sync/internal_api/sync_manager_impl.cc |
@@ -387,6 +387,7 @@ void SyncManagerImpl::Init(InitArgs* args) { |
model_type_registry_.reset( |
new ModelTypeRegistry(args->workers, directory(), this)); |
+ sync_encryption_handler_->AddObserver(model_type_registry_.get()); |
// Bind the SyncContext WeakPtr to this thread. This helps us crash earlier |
// if the pointer is misused in debug mode. |
@@ -607,6 +608,10 @@ void SyncManagerImpl::ShutdownOnSyncThread(ShutdownReason reason) { |
scheduler_.reset(); |
session_context_.reset(); |
+ |
+ if (model_type_registry_) { |
+ sync_encryption_handler_->RemoveObserver(model_type_registry_.get()); |
+ } |
model_type_registry_.reset(); |
if (sync_encryption_handler_) { |