| // 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_IMPL_BOOKMARK_UPDATE_PREPROCESSING_H_ |
| #define COMPONENTS_SYNC_ENGINE_IMPL_BOOKMARK_UPDATE_PREPROCESSING_H_ |
| |
| namespace sync_pb { |
| class SyncEntity; |
| class EntitySpecifics; |
| } // namespace sync_pb |
| |
| namespace syncer { |
| |
| struct EntityData; |
| |
| // Populates |data->unique_position| from the various supported proto fields in |
| // |update_entity|. |data| must not be null. |
| void AdaptUniquePositionForBookmark(const sync_pb::SyncEntity& update_entity, |
| EntityData* data); |
| |
| // Populates |specifics->bookmark().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); |
| |
| // Populates |specifics->bookmark().guid()| from the various supported sources, |
| // or no-op if specifics already have the field set. |specifics| must not be |
| // null. |
| void AdaptGuidForBookmark(const sync_pb::SyncEntity& update_entity, |
| sync_pb::EntitySpecifics* specifics); |
| |
| } // namespace syncer |
| |
| #endif // COMPONENTS_SYNC_ENGINE_IMPL_BOOKMARK_UPDATE_PREPROCESSING_H_ |