Chromium Code Reviews| Index: chrome/browser/history/history_service.cc |
| diff --git a/chrome/browser/history/history_service.cc b/chrome/browser/history/history_service.cc |
| index 3f32cce34e7ec0379d3ca39f43f8b2330224d55c..6e319e70d12eadee1c86cdcdd5c751e9e53f984b 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" |
| @@ -158,6 +159,12 @@ class HistoryService::BackendDelegate : public HistoryBackend::Delegate { |
| base::Passed(&backend))); |
| } |
| + virtual void NotifyAddVisit(const history::BriefVisitInfo& info) override { |
| + service_task_runner_->PostTask( |
| + FROM_HERE, |
| + base::Bind(&HistoryService::NotifyAddVisit, history_service_, info)); |
| + } |
| + |
| virtual void NotifyFaviconChanged(const std::set<GURL>& urls) override { |
| // Send the notification to the history service on the main thread. |
| service_task_runner_->PostTask( |
| @@ -188,14 +195,6 @@ class HistoryService::BackendDelegate : public HistoryBackend::Delegate { |
| base::Bind(&HistoryService::OnDBLoaded, history_service_)); |
| } |
| - virtual void NotifyVisitDBObserversOnAddVisit( |
| - const history::BriefVisitInfo& info) override { |
| - service_task_runner_->PostTask( |
| - FROM_HERE, |
| - base::Bind(&HistoryService::NotifyVisitDBObserversOnAddVisit, |
| - history_service_, info)); |
| - } |
| - |
| private: |
| const base::WeakPtr<HistoryService> history_service_; |
| const scoped_refptr<base::SequencedTaskRunner> service_task_runner_; |
| @@ -334,6 +333,14 @@ void HistoryService::URLsNoLongerBookmarked(const std::set<GURL>& urls) { |
| urls); |
| } |
| +void HistoryService::AddObserver(history::HistoryServiceObserver* observer) { |
|
blundell
2014/10/14 06:53:32
DCHECK called on valid thread in these?
sdefresne
2014/10/14 08:20:58
Done.
|
| + observers_.AddObserver(observer); |
| +} |
| + |
| +void HistoryService::RemoveObserver(history::HistoryServiceObserver* observer) { |
| + observers_.RemoveObserver(observer); |
| +} |
| + |
| void HistoryService::ScheduleDBTask(scoped_ptr<history::HistoryDBTask> task, |
| base::CancelableTaskTracker* tracker) { |
| DCHECK(thread_) << "History service being called after cleanup"; |
| @@ -1221,23 +1228,10 @@ bool HistoryService::GetRowForURL(const GURL& url, history::URLRow* url_row) { |
| return db && (db->GetRowForURL(url, url_row) != 0); |
| } |
| -void HistoryService::AddVisitDatabaseObserver( |
| - history::VisitDatabaseObserver* observer) { |
| - DCHECK(thread_checker_.CalledOnValidThread()); |
| - visit_database_observers_.AddObserver(observer); |
| -} |
| - |
| -void HistoryService::RemoveVisitDatabaseObserver( |
| - history::VisitDatabaseObserver* observer) { |
| - DCHECK(thread_checker_.CalledOnValidThread()); |
| - visit_database_observers_.RemoveObserver(observer); |
| -} |
| - |
| -void HistoryService::NotifyVisitDBObserversOnAddVisit( |
| - const history::BriefVisitInfo& info) { |
| +void HistoryService::NotifyAddVisit(const history::BriefVisitInfo& info) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| - FOR_EACH_OBSERVER(history::VisitDatabaseObserver, visit_database_observers_, |
| - OnAddVisit(info)); |
| + FOR_EACH_OBSERVER( |
| + history::HistoryServiceObserver, observers_, OnAddVisit(this, info)); |
| } |
| scoped_ptr<base::CallbackList<void(const std::set<GURL>&)>::Subscription> |