summaryrefslogtreecommitdiffstats
path: root/sync/engine/syncer.cc
diff options
context:
space:
mode:
authorgangwu <gangwu@chromium.org>2015-02-11 12:44:08 -0800
committerCommit bot <commit-bot@chromium.org>2015-02-11 20:44:45 +0000
commitf951166bde5650de692d30c542e320a1e6c0e75a (patch)
treee6f66df7bb1efb9976d5da8e2d8ceeac94e8115a /sync/engine/syncer.cc
parentfddf37153bd228737419f53791489987938778a0 (diff)
downloadchromium_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.cc18
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) {