123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- // Copyright 2019 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.
- // This file contains various utility functions used by ModelTypeWorker to
- // preprocess remote bookmark updates, to deal with backward-compatibility of
- // data and migrate updates such that they resemble updates from a modern
- // client.
- #ifndef COMPONENTS_SYNC_ENGINE_BOOKMARK_UPDATE_PREPROCESSING_H_
- #define COMPONENTS_SYNC_ENGINE_BOOKMARK_UPDATE_PREPROCESSING_H_
- #include <string>
- namespace sync_pb {
- class SyncEntity;
- class EntitySpecifics;
- } // namespace sync_pb
- namespace syncer {
- // Populates |specifics->bookmark().unique_position()| from the various
- // supported proto fields in |update_entity| and worst-case falls back to a
- // random position. |specifics| must not be null. Returns true if
- // |unique_position| has been changed.
- bool AdaptUniquePositionForBookmark(const sync_pb::SyncEntity& update_entity,
- sync_pb::EntitySpecifics* specifics);
- // Populates |specifics->bookmark().type()| (i.e. whether a bookmark is a
- // folder) for the cases where the field isn't populated.
- void AdaptTypeForBookmark(const sync_pb::SyncEntity& update_entity,
- sync_pb::EntitySpecifics* specifics);
- // Populates |specifics->bookmark().legacy_canonicalized_title()| from the
- // various supported sources, or no-op if specifics already have the field set.
- // |specifics| must not be null.
- void AdaptTitleForBookmark(const sync_pb::SyncEntity& update_entity,
- sync_pb::EntitySpecifics* specifics,
- bool specifics_were_encrypted);
- // Tries to populates |specifics->bookmark().guid()| from the various supported
- // sources, or no-op if a) specifics already have the field set; or b) the GUID
- // cannot be inferred. |specifics| must not be null.
- void AdaptGuidForBookmark(const sync_pb::SyncEntity& update_entity,
- sync_pb::EntitySpecifics* specifics);
- // GUID-inferring function exposed for testing.
- std::string InferGuidForLegacyBookmarkForTesting(
- const std::string& originator_cache_guid,
- const std::string& originator_client_item_id);
- } // namespace syncer
- #endif // COMPONENTS_SYNC_ENGINE_BOOKMARK_UPDATE_PREPROCESSING_H_
|