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

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

Issue 631253002: Refactor sending NOTIFICATION_HISTORY_URL_VISITED (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
Index: chrome/browser/history/history_service.cc
diff --git a/chrome/browser/history/history_service.cc b/chrome/browser/history/history_service.cc
index 81e10d3157d7e5616189298743baff6e27b73446..a4f4fd670f77aee13a2597905a9b183717a1b1e6 100644
--- a/chrome/browser/history/history_service.cc
+++ b/chrome/browser/history/history_service.cc
@@ -50,6 +50,7 @@
#include "chrome/common/url_constants.h"
#include "components/dom_distiller/core/url_constants.h"
#include "components/history/core/browser/history_client.h"
+#include "components/history/core/browser/history_service_observer.h"
#include "components/history/core/browser/history_types.h"
#include "components/history/core/browser/in_memory_database.h"
#include "components/history/core/browser/keyword_search_term.h"
@@ -166,6 +167,19 @@ class HistoryService::BackendDelegate : public HistoryBackend::Delegate {
&HistoryService::NotifyFaviconChanged, history_service_, urls));
}
+ virtual void NotifyURLVisited(ui::PageTransition transition,
+ const history::URLRow& row,
+ const history::RedirectList& redirects,
+ const base::Time& visit_time) OVERRIDE {
+ service_task_runner_->PostTask(FROM_HERE,
+ base::Bind(&HistoryService::NotifyURLVisited,
+ history_service_,
+ transition,
+ row,
+ redirects,
+ visit_time));
+ }
+
virtual void BroadcastNotifications(
int type,
scoped_ptr<history::HistoryDetails> details) OVERRIDE {
@@ -334,6 +348,16 @@ void HistoryService::URLsNoLongerBookmarked(const std::set<GURL>& urls) {
urls);
}
+void HistoryService::AddHistoryServiceObserver(
+ history::HistoryServiceObserver* observer) {
+ history_service_observers_.AddObserver(observer);
+}
+
+void HistoryService::RemoveHistoryServiceObserver(
+ history::HistoryServiceObserver* observer) {
+ history_service_observers_.RemoveObserver(observer);
+}
+
void HistoryService::ScheduleDBTask(scoped_ptr<history::HistoryDBTask> task,
base::CancelableTaskTracker* tracker) {
DCHECK(thread_) << "History service being called after cleanup";
@@ -973,7 +997,7 @@ bool HistoryService::Init(const base::FilePath& history_dir, bool no_db) {
std::string languages =
profile_->GetPrefs()->GetString(prefs::kAcceptLanguages);
in_memory_url_index_.reset(new history::InMemoryURLIndex(
- profile_, history_dir_, languages, history_client_));
+ profile_, this, history_dir_, languages, history_client_));
in_memory_url_index_->Init();
}
@@ -1096,7 +1120,7 @@ void HistoryService::SetInMemoryBackend(
in_memory_backend_.reset(mem_backend.release());
// The database requires additional initialization once we own it.
- in_memory_backend_->AttachToHistoryService(profile_);
+ in_memory_backend_->AttachToHistoryService(profile_, this);
}
void HistoryService::NotifyProfileError(sql::InitStatus init_status) {
@@ -1221,6 +1245,16 @@ bool HistoryService::GetRowForURL(const GURL& url, history::URLRow* url_row) {
return db && (db->GetRowForURL(url, url_row) != 0);
}
+void HistoryService::NotifyURLVisited(ui::PageTransition transition,
+ const history::URLRow& row,
+ const history::RedirectList& redirects,
+ const base::Time& visit_time) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ FOR_EACH_OBSERVER(history::HistoryServiceObserver,
+ history_service_observers_,
+ OnURLVisited(transition, row, redirects, visit_time));
+}
+
void HistoryService::AddVisitDatabaseObserver(
history::VisitDatabaseObserver* observer) {
DCHECK(thread_checker_.CalledOnValidThread());

Powered by Google App Engine
This is Rietveld 408576698