Index: chrome/browser/sync/engine/resolve_conflicts_command.cc |
diff --git a/chrome/browser/sync/engine/resolve_conflicts_command.cc b/chrome/browser/sync/engine/resolve_conflicts_command.cc |
index a8fcefbc98fa22fe0ba0c7181fc1d9be3ac67b05..7329da90dc481fbeb093111513c461f3df86e957 100644 |
--- a/chrome/browser/sync/engine/resolve_conflicts_command.cc |
+++ b/chrome/browser/sync/engine/resolve_conflicts_command.cc |
@@ -5,6 +5,7 @@ |
#include "chrome/browser/sync/engine/resolve_conflicts_command.h" |
#include "chrome/browser/sync/engine/conflict_resolver.h" |
+#include "chrome/browser/sync/sessions/session_state.h" |
#include "chrome/browser/sync/sessions/sync_session.h" |
#include "chrome/browser/sync/syncable/directory_manager.h" |
@@ -24,8 +25,12 @@ void ResolveConflictsCommand::ModelChangingExecuteImpl( |
session->context()->account_name()); |
if (!dir.good()) |
return; |
- sessions::StatusController* status = session->status_controller(); |
- status->update_conflicts_resolved(resolver->ResolveConflicts(dir, status)); |
+ sessions::StatusController* status = session->mutable_status_controller(); |
+ const sessions::ConflictProgress* progress = status->conflict_progress(); |
+ if (!progress) |
+ return; // Nothing to do. |
+ status->update_conflicts_resolved( |
+ resolver->ResolveConflicts(dir, *progress, status)); |
} |
} // namespace browser_sync |