diff options
-rw-r--r-- | chrome/browser/sync/engine/syncer.cc | 11 | ||||
-rw-r--r-- | chrome/browser/sync/sessions/status_controller.cc | 2 | ||||
-rw-r--r-- | chrome/browser/sync/sessions/status_controller_unittest.cc | 8 |
3 files changed, 16 insertions, 5 deletions
diff --git a/chrome/browser/sync/engine/syncer.cc b/chrome/browser/sync/engine/syncer.cc index b906062..fe2a49c 100644 --- a/chrome/browser/sync/engine/syncer.cc +++ b/chrome/browser/sync/engine/syncer.cc @@ -273,12 +273,15 @@ void Syncer::SyncShare(sessions::SyncSession* session, apply_updates.Execute(session); int after_blocking_conflicting_updates = status->TotalNumBlockingConflictingItems(); + // If the following call sets the conflicts_resolved value to true, + // SyncSession::HasMoreToSync() will send us into another sync cycle + // after this one completes. + // + // TODO(rlarocque, 109072): Make conflict resolution not require + // extra sync cycles/GetUpdates. status->update_conflicts_resolved(before_blocking_conflicting_updates > after_blocking_conflicting_updates); - if (status->conflicts_resolved()) - next_step = RESOLVE_CONFLICTS; - else - next_step = SYNCER_END; + next_step = SYNCER_END; break; } case CLEAR_PRIVATE_DATA: { diff --git a/chrome/browser/sync/sessions/status_controller.cc b/chrome/browser/sync/sessions/status_controller.cc index e359c58..4e83a79 100644 --- a/chrome/browser/sync/sessions/status_controller.cc +++ b/chrome/browser/sync/sessions/status_controller.cc @@ -234,7 +234,7 @@ void StatusController::update_conflict_sets_built(bool built) { shared_.control_params.conflict_sets_built |= built; } void StatusController::update_conflicts_resolved(bool resolved) { - shared_.control_params.conflict_sets_built |= resolved; + shared_.control_params.conflicts_resolved |= resolved; } void StatusController::reset_conflicts_resolved() { shared_.control_params.conflicts_resolved = false; diff --git a/chrome/browser/sync/sessions/status_controller_unittest.cc b/chrome/browser/sync/sessions/status_controller_unittest.cc index d39ee78..4b6b036 100644 --- a/chrome/browser/sync/sessions/status_controller_unittest.cc +++ b/chrome/browser/sync/sessions/status_controller_unittest.cc @@ -130,6 +130,14 @@ TEST_F(StatusControllerTest, ReadYourWrites) { status.set_syncer_stuck(true); EXPECT_TRUE(status.syncer_status().syncer_stuck); + EXPECT_FALSE(status.conflicts_resolved()); + status.update_conflicts_resolved(true); + EXPECT_TRUE(status.conflicts_resolved()); + + EXPECT_FALSE(status.conflict_sets_built()); + status.update_conflict_sets_built(true); + EXPECT_TRUE(status.conflict_sets_built()); + status.set_last_download_updates_result(SYNCER_OK); EXPECT_EQ(SYNCER_OK, status.error().last_download_updates_result); |