Commit 5a8e8ca5 authored by Rushan Suleymanov's avatar Rushan Suleymanov Committed by Commit Bot

[Sync] Implement DummyMetadataChangelist and use it in SharingMessageBridge.

DummyMetadataChangelist may be useful for data types which do not store
any data in the bridge.

Bug: 1034930
Change-Id: I2cb2f548f1874bba1edb8fa04afe31b15f0b42d6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2019206
Commit-Queue: Rushan Suleymanov <rushans@google.com>
Reviewed-by: default avatarvitaliii <vitaliii@chromium.org>
Reviewed-by: default avatarMarc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#735421}
parent 04530f83
......@@ -7,7 +7,7 @@
#include "base/guid.h"
#include "components/sync/model/metadata_batch.h"
#include "components/sync/model/mutable_data_batch.h"
#include "components/sync/model_impl/in_memory_metadata_change_list.h"
#include "components/sync/model_impl/dummy_metadata_change_list.h"
namespace {
......@@ -67,10 +67,7 @@ std::unique_ptr<syncer::MetadataChangeList>
SharingMessageBridgeImpl::CreateMetadataChangeList() {
// The data type intentionally doesn't persist the data on disk, so metadata
// is just ignored.
// TODO(crbug.com/1034930): this metadata changelist stores data in memory, it
// would be better to create DummyMetadataChangeList to ignore any changes at
// all.
return std::make_unique<syncer::InMemoryMetadataChangeList>();
return std::make_unique<syncer::DummyMetadataChangeList>();
}
base::Optional<syncer::ModelError> SharingMessageBridgeImpl::MergeSyncData(
......
......@@ -290,6 +290,8 @@ jumbo_static_library("rest_of_sync") {
"model_impl/client_tag_based_model_type_processor.h",
"model_impl/client_tag_based_remote_update_handler.cc",
"model_impl/client_tag_based_remote_update_handler.h",
"model_impl/dummy_metadata_change_list.cc",
"model_impl/dummy_metadata_change_list.h",
"model_impl/forwarding_model_type_controller_delegate.cc",
"model_impl/forwarding_model_type_controller_delegate.h",
"model_impl/in_memory_metadata_change_list.cc",
......
// Copyright 2020 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/model_impl/dummy_metadata_change_list.h"
namespace syncer {
DummyMetadataChangeList::DummyMetadataChangeList() = default;
DummyMetadataChangeList::~DummyMetadataChangeList() = default;
void DummyMetadataChangeList::UpdateModelTypeState(
const sync_pb::ModelTypeState& model_type_state) {}
void DummyMetadataChangeList::ClearModelTypeState() {}
void DummyMetadataChangeList::UpdateMetadata(
const std::string& storage_key,
const sync_pb::EntityMetadata& metadata) {}
void DummyMetadataChangeList::ClearMetadata(const std::string& storage_key) {}
} // namespace syncer
// Copyright 2020 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.
#ifndef COMPONENTS_SYNC_MODEL_IMPL_DUMMY_METADATA_CHANGE_LIST_H_
#define COMPONENTS_SYNC_MODEL_IMPL_DUMMY_METADATA_CHANGE_LIST_H_
#include <string>
#include "components/sync/model/metadata_change_list.h"
namespace syncer {
// A MetadataChangeList class that does not store anything.
class DummyMetadataChangeList : public MetadataChangeList {
public:
DummyMetadataChangeList();
~DummyMetadataChangeList() override;
// MetadataChangeList implementation.
void UpdateModelTypeState(
const sync_pb::ModelTypeState& model_type_state) override;
void ClearModelTypeState() override;
void UpdateMetadata(const std::string& storage_key,
const sync_pb::EntityMetadata& metadata) override;
void ClearMetadata(const std::string& storage_key) override;
};
} // namespace syncer
#endif // COMPONENTS_SYNC_MODEL_IMPL_DUMMY_METADATA_CHANGE_LIST_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment