Index: chrome/browser/sync/glue/typed_url_change_processor.cc |
diff --git a/chrome/browser/sync/glue/typed_url_change_processor.cc b/chrome/browser/sync/glue/typed_url_change_processor.cc |
index 83bdb90d483f9c7f3778ba21275d0e5b56ad45c4..ca865b653fdc3087d434cffa0fbe17f551dbf6cc 100644 |
--- a/chrome/browser/sync/glue/typed_url_change_processor.cc |
+++ b/chrome/browser/sync/glue/typed_url_change_processor.cc |
@@ -307,7 +307,9 @@ void TypedUrlChangeProcessor::CommitChangesFromSyncModel() { |
if (!running()) |
return; |
- StopObserving(); |
+ // Make sure we stop listening for changes while we're modifying the backend, |
+ // so we don't try to re-apply these changes to the sync DB. |
+ ScopedStopObserving<TypedUrlChangeProcessor> stop_observing(this); |
if (!pending_deleted_urls_.empty()) |
history_backend_->DeleteURLs(pending_deleted_urls_); |
@@ -327,8 +329,6 @@ void TypedUrlChangeProcessor::CommitChangesFromSyncModel() { |
pending_new_visits_.clear(); |
pending_deleted_visits_.clear(); |
pending_deleted_urls_.clear(); |
- |
- StartObserving(); |
} |
void TypedUrlChangeProcessor::StartImpl(Profile* profile) { |