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 51539c91586026de8c63016611ea3c485e3b110a..6ce366f8b80f06fe8e2dc4e7b2ace4fd9f2910fa 100644 |
--- a/chrome/browser/sync/glue/typed_url_change_processor.cc |
+++ b/chrome/browser/sync/glue/typed_url_change_processor.cc |
@@ -67,19 +67,15 @@ void TypedUrlChangeProcessor::Observe( |
const content::NotificationSource& source, |
const content::NotificationDetails& details) { |
DCHECK(backend_loop_ == base::MessageLoop::current()); |
+ DCHECK_EQ(type, chrome::NOTIFICATION_HISTORY_URLS_DELETED); |
base::AutoLock al(disconnect_lock_); |
if (disconnected_) |
return; |
DVLOG(1) << "Observed typed_url change."; |
- if (type == chrome::NOTIFICATION_HISTORY_URLS_MODIFIED) { |
- HandleURLsModified( |
- content::Details<history::URLsModifiedDetails>(details).ptr()); |
- } else if (type == chrome::NOTIFICATION_HISTORY_URLS_DELETED) { |
- HandleURLsDeleted( |
- content::Details<history::URLsDeletedDetails>(details).ptr()); |
- } |
+ HandleURLsDeleted( |
+ content::Details<history::URLsDeletedDetails>(details).ptr()); |
UMA_HISTOGRAM_PERCENTAGE("Sync.TypedUrlChangeProcessorErrors", |
model_associator_->GetErrorPercentage()); |
} |
@@ -105,18 +101,26 @@ void TypedUrlChangeProcessor::OnURLVisited( |
model_associator_->GetErrorPercentage()); |
} |
-void TypedUrlChangeProcessor::HandleURLsModified( |
- history::URLsModifiedDetails* details) { |
+void TypedUrlChangeProcessor::OnURLsModified( |
+ history::HistoryBackend* history_backend, |
+ const history::URLRows& changed_urls) { |
+ DCHECK(backend_loop_ == base::MessageLoop::current()); |
+ |
+ base::AutoLock al(disconnect_lock_); |
+ if (disconnected_) |
+ return; |
+ DVLOG(1) << "Observed typed_url change."; |
syncer::WriteTransaction trans(FROM_HERE, share_handle()); |
- for (history::URLRows::iterator url = details->changed_urls.begin(); |
- url != details->changed_urls.end(); ++url) { |
- if (url->typed_count() > 0) { |
+ for (const auto& row : changed_urls) { |
+ if (row.typed_count() > 0) { |
// If there were any errors updating the sync node, just ignore them and |
// continue on to process the next URL. |
- CreateOrUpdateSyncNode(*url, &trans); |
+ CreateOrUpdateSyncNode(row, &trans); |
} |
} |
+ UMA_HISTOGRAM_PERCENTAGE("Sync.TypedUrlChangeProcessorErrors", |
+ model_associator_->GetErrorPercentage()); |
} |
bool TypedUrlChangeProcessor::CreateOrUpdateSyncNode( |
@@ -344,9 +348,6 @@ void TypedUrlChangeProcessor::StartObserving() { |
DCHECK(history_backend_); |
DCHECK(profile_); |
notification_registrar_.Add( |
- this, chrome::NOTIFICATION_HISTORY_URLS_MODIFIED, |
- content::Source<Profile>(profile_)); |
- notification_registrar_.Add( |
this, chrome::NOTIFICATION_HISTORY_URLS_DELETED, |
content::Source<Profile>(profile_)); |
history_backend_->AddObserver(this); |
@@ -357,9 +358,6 @@ void TypedUrlChangeProcessor::StopObserving() { |
DCHECK(history_backend_); |
DCHECK(profile_); |
notification_registrar_.Remove( |
- this, chrome::NOTIFICATION_HISTORY_URLS_MODIFIED, |
- content::Source<Profile>(profile_)); |
- notification_registrar_.Remove( |
this, chrome::NOTIFICATION_HISTORY_URLS_DELETED, |
content::Source<Profile>(profile_)); |
history_backend_->RemoveObserver(this); |