diff options
author | gangwu <gangwu@chromium.org> | 2015-02-11 12:44:08 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-11 20:44:45 +0000 |
commit | f951166bde5650de692d30c542e320a1e6c0e75a (patch) | |
tree | e6f66df7bb1efb9976d5da8e2d8ceeac94e8115a /sync/engine/syncer.cc | |
parent | fddf37153bd228737419f53791489987938778a0 (diff) | |
download | chromium_src-f951166bde5650de692d30c542e320a1e6c0e75a.zip chromium_src-f951166bde5650de692d30c542e320a1e6c0e75a.tar.gz chromium_src-f951166bde5650de692d30c542e320a1e6c0e75a.tar.bz2 |
Sync commit errors should temporarily re-enable
trigger pre-commit getupdates
Add a boolean variable in class DataTypeTracker, so every
time when a data type got conflict response from server
during commit, will set that boolean variable to true, then
next time sync, GetUpdate will check the boolean to see if
need to GetUpdate to resolve conflict locally.
BUG=324893
Committed: https://crrev.com/21f43c5af27e24c34565df26bb51fcc704c97597
Cr-Commit-Position: refs/heads/master@{#315339}
Review URL: https://codereview.chromium.org/905853002
Cr-Commit-Position: refs/heads/master@{#315828}
Diffstat (limited to 'sync/engine/syncer.cc')
-rw-r--r-- | sync/engine/syncer.cc | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/sync/engine/syncer.cc b/sync/engine/syncer.cc index bae809e..ef759b8 100644 --- a/sync/engine/syncer.cc +++ b/sync/engine/syncer.cc @@ -55,13 +55,13 @@ bool Syncer::ExitRequested() { } bool Syncer::NormalSyncShare(ModelTypeSet request_types, - const NudgeTracker& nudge_tracker, + NudgeTracker* nudge_tracker, SyncSession* session) { HandleCycleBegin(session); - if (nudge_tracker.IsGetUpdatesRequired() || + if (nudge_tracker->IsGetUpdatesRequired() || session->context()->ShouldFetchUpdatesBeforeCommit()) { VLOG(1) << "Downloading types " << ModelTypeSetToString(request_types); - NormalGetUpdatesDelegate normal_delegate(nudge_tracker); + NormalGetUpdatesDelegate normal_delegate(*nudge_tracker); GetUpdatesProcessor get_updates_processor( session->context()->model_type_registry()->update_handler_map(), normal_delegate); @@ -70,18 +70,18 @@ bool Syncer::NormalSyncShare(ModelTypeSet request_types, session, &get_updates_processor, kCreateMobileBookmarksFolder)) { - return HandleCycleEnd(session, nudge_tracker.GetLegacySource()); + return HandleCycleEnd(session, nudge_tracker->GetLegacySource()); } } VLOG(1) << "Committing from types " << ModelTypeSetToString(request_types); CommitProcessor commit_processor( session->context()->model_type_registry()->commit_contributor_map()); - SyncerError commit_result = - BuildAndPostCommits(request_types, session, &commit_processor); + SyncerError commit_result = BuildAndPostCommits(request_types, nudge_tracker, + session, &commit_processor); session->mutable_status_controller()->set_commit_result(commit_result); - return HandleCycleEnd(session, nudge_tracker.GetLegacySource()); + return HandleCycleEnd(session, nudge_tracker->GetLegacySource()); } bool Syncer::ConfigureSyncShare( @@ -160,6 +160,7 @@ bool Syncer::DownloadAndApplyUpdates( } SyncerError Syncer::BuildAndPostCommits(ModelTypeSet requested_types, + sessions::NudgeTracker* nudge_tracker, sessions::SyncSession* session, CommitProcessor* commit_processor) { // The ExitRequested() check is unnecessary, since we should start getting @@ -180,8 +181,7 @@ SyncerError Syncer::BuildAndPostCommits(ModelTypeSet requested_types, } SyncerError error = commit->PostAndProcessResponse( - session, - session->mutable_status_controller(), + nudge_tracker, session, session->mutable_status_controller(), session->context()->extensions_activity()); commit->CleanUp(); if (error != SYNCER_OK) { |