summaryrefslogtreecommitdiffstats
path: root/sync
diff options
context:
space:
mode:
authorskym <skym@chromium.org>2016-02-23 14:11:27 -0800
committerCommit bot <commit-bot@chromium.org>2016-02-23 22:12:52 +0000
commit24820c067cb649a4eee2387eda8761e776a18d63 (patch)
tree9d1218f9bae0a7e998c7ec045f4d904f7f4f3d54 /sync
parent9e0e03af41092d8647e4c4125a0b75a78a99cf8b (diff)
downloadchromium_src-24820c067cb649a4eee2387eda8761e776a18d63.zip
chromium_src-24820c067cb649a4eee2387eda8761e776a18d63.tar.gz
chromium_src-24820c067cb649a4eee2387eda8761e776a18d63.tar.bz2
[Sync] Now also check get updates request types before performing sessions garbage collection.
BUG=129654 Review URL: https://codereview.chromium.org/1717383002 Cr-Commit-Position: refs/heads/master@{#377103}
Diffstat (limited to 'sync')
-rw-r--r--sync/engine/get_updates_processor.cc1
-rw-r--r--sync/engine/get_updates_processor_unittest.cc6
-rw-r--r--sync/internal_api/public/sessions/model_neutral_state.h5
-rw-r--r--sync/sessions/status_controller.cc16
-rw-r--r--sync/sessions/status_controller.h12
5 files changed, 32 insertions, 8 deletions
diff --git a/sync/engine/get_updates_processor.cc b/sync/engine/get_updates_processor.cc
index 8bc701f..82c590f 100644
--- a/sync/engine/get_updates_processor.cc
+++ b/sync/engine/get_updates_processor.cc
@@ -370,6 +370,7 @@ syncer::SyncerError GetUpdatesProcessor::ProcessGetUpdatesResponse(
void GetUpdatesProcessor::ApplyUpdates(
ModelTypeSet gu_types,
sessions::StatusController* status_controller) {
+ status_controller->set_get_updates_request_types(gu_types);
delegate_.ApplyUpdates(gu_types, status_controller, update_handler_map_);
}
diff --git a/sync/engine/get_updates_processor_unittest.cc b/sync/engine/get_updates_processor_unittest.cc
index d6456a5..db3ea8c 100644
--- a/sync/engine/get_updates_processor_unittest.cc
+++ b/sync/engine/get_updates_processor_unittest.cc
@@ -434,6 +434,8 @@ TEST_F(GetUpdatesProcessorApplyUpdatesTest, Normal) {
EXPECT_EQ(0, GetNonAppliedHandler()->GetPassiveApplyUpdatesCount());
EXPECT_EQ(0, GetAppliedHandler()->GetPassiveApplyUpdatesCount());
+
+ EXPECT_TRUE(status.get_updates_request_types().Equals(GetGuTypes()));
}
// Verify that a configure cycle applies updates passively to the specified
@@ -455,6 +457,8 @@ TEST_F(GetUpdatesProcessorApplyUpdatesTest, Configure) {
EXPECT_EQ(0, GetNonAppliedHandler()->GetApplyUpdatesCount());
EXPECT_EQ(0, GetAppliedHandler()->GetApplyUpdatesCount());
+
+ EXPECT_TRUE(status.get_updates_request_types().Equals(GetGuTypes()));
}
// Verify that a poll cycle applies updates non-passively to the specified
@@ -475,6 +479,8 @@ TEST_F(GetUpdatesProcessorApplyUpdatesTest, Poll) {
EXPECT_EQ(0, GetNonAppliedHandler()->GetPassiveApplyUpdatesCount());
EXPECT_EQ(0, GetAppliedHandler()->GetPassiveApplyUpdatesCount());
+
+ EXPECT_TRUE(status.get_updates_request_types().Equals(GetGuTypes()));
}
class DownloadUpdatesDebugInfoTest : public ::testing::Test {
diff --git a/sync/internal_api/public/sessions/model_neutral_state.h b/sync/internal_api/public/sessions/model_neutral_state.h
index a80a10d..91bce88 100644
--- a/sync/internal_api/public/sessions/model_neutral_state.h
+++ b/sync/internal_api/public/sessions/model_neutral_state.h
@@ -21,6 +21,9 @@ struct SYNC_EXPORT ModelNeutralState {
ModelNeutralState();
~ModelNeutralState();
+ // The set of types for which updates were requested from the server.
+ ModelTypeSet get_updates_request_types;
+
// The set of types for which commits were sent to the server.
ModelTypeSet commit_request_types;
@@ -54,7 +57,7 @@ struct SYNC_EXPORT ModelNeutralState {
bool items_committed;
};
-bool HasSyncerError(const ModelNeutralState& state);
+SYNC_EXPORT bool HasSyncerError(const ModelNeutralState& state);
} // namespace sessions
} // namespace syncer
diff --git a/sync/sessions/status_controller.cc b/sync/sessions/status_controller.cc
index 01b9781..4f9e141 100644
--- a/sync/sessions/status_controller.cc
+++ b/sync/sessions/status_controller.cc
@@ -17,6 +17,22 @@ StatusController::StatusController() {
StatusController::~StatusController() {}
+const ModelTypeSet StatusController::get_updates_request_types() const {
+ return model_neutral_.get_updates_request_types;
+}
+
+void StatusController::set_get_updates_request_types(ModelTypeSet value) {
+ model_neutral_.get_updates_request_types = value;
+}
+
+const ModelTypeSet StatusController::commit_request_types() const {
+ return model_neutral_.commit_request_types;
+}
+
+void StatusController::set_commit_request_types(ModelTypeSet value) {
+ model_neutral_.commit_request_types = value;
+}
+
void StatusController::increment_num_updates_downloaded_by(int value) {
model_neutral_.num_updates_downloaded_total += value;
}
diff --git a/sync/sessions/status_controller.h b/sync/sessions/status_controller.h
index 9cf63d8..4551dfd 100644
--- a/sync/sessions/status_controller.h
+++ b/sync/sessions/status_controller.h
@@ -36,13 +36,11 @@ class SYNC_EXPORT StatusController {
StatusController();
~StatusController();
- // ClientToServer messages.
- const ModelTypeSet commit_request_types() const {
- return model_neutral_.commit_request_types;
- }
- void set_commit_request_types(ModelTypeSet value) {
- model_neutral_.commit_request_types = value;
- }
+ // The types included in the get updates and commit client to server requests.
+ const ModelTypeSet get_updates_request_types() const;
+ void set_get_updates_request_types(ModelTypeSet value);
+ const ModelTypeSet commit_request_types() const;
+ void set_commit_request_types(ModelTypeSet value);
// Various conflict counters.
int num_encryption_conflicts() const;