// 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_bookmarks/bookmark_model_type_processor.h" #include "components/undo/bookmark_undo_service.h" namespace sync_bookmarks { BookmarkSyncService::BookmarkSyncService( BookmarkUndoService* bookmark_undo_service) { bookmark_model_type_processor_ = std::make_unique( bookmark_undo_service); } BookmarkSyncService::~BookmarkSyncService() = default; 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 BookmarkSyncService::GetBookmarkSyncControllerDelegate( favicon::FaviconService* favicon_service) { DCHECK(favicon_service); if (!bookmark_model_type_processor_) { return nullptr; } bookmark_model_type_processor_->SetFaviconService(favicon_service); return bookmark_model_type_processor_->GetWeakPtr(); } } // namespace sync_bookmarks