summaryrefslogtreecommitdiff
path: root/chromium/components/sync_bookmarks/bookmark_model_type_controller.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/sync_bookmarks/bookmark_model_type_controller.cc')
-rw-r--r--chromium/components/sync_bookmarks/bookmark_model_type_controller.cc14
1 files changed, 11 insertions, 3 deletions
diff --git a/chromium/components/sync_bookmarks/bookmark_model_type_controller.cc b/chromium/components/sync_bookmarks/bookmark_model_type_controller.cc
index ccc49f88cf2..678334e0eb3 100644
--- a/chromium/components/sync_bookmarks/bookmark_model_type_controller.cc
+++ b/chromium/components/sync_bookmarks/bookmark_model_type_controller.cc
@@ -68,12 +68,15 @@ void BookmarkModelTypeController::RegisterWithBackend(
base::Callback<void(bool)> set_downloaded,
syncer::ModelTypeConfigurer* configurer) {
DCHECK(CalledOnValidThread());
+ if (activated_)
+ return;
DCHECK(configurer);
std::unique_ptr<syncer::ActivationContext> activation_context =
PrepareActivationContext();
set_downloaded.Run(activation_context->model_type_state.initial_sync_done());
configurer->ActivateNonBlockingDataType(type(),
std::move(activation_context));
+ activated_ = true;
}
void BookmarkModelTypeController::StartAssociating(
@@ -92,13 +95,17 @@ void BookmarkModelTypeController::StartAssociating(
void BookmarkModelTypeController::ActivateDataType(
syncer::ModelTypeConfigurer* configurer) {
DCHECK(CalledOnValidThread());
- NOTIMPLEMENTED();
+ DCHECK(configurer);
+ DCHECK_EQ(RUNNING, state_);
}
void BookmarkModelTypeController::DeactivateDataType(
syncer::ModelTypeConfigurer* configurer) {
DCHECK(CalledOnValidThread());
- NOTIMPLEMENTED();
+ if (activated_) {
+ configurer->DeactivateNonBlockingDataType(type());
+ activated_ = false;
+ }
}
void BookmarkModelTypeController::Stop() {
@@ -158,7 +165,8 @@ BookmarkModelTypeController::PrepareActivationContext() {
directory->InitialSyncEndedForType(type()));
// TODO(pavely): Populate model_type_state.type_context.
- model_type_processor_ = std::make_unique<BookmarkModelTypeProcessor>();
+ model_type_processor_ =
+ std::make_unique<BookmarkModelTypeProcessor>(sync_client_);
activation_context->type_processor =
std::make_unique<syncer::ModelTypeProcessorProxy>(
model_type_processor_->GetWeakPtr(),