summaryrefslogtreecommitdiffstats
path: root/sync
diff options
context:
space:
mode:
authormaxbogue <maxbogue@chromium.org>2016-02-01 14:21:30 -0800
committerCommit bot <commit-bot@chromium.org>2016-02-01 22:22:31 +0000
commit8be0f39e5721c510803383caf51e825dfd4f590c (patch)
tree637386e966a3fa5081dcbbbcb57f709be5a0c145 /sync
parent13b5f044fa548fec789776c4a245c91ddbb2085d (diff)
downloadchromium_src-8be0f39e5721c510803383caf51e825dfd4f590c.zip
chromium_src-8be0f39e5721c510803383caf51e825dfd4f590c.tar.gz
chromium_src-8be0f39e5721c510803383caf51e825dfd4f590c.tar.bz2
[Sync] USS: Load metadata into the processor.
Data still needs to be loaded, and then testing will be easier. BUG=569645,569987 Review URL: https://codereview.chromium.org/1635693002 Cr-Commit-Position: refs/heads/master@{#372786}
Diffstat (limited to 'sync')
-rw-r--r--sync/BUILD.gn3
-rw-r--r--sync/api/metadata_batch.cc29
-rw-r--r--sync/api/metadata_batch.h32
-rw-r--r--sync/internal_api/model_type_entity.cc10
-rw-r--r--sync/internal_api/public/fully_serialized_metadata_batch.cc20
-rw-r--r--sync/internal_api/public/fully_serialized_metadata_batch.h32
-rw-r--r--sync/internal_api/public/model_type_entity.h6
-rw-r--r--sync/internal_api/public/shared_model_type_processor.h16
-rw-r--r--sync/internal_api/shared_model_type_processor.cc67
-rw-r--r--sync/internal_api/shared_model_type_processor_unittest.cc76
-rw-r--r--sync/internal_api/test/fake_model_type_service.cc4
-rw-r--r--sync/sync.gyp3
12 files changed, 212 insertions, 86 deletions
diff --git a/sync/BUILD.gn b/sync/BUILD.gn
index e7e3dac..52f9a34 100644
--- a/sync/BUILD.gn
+++ b/sync/BUILD.gn
@@ -31,6 +31,7 @@ source_set("sync_core") {
"api/entity_change.h",
"api/entity_data.cc",
"api/entity_data.h",
+ "api/metadata_batch.cc",
"api/metadata_batch.h",
"api/metadata_change_list.h",
"api/model_type_change_processor.cc",
@@ -237,8 +238,6 @@ source_set("sync_core") {
"internal_api/public/events/normal_get_updates_request_event.h",
"internal_api/public/events/poll_get_updates_request_event.h",
"internal_api/public/events/protocol_event.h",
- "internal_api/public/fully_serialized_metadata_batch.cc",
- "internal_api/public/fully_serialized_metadata_batch.h",
"internal_api/public/http_bridge.h",
"internal_api/public/http_bridge_network_resources.h",
"internal_api/public/http_post_provider_factory.h",
diff --git a/sync/api/metadata_batch.cc b/sync/api/metadata_batch.cc
new file mode 100644
index 0000000..072ad5e
--- /dev/null
+++ b/sync/api/metadata_batch.cc
@@ -0,0 +1,29 @@
+// Copyright 2016 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 "sync/api/metadata_batch.h"
+
+namespace syncer_v2 {
+
+MetadataBatch::MetadataBatch() {}
+MetadataBatch::~MetadataBatch() {}
+
+EntityMetadataMap&& MetadataBatch::TakeAllMetadata() {
+ return std::move(metadata_map_);
+}
+
+void MetadataBatch::AddMetadata(const std::string& client_tag,
+ const sync_pb::EntityMetadata& metadata) {
+ metadata_map_.insert(std::make_pair(client_tag, metadata));
+}
+
+const DataTypeState& MetadataBatch::GetDataTypeState() const {
+ return state_;
+}
+
+void MetadataBatch::SetDataTypeState(const DataTypeState& state) {
+ state_ = state;
+}
+
+} // namespace syncer_v2
diff --git a/sync/api/metadata_batch.h b/sync/api/metadata_batch.h
index 459999c..56ab2a7 100644
--- a/sync/api/metadata_batch.h
+++ b/sync/api/metadata_batch.h
@@ -5,15 +5,41 @@
#ifndef SYNC_API_METADATA_BATCH_H_
#define SYNC_API_METADATA_BATCH_H_
+#include <map>
+
#include "sync/base/sync_export.h"
+#include "sync/internal_api/public/non_blocking_sync_common.h"
+#include "sync/protocol/entity_metadata.pb.h"
namespace syncer_v2 {
-// Interface used by the processor to read metadata requested from the service.
+// Map of client tag to EntityMetadata proto.
+typedef std::map<std::string, sync_pb::EntityMetadata> EntityMetadataMap;
+
+// Container used to pass sync metadata from services to their processor.
class SYNC_EXPORT MetadataBatch {
public:
- MetadataBatch() {}
- virtual ~MetadataBatch() {}
+ MetadataBatch();
+ virtual ~MetadataBatch();
+
+ // Allows the caller to take ownership of the entire metadata map. This is
+ // done because the caller will probably swap out all the EntityMetadata
+ // protos from the map for performance reasons.
+ EntityMetadataMap&& TakeAllMetadata();
+
+ // Add |metadata| for |client_tag| to the batch.
+ void AddMetadata(const std::string& client_tag,
+ const sync_pb::EntityMetadata& metadata);
+
+ // Get the DataTypeState for this batch.
+ const DataTypeState& GetDataTypeState() const;
+
+ // Set the DataTypeState for this batch.
+ void SetDataTypeState(const DataTypeState& state);
+
+ private:
+ EntityMetadataMap metadata_map_;
+ DataTypeState state_;
};
} // namespace syncer_v2
diff --git a/sync/internal_api/model_type_entity.cc b/sync/internal_api/model_type_entity.cc
index a88fab0..412c901 100644
--- a/sync/internal_api/model_type_entity.cc
+++ b/sync/internal_api/model_type_entity.cc
@@ -34,10 +34,16 @@ scoped_ptr<ModelTypeEntity> ModelTypeEntity::CreateNew(
new ModelTypeEntity(client_tag, &metadata));
}
+scoped_ptr<ModelTypeEntity> ModelTypeEntity::CreateFromMetadata(
+ const std::string& client_tag,
+ sync_pb::EntityMetadata* metadata) {
+ return scoped_ptr<ModelTypeEntity>(new ModelTypeEntity(client_tag, metadata));
+}
+
ModelTypeEntity::ModelTypeEntity(const std::string& client_tag,
sync_pb::EntityMetadata* metadata)
- : client_tag_(client_tag), commit_requested_sequence_number_(0) {
- DCHECK(metadata);
+ : client_tag_(client_tag),
+ commit_requested_sequence_number_(metadata->acked_sequence_number()) {
DCHECK(metadata->has_client_tag_hash());
metadata_.Swap(metadata);
}
diff --git a/sync/internal_api/public/fully_serialized_metadata_batch.cc b/sync/internal_api/public/fully_serialized_metadata_batch.cc
deleted file mode 100644
index 820bdeb..0000000
--- a/sync/internal_api/public/fully_serialized_metadata_batch.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2015 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 "sync/internal_api/public/fully_serialized_metadata_batch.h"
-
-namespace syncer_v2 {
-
-void FullySerializedMetadataBatch::PutMetadata(
- const std::string& client_key,
- const std::string& serialized_metadata) {
- // TODO(skym): Implementation.
-}
-
-void FullySerializedMetadataBatch::PutGlobalMetadata(
- const std::string& serialized_global_metadata) {
- // TODO(skym): Implementation.
-}
-
-} // namespace syncer_v2
diff --git a/sync/internal_api/public/fully_serialized_metadata_batch.h b/sync/internal_api/public/fully_serialized_metadata_batch.h
deleted file mode 100644
index 9982024..0000000
--- a/sync/internal_api/public/fully_serialized_metadata_batch.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2015 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 SYNC_INTERNAL_API_PUBLIC_FULLY_SERIALIZED_METADATA_BATCH_H_
-#define SYNC_INTERNAL_API_PUBLIC_FULLY_SERIALIZED_METADATA_BATCH_H_
-
-#include <string>
-
-#include "sync/api/metadata_batch.h"
-
-namespace syncer_v2 {
-
-// An implementation of MetadataBatch meant for services that have no need to
-// understand any of the sync metadata, and simply store/read it in a fully
-// serialized form.
-class FullySerializedMetadataBatch : public MetadataBatch {
- public:
- // Incorperates the given metadata at the given storage key into the batch,
- // handling deserialization. Multiple invocations with the same client key is
- // currently undefined.
- void PutMetadata(const std::string& client_key,
- const std::string& serialized_metadata);
-
- // Incorperates the given global metadata into the batch, handling
- // deserialization. Multiple invocations will use the last value.
- void PutGlobalMetadata(const std::string& serialized_global_metadata);
-};
-
-} // namespace syncer_v2
-
-#endif // SYNC_INTERNAL_API_PUBLIC_FULLY_SERIALIZED_METADATA_BATCH_H_
diff --git a/sync/internal_api/public/model_type_entity.h b/sync/internal_api/public/model_type_entity.h
index 68cb757..23a32ac 100644
--- a/sync/internal_api/public/model_type_entity.h
+++ b/sync/internal_api/public/model_type_entity.h
@@ -35,6 +35,12 @@ class SYNC_EXPORT ModelTypeEntity {
const std::string& id,
base::Time creation_time);
+ // Construct an instance representing an item loaded from storage on init.
+ // This method swaps out the contents of |metadata|.
+ static scoped_ptr<ModelTypeEntity> CreateFromMetadata(
+ const std::string& client_tag,
+ sync_pb::EntityMetadata* metadata);
+
~ModelTypeEntity();
// Returns entity's client tag.
diff --git a/sync/internal_api/public/shared_model_type_processor.h b/sync/internal_api/public/shared_model_type_processor.h
index c6d8b71..f237f8c 100644
--- a/sync/internal_api/public/shared_model_type_processor.h
+++ b/sync/internal_api/public/shared_model_type_processor.h
@@ -11,6 +11,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/threading/non_thread_safe.h"
+#include "sync/api/metadata_batch.h"
#include "sync/api/metadata_change_list.h"
#include "sync/api/model_type_change_processor.h"
#include "sync/api/model_type_service.h"
@@ -92,9 +93,24 @@ class SYNC_EXPORT SharedModelTypeProcessor : public ModelTypeProcessor,
const UpdateResponseDataList& pending_updates) override;
private:
+ friend class SharedModelTypeProcessorTest;
+
using EntityMap = std::map<std::string, scoped_ptr<ModelTypeEntity>>;
using UpdateMap = std::map<std::string, scoped_ptr<UpdateResponseData>>;
+ // Callback for ModelTypeService::LoadMetadata().
+ void OnMetadataLoaded(StartCallback callback,
+ syncer::SyncError,
+ scoped_ptr<MetadataBatch> batch);
+
+ // Complete the start process.
+ void FinishStart(StartCallback callback);
+
+ // Handle the first update received from the server after being enabled.
+ void OnInitialUpdateReceived(const DataTypeState& type_state,
+ const UpdateResponseDataList& response_list,
+ const UpdateResponseDataList& pending_updates);
+
// Sends all commit requests that are due to be sent to the sync thread.
void FlushPendingCommitRequests();
diff --git a/sync/internal_api/shared_model_type_processor.cc b/sync/internal_api/shared_model_type_processor.cc
index 1556446..c61e83d 100644
--- a/sync/internal_api/shared_model_type_processor.cc
+++ b/sync/internal_api/shared_model_type_processor.cc
@@ -86,11 +86,53 @@ void SharedModelTypeProcessor::Start(StartCallback callback) {
DCHECK(CalledOnValidThread());
DVLOG(1) << "Starting " << ModelTypeToString(type_);
- is_enabled_ = true;
+ if (!data_type_state_.initial_sync_done) {
+ // TODO(maxbogue): Load metadata whenever the native model is ready.
+ service_->LoadMetadata(
+ base::Bind(&SharedModelTypeProcessor::OnMetadataLoaded,
+ base::Unretained(this), callback));
+ } else {
+ FinishStart(callback);
+ }
+}
- // TODO(stanisc): At some point, this should be loaded from storage.
- data_type_state_.progress_marker.set_data_type_id(
- GetSpecificsFieldNumberFromModelType(type_));
+void SharedModelTypeProcessor::OnMetadataLoaded(
+ StartCallback callback,
+ syncer::SyncError error,
+ scoped_ptr<MetadataBatch> batch) {
+ DCHECK(CalledOnValidThread());
+ DCHECK(entities_.empty());
+
+ if (error.IsSet()) {
+ callback.Run(error, nullptr);
+ return;
+ }
+
+ if (batch->GetDataTypeState().initial_sync_done) {
+ EntityMetadataMap metadata_map(batch->TakeAllMetadata());
+ for (auto it = metadata_map.begin(); it != metadata_map.end(); it++) {
+ entities_.insert(std::make_pair(
+ it->second.client_tag_hash(),
+ ModelTypeEntity::CreateFromMetadata(it->first, &it->second)));
+ }
+ data_type_state_ = batch->GetDataTypeState();
+ // TODO(maxbogue): crbug.com/569642: Load data for pending commits.
+ // TODO(maxbogue): crbug.com/569642: Check for inconsistent state where
+ // we have data but no metadata?
+ } else {
+ // First time syncing; initialize metadata.
+ data_type_state_.progress_marker.set_data_type_id(
+ GetSpecificsFieldNumberFromModelType(type_));
+ }
+
+
+ FinishStart(callback);
+}
+
+void SharedModelTypeProcessor::FinishStart(StartCallback callback) {
+ DCHECK(CalledOnValidThread());
+
+ is_enabled_ = true;
scoped_ptr<ActivationContext> activation_context =
make_scoped_ptr(new ActivationContext);
@@ -283,6 +325,11 @@ void SharedModelTypeProcessor::OnUpdateReceived(
const DataTypeState& data_type_state,
const UpdateResponseDataList& response_list,
const UpdateResponseDataList& pending_updates) {
+
+ if (!data_type_state_.initial_sync_done) {
+ OnInitialUpdateReceived(data_type_state, response_list, pending_updates);
+ }
+
scoped_ptr<MetadataChangeList> metadata_changes =
service_->CreateMetadataChangeList();
EntityChangeList entity_changes;
@@ -393,6 +440,14 @@ void SharedModelTypeProcessor::OnUpdateReceived(
FlushPendingCommitRequests();
}
+void SharedModelTypeProcessor::OnInitialUpdateReceived(
+ const DataTypeState& data_type_state,
+ const UpdateResponseDataList& response_list,
+ const UpdateResponseDataList& pending_updates) {
+ // TODO(maxbogue): crbug.com/569675: Generate metadata for all entities.
+ // TODO(maxbogue): crbug.com/569675: Call merge method on the service.
+}
+
UpdateResponseDataList SharedModelTypeProcessor::GetPendingUpdates() {
UpdateResponseDataList pending_updates_list;
for (auto it = pending_updates_map_.begin(); it != pending_updates_map_.end();
@@ -409,9 +464,7 @@ void SharedModelTypeProcessor::ClearTransientSyncState() {
}
void SharedModelTypeProcessor::ClearSyncState() {
- for (auto it = entities_.begin(); it != entities_.end(); ++it) {
- it->second->ClearSyncState();
- }
+ entities_.clear();
pending_updates_map_.clear();
data_type_state_ = DataTypeState();
// TODO(stanisc): crbug.com/561830, crbug.com/573333: Update the service to
diff --git a/sync/internal_api/shared_model_type_processor_unittest.cc b/sync/internal_api/shared_model_type_processor_unittest.cc
index eb23793..91b88c9 100644
--- a/sync/internal_api/shared_model_type_processor_unittest.cc
+++ b/sync/internal_api/shared_model_type_processor_unittest.cc
@@ -19,6 +19,7 @@
#include "sync/protocol/sync.pb.h"
#include "sync/syncable/syncable_util.h"
#include "sync/test/engine/mock_commit_queue.h"
+#include "sync/util/time.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace syncer_v2 {
@@ -122,11 +123,17 @@ class SharedModelTypeProcessorTest : public ::testing::Test,
// when receiving items.
void SetServerEncryptionKey(const std::string& key_name);
+ void AddMetadataToBatch(const std::string& tag);
+
+ // Return the number of entities the processor has metadata for.
+ size_t ProcessorEntityCount() const;
+
MockCommitQueue* mock_queue();
SharedModelTypeProcessor* type_processor();
const EntityChangeList* entity_change_list() const;
const FakeMetadataChangeList* metadata_change_list() const;
+ MetadataBatch* metadata_batch();
private:
static std::string GenerateTagHash(const std::string& tag);
@@ -149,6 +156,7 @@ class SharedModelTypeProcessorTest : public ::testing::Test,
syncer::SyncError ApplySyncChanges(
scoped_ptr<MetadataChangeList> metadata_change_list,
EntityChangeList entity_changes) override;
+ void LoadMetadata(MetadataCallback callback) override;
// This sets ThreadTaskRunnerHandle on the current thread, which the type
// processor will pick up as the sync task runner.
@@ -166,22 +174,25 @@ class SharedModelTypeProcessorTest : public ::testing::Test,
scoped_ptr<EntityChangeList> entity_change_list_;
// The last received MetadataChangeList.
scoped_ptr<FakeMetadataChangeList> metadata_change_list_;
+ scoped_ptr<MetadataBatch> metadata_batch_;
};
SharedModelTypeProcessorTest::SharedModelTypeProcessorTest()
: mock_queue_(new MockCommitQueue()),
mock_queue_ptr_(mock_queue_),
- type_processor_(new SharedModelTypeProcessor(kModelType, this)) {}
+ type_processor_(new SharedModelTypeProcessor(kModelType, this)),
+ metadata_batch_(new MetadataBatch()) {}
SharedModelTypeProcessorTest::~SharedModelTypeProcessorTest() {}
void SharedModelTypeProcessorTest::InitializeToReadyState() {
- // TODO(rlarocque): This should be updated to inject on-disk state.
- // At the time this code was written, there was no support for on-disk
- // state so this was the only way to inject a data_type_state into
- // the |type_processor_|.
+ data_type_state_.initial_sync_done = true;
Start();
- OnInitialSyncDone();
+ // TODO(maxbogue): crbug.com/569642: Remove this once entity data is loaded
+ // for the normal startup flow.
+ UpdateResponseDataList empty_update_list;
+ type_processor_->OnUpdateReceived(data_type_state_, empty_update_list,
+ empty_update_list);
}
void SharedModelTypeProcessorTest::Start() {
@@ -339,6 +350,21 @@ void SharedModelTypeProcessorTest::SetServerEncryptionKey(
mock_queue_->SetServerEncryptionKey(key_name);
}
+void SharedModelTypeProcessorTest::AddMetadataToBatch(const std::string& tag) {
+ const std::string tag_hash = GenerateTagHash(tag);
+ base::Time creation_time = base::Time::Now();
+
+ sync_pb::EntityMetadata metadata;
+ metadata.set_client_tag_hash(tag_hash);
+ metadata.set_creation_time(syncer::TimeToProtoTime(creation_time));
+
+ metadata_batch()->AddMetadata(tag, metadata);
+}
+
+size_t SharedModelTypeProcessorTest::ProcessorEntityCount() const {
+ return type_processor_->entities_.size();
+}
+
MockCommitQueue* SharedModelTypeProcessorTest::mock_queue() {
return mock_queue_;
}
@@ -357,6 +383,10 @@ SharedModelTypeProcessorTest::metadata_change_list() const {
return metadata_change_list_.get();
}
+MetadataBatch* SharedModelTypeProcessorTest::metadata_batch() {
+ return metadata_batch_.get();
+}
+
std::string SharedModelTypeProcessorTest::GenerateTagHash(
const std::string& tag) {
return syncer::syncable::GenerateSyncableHash(kModelType, tag);
@@ -411,6 +441,12 @@ syncer::SyncError SharedModelTypeProcessorTest::ApplySyncChanges(
return syncer::SyncError();
}
+void SharedModelTypeProcessorTest::LoadMetadata(MetadataCallback callback) {
+ metadata_batch_->SetDataTypeState(data_type_state_);
+ callback.Run(syncer::SyncError(), std::move(metadata_batch_));
+ metadata_batch_.reset(new MetadataBatch());
+}
+
size_t SharedModelTypeProcessorTest::GetNumCommitRequestLists() {
return mock_queue_->GetNumCommitRequestLists();
}
@@ -432,6 +468,16 @@ CommitRequestData SharedModelTypeProcessorTest::GetLatestCommitRequestForTag(
return mock_queue_->GetLatestCommitRequestForTagHash(tag_hash);
}
+TEST_F(SharedModelTypeProcessorTest, Initialize) {
+ // TODO(maxbogue): crbug.com/569642: Add data for tag1.
+ AddMetadataToBatch("tag1");
+ ASSERT_EQ(0U, ProcessorEntityCount());
+ InitializeToReadyState();
+ ASSERT_EQ(1U, ProcessorEntityCount());
+ // TODO(maxbogue): crbug.com/569642: Verify that a commit is added to the
+ // queue.
+}
+
// Creates a new item locally.
// Thoroughly tests the data generated by a local item creation.
TEST_F(SharedModelTypeProcessorTest, CreateLocalItem) {
@@ -841,7 +887,7 @@ TEST_F(SharedModelTypeProcessorTest, Stop) {
//
// Creates items in various states of commit and verifies they re-attempt to
// commit on re-enable.
-TEST_F(SharedModelTypeProcessorTest, Disable) {
+TEST_F(SharedModelTypeProcessorTest, DISABLED_Disable) {
InitializeToReadyState();
FakeMetadataChangeList change_list;
@@ -863,18 +909,14 @@ TEST_F(SharedModelTypeProcessorTest, Disable) {
// Now we re-enable.
Restart();
- // There should be nothing to commit right away, since we need to
- // re-initialize the client state first.
- EXPECT_EQ(0U, GetNumCommitRequestLists());
-
// Once we're ready to commit, all three local items should consider
// themselves uncommitted and pending for commit.
- OnInitialSyncDone();
- EXPECT_EQ(1U, GetNumCommitRequestLists());
- EXPECT_EQ(3U, GetNthCommitRequestList(0).size());
- EXPECT_TRUE(HasCommitRequestForTag("tag1"));
- EXPECT_TRUE(HasCommitRequestForTag("tag2"));
- EXPECT_TRUE(HasCommitRequestForTag("tag3"));
+ // TODO(maxbogue): crbug.com/569645: Fix when data is loaded.
+ EXPECT_EQ(1U, GetNumCommitRequestLists());
+ EXPECT_EQ(3U, GetNthCommitRequestList(0).size());
+ EXPECT_TRUE(HasCommitRequestForTag("tag1"));
+ EXPECT_TRUE(HasCommitRequestForTag("tag2"));
+ EXPECT_TRUE(HasCommitRequestForTag("tag3"));
}
// Test receipt of pending updates.
diff --git a/sync/internal_api/test/fake_model_type_service.cc b/sync/internal_api/test/fake_model_type_service.cc
index 5aad325..36f4ad6 100644
--- a/sync/internal_api/test/fake_model_type_service.cc
+++ b/sync/internal_api/test/fake_model_type_service.cc
@@ -27,7 +27,9 @@ syncer::SyncError FakeModelTypeService::ApplySyncChanges(
return syncer::SyncError();
}
-void FakeModelTypeService::LoadMetadata(MetadataCallback callback) {}
+void FakeModelTypeService::LoadMetadata(MetadataCallback callback) {
+ callback.Run(syncer::SyncError(), make_scoped_ptr(new MetadataBatch()));
+}
void FakeModelTypeService::GetData(ClientTagList client_tags,
DataCallback callback) {}
diff --git a/sync/sync.gyp b/sync/sync.gyp
index 69e70ce..9981376 100644
--- a/sync/sync.gyp
+++ b/sync/sync.gyp
@@ -81,6 +81,7 @@
'api/entity_change.h',
'api/entity_data.cc',
'api/entity_data.h',
+ 'api/metadata_batch.cc',
'api/metadata_batch.h',
'api/metadata_change_list.h',
'api/model_type_change_processor.cc',
@@ -290,8 +291,6 @@
'internal_api/public/events/normal_get_updates_request_event.h',
'internal_api/public/events/poll_get_updates_request_event.h',
'internal_api/public/events/protocol_event.h',
- 'internal_api/public/fully_serialized_metadata_batch.h',
- 'internal_api/public/fully_serialized_metadata_batch.cc',
'internal_api/public/http_bridge.h',
'internal_api/public/http_bridge_network_resources.h',
'internal_api/public/http_post_provider_factory.h',