Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4489)

Unified Diff: chrome/browser/history/history_backend.cc

Issue 690733002: Cleanup HistoryBackend and ExpireHistoryBackend interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@android-cleanup
Patch Set: Address comments Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/history/history_backend.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/history/history_backend.cc
diff --git a/chrome/browser/history/history_backend.cc b/chrome/browser/history/history_backend.cc
index cfd46ca82e4f1e499f7bc06856a660da55e07e6d..bf83121f14515e3ee3d8c9990e38ae42b95faa26 100644
--- a/chrome/browser/history/history_backend.cc
+++ b/chrome/browser/history/history_backend.cc
@@ -804,20 +804,11 @@ std::pair<URLID, VisitID> HistoryBackend::AddPageVisit(
// Broadcast a notification of the visit.
if (visit_id) {
- if (typed_url_syncable_service_.get())
- typed_url_syncable_service_->OnUrlVisited(transition, &url_info);
-
RedirectList redirects;
// TODO(meelapshah) Disabled due to potential PageCycler regression.
// Re-enable this.
// QueryRedirectsTo(url, &redirects);
NotifyURLVisited(transition, url_info, redirects, time);
-
- // TODO(sdefresne): turn HistoryBackend::Delegate from HistoryService into
- // an HistoryBackendObserver and register it so that we can remove this
- // method.
- if (delegate_)
- delegate_->NotifyURLVisited(transition, url_info, redirects, time);
} else {
VLOG(0) << "Failed to build visit insert statement: "
<< "url_id = " << url_id;
@@ -826,22 +817,12 @@ std::pair<URLID, VisitID> HistoryBackend::AddPageVisit(
return std::make_pair(url_id, visit_id);
}
-void HistoryBackend::NotifyURLVisited(ui::PageTransition transition,
- const URLRow& row,
- const RedirectList& redirects,
- base::Time visit_time) {
- FOR_EACH_OBSERVER(
- HistoryBackendObserver,
- observers_,
- OnURLVisited(this, transition, row, redirects, visit_time));
-}
-
void HistoryBackend::AddPagesWithDetails(const URLRows& urls,
VisitSource visit_source) {
if (!db_)
return;
- scoped_ptr<URLsModifiedDetails> modified(new URLsModifiedDetails);
+ URLRows changed_urls;
for (URLRows::const_iterator i = urls.begin(); i != urls.end(); ++i) {
DCHECK(!i->last_visit().is_null());
@@ -859,8 +840,8 @@ void HistoryBackend::AddPagesWithDetails(const URLRows& urls,
return;
}
- modified->changed_urls.push_back(*i);
- modified->changed_urls.back().set_id(url_id); // i->id_ is likely 0.
+ changed_urls.push_back(*i);
+ changed_urls.back().set_id(url_id); // i->id_ is likely 0.
}
// Sync code manages the visits itself.
@@ -882,17 +863,12 @@ void HistoryBackend::AddPagesWithDetails(const URLRows& urls,
}
}
- if (typed_url_syncable_service_.get())
- typed_url_syncable_service_->OnUrlsModified(&modified->changed_urls);
-
// Broadcast a notification for typed URLs that have been modified. This
// will be picked up by the in-memory URL database on the main thread.
//
// TODO(brettw) bug 1140015: Add an "add page" notification so the history
// views can keep in sync.
- BroadcastNotifications(chrome::NOTIFICATION_HISTORY_URLS_MODIFIED,
- modified.Pass());
-
+ NotifyURLsModified(changed_urls);
ScheduleCommit();
}
@@ -924,24 +900,21 @@ void HistoryBackend::SetPageTitle(const GURL& url,
redirects = &dummy_list;
}
- scoped_ptr<URLsModifiedDetails> details(new URLsModifiedDetails);
+ URLRows changed_urls;
for (size_t i = 0; i < redirects->size(); i++) {
URLRow row;
URLID row_id = db_->GetRowForURL(redirects->at(i), &row);
if (row_id && row.title() != title) {
row.set_title(title);
db_->UpdateURLRow(row_id, row);
- details->changed_urls.push_back(row);
+ changed_urls.push_back(row);
}
}
// Broadcast notifications for any URLs that have changed. This will
// update the in-memory database and the InMemoryURLIndex.
- if (!details->changed_urls.empty()) {
- if (typed_url_syncable_service_.get())
- typed_url_syncable_service_->OnUrlsModified(&details->changed_urls);
- BroadcastNotifications(chrome::NOTIFICATION_HISTORY_URLS_MODIFIED,
- details.Pass());
+ if (!changed_urls.empty()) {
+ NotifyURLsModified(changed_urls);
ScheduleCommit();
}
}
@@ -1012,22 +985,19 @@ size_t HistoryBackend::UpdateURLs(const history::URLRows& urls) {
if (!db_)
return 0;
- scoped_ptr<URLsModifiedDetails> details(new URLsModifiedDetails);
+ URLRows changed_urls;
for (history::URLRows::const_iterator it = urls.begin(); it != urls.end();
++it) {
DCHECK(it->id());
if (db_->UpdateURLRow(it->id(), *it))
- details->changed_urls.push_back(*it);
+ changed_urls.push_back(*it);
}
// Broadcast notifications for any URLs that have actually been changed. This
// will update the in-memory database and the InMemoryURLIndex.
- size_t num_updated_records = details->changed_urls.size();
+ size_t num_updated_records = changed_urls.size();
if (num_updated_records) {
- if (typed_url_syncable_service_)
- typed_url_syncable_service_->OnUrlsModified(&details->changed_urls);
- BroadcastNotifications(chrome::NOTIFICATION_HISTORY_URLS_MODIFIED,
- details.Pass());
+ NotifyURLsModified(changed_urls);
ScheduleCommit();
}
return num_updated_records;
@@ -2542,16 +2512,54 @@ void HistoryBackend::BroadcastNotifications(
delegate_->BroadcastNotifications(type, details.Pass());
}
-void HistoryBackend::NotifySyncURLsModified(URLRows* rows) {
+void HistoryBackend::NotifyURLVisited(ui::PageTransition transition,
+ const URLRow& row,
+ const RedirectList& redirects,
+ base::Time visit_time) {
+ URLRow url_info(row);
if (typed_url_syncable_service_.get())
- typed_url_syncable_service_->OnUrlsModified(rows);
+ typed_url_syncable_service_->OnUrlVisited(transition, &url_info);
+
+ FOR_EACH_OBSERVER(
+ HistoryBackendObserver,
+ observers_,
+ OnURLVisited(this, transition, url_info, redirects, visit_time));
+
+ // TODO(sdefresne): turn HistoryBackend::Delegate from HistoryService into
+ // an HistoryBackendObserver and register it so that we can remove this
+ // method.
+ if (delegate_)
+ delegate_->NotifyURLVisited(transition, url_info, redirects, visit_time);
}
-void HistoryBackend::NotifySyncURLsDeleted(bool all_history,
- bool expired,
- URLRows* rows) {
+void HistoryBackend::NotifyURLsModified(const URLRows& rows) {
+ scoped_ptr<URLsModifiedDetails> details(new URLsModifiedDetails);
+ details->changed_urls = rows;
+
if (typed_url_syncable_service_.get())
- typed_url_syncable_service_->OnUrlsDeleted(all_history, expired, rows);
+ typed_url_syncable_service_->OnUrlsModified(&details->changed_urls);
+
+ BroadcastNotifications(chrome::NOTIFICATION_HISTORY_URLS_MODIFIED,
+ details.Pass());
+}
+
+void HistoryBackend::NotifyURLsDeleted(bool all_history,
+ bool expired,
+ const URLRows& rows,
+ const std::set<GURL>& favicon_urls) {
+ scoped_ptr<URLsDeletedDetails> details(new URLsDeletedDetails);
+ details->all_history = all_history;
+ details->expired = expired;
+ details->rows = rows;
+ details->favicon_urls = favicon_urls;
+
+ if (typed_url_syncable_service_.get()) {
+ typed_url_syncable_service_->OnUrlsDeleted(
+ all_history, expired, &details->rows);
+ }
+
+ BroadcastNotifications(chrome::NOTIFICATION_HISTORY_URLS_DELETED,
+ details.Pass());
}
// Deleting --------------------------------------------------------------------
@@ -2607,11 +2615,7 @@ void HistoryBackend::DeleteAllHistory() {
// Send out the notification that history is cleared. The in-memory database
// will pick this up and clear itself.
- scoped_ptr<URLsDeletedDetails> details(new URLsDeletedDetails);
- details->all_history = true;
- NotifySyncURLsDeleted(true, false, NULL);
- BroadcastNotifications(chrome::NOTIFICATION_HISTORY_URLS_DELETED,
- details.Pass());
+ NotifyURLsDeleted(true, false, URLRows(), std::set<GURL>());
}
bool HistoryBackend::ClearAllThumbnailHistory(const URLRows& kept_urls) {
« no previous file with comments | « chrome/browser/history/history_backend.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698