blob: 5245122acd9a95617326b6f65d8efc1a28614cc7 [file] [log] [blame]
// 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_