diff options
Diffstat (limited to 'chromium/components/sync_bookmarks/bookmark_sync_service.cc')
-rw-r--r-- | chromium/components/sync_bookmarks/bookmark_sync_service.cc | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/chromium/components/sync_bookmarks/bookmark_sync_service.cc b/chromium/components/sync_bookmarks/bookmark_sync_service.cc new file mode 100644 index 00000000000..8a3d8e509e2 --- /dev/null +++ b/chromium/components/sync_bookmarks/bookmark_sync_service.cc @@ -0,0 +1,54 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/sync_bookmarks/bookmark_sync_service.h" + +#include "base/feature_list.h" +#include "components/sync/driver/sync_driver_switches.h" +#include "components/sync_bookmarks/bookmark_model_type_processor.h" +#include "components/undo/bookmark_undo_service.h" + +namespace sync_bookmarks { + +BookmarkSyncService::BookmarkSyncService( + BookmarkUndoService* bookmark_undo_service) { + if (base::FeatureList::IsEnabled(switches::kSyncUSSBookmarks)) { + bookmark_model_type_processor_ = + std::make_unique<sync_bookmarks::BookmarkModelTypeProcessor>( + bookmark_undo_service); + } +} + +BookmarkSyncService::~BookmarkSyncService() {} + +void BookmarkSyncService::Shutdown() { + bookmark_model_type_processor_.reset(); +} + +std::string BookmarkSyncService::EncodeBookmarkSyncMetadata() { + if (!bookmark_model_type_processor_) { + return std::string(); + } + return bookmark_model_type_processor_->EncodeSyncMetadata(); +} + +void BookmarkSyncService::DecodeBookmarkSyncMetadata( + const std::string& metadata_str, + const base::RepeatingClosure& schedule_save_closure, + bookmarks::BookmarkModel* model) { + if (bookmark_model_type_processor_) { + bookmark_model_type_processor_->ModelReadyToSync( + metadata_str, schedule_save_closure, model); + } +} + +base::WeakPtr<syncer::ModelTypeControllerDelegate> +BookmarkSyncService::GetBookmarkSyncControllerDelegateOnUIThread() { + if (!bookmark_model_type_processor_) { + return nullptr; + } + return bookmark_model_type_processor_->GetWeakPtr(); +} + +} // namespace sync_bookmarks |