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

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

Issue 631253002: Refactor sending NOTIFICATION_HISTORY_URL_VISITED (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix tests on Android 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/chrome_history_client_factory.cc ('k') | chrome/browser/history/history_backend.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/history/history_backend.h
diff --git a/chrome/browser/history/history_backend.h b/chrome/browser/history/history_backend.h
index 819f9df23ac95562c13bf15b6ad70defa82b15b9..fbf0ff32bac9daf64b156f4a4162785a56b3533e 100644
--- a/chrome/browser/history/history_backend.h
+++ b/chrome/browser/history/history_backend.h
@@ -15,6 +15,7 @@
#include "base/gtest_prod_util.h"
#include "base/memory/memory_pressure_listener.h"
#include "base/memory/scoped_ptr.h"
+#include "base/observer_list.h"
#include "base/single_thread_task_runner.h"
#include "base/task/cancelable_task_tracker.h"
#include "chrome/browser/history/expire_history_backend.h"
@@ -49,6 +50,7 @@ class AndroidProviderBackend;
class CommitLaterTask;
struct DownloadRow;
+class HistoryBackendObserver;
class HistoryClient;
class HistoryDBTask;
class InMemoryHistoryBackend;
@@ -122,12 +124,19 @@ class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>,
// Notify HistoryService that VisitDatabase was changed. The event will be
// forwarded to the history::HistoryServiceObservers in the UI thread.
- virtual void NotifyAddVisit(const history::BriefVisitInfo& info) = 0;
+ virtual void NotifyAddVisit(const BriefVisitInfo& info) = 0;
// Notify HistoryService that some URLs favicon changed that will forward
// the events to the FaviconChangedObservers in the correct thread.
virtual void NotifyFaviconChanged(const std::set<GURL>& urls) = 0;
+ // Notify HistoryService that the user is visiting an URL. The event will
+ // be forwarded to the HistoryServiceObservers in the correct thread.
+ virtual void NotifyURLVisited(ui::PageTransition transition,
+ const URLRow& row,
+ const RedirectList& redirects,
+ base::Time visit_time) = 0;
+
// Broadcasts the specified notification to the notification service.
// This is implemented here because notifications must only be sent from
// the main thread. This is the only method that doesn't identify the
@@ -303,6 +312,11 @@ class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>,
void DeleteMatchingURLsForKeyword(KeywordID keyword_id,
const base::string16& term);
+ // Observers -----------------------------------------------------------------
+
+ void AddObserver(HistoryBackendObserver* observer);
+ void RemoveObserver(HistoryBackendObserver* observer);
+
#if defined(OS_ANDROID)
// Android Provider ---------------------------------------------------------
@@ -505,6 +519,13 @@ class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>,
protected:
virtual ~HistoryBackend();
+ // Notify HistoryBackendObserver that |transition| to |row| occurred at
+ // |visit_time| following |redirects| (empty if there is no redirects).
+ void NotifyAddVisit(ui::PageTransition transition,
+ const URLRow& row,
+ const RedirectList& redirects,
+ base::Time visit_time);
+
private:
friend class base::RefCountedThreadSafe<HistoryBackend>;
friend class CommitLaterTask; // The commit task needs to call Commit().
@@ -889,11 +910,17 @@ class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>,
// Used to manage syncing of the typed urls datatype. This will be NULL
// before Init is called.
+ // TODO(sdefresne): turn TypedUrlSyncableService into a HistoryBackendObserver
+ // and remove this field since it is only used for forwarding notifications
+ // about URL visited, modified, deleted.
scoped_ptr<TypedUrlSyncableService> typed_url_syncable_service_;
// Listens for the system being under memory pressure.
scoped_ptr<base::MemoryPressureListener> memory_pressure_listener_;
+ // List of observers
+ ObserverList<HistoryBackendObserver> observers_;
+
DISALLOW_COPY_AND_ASSIGN(HistoryBackend);
};
« no previous file with comments | « chrome/browser/history/chrome_history_client_factory.cc ('k') | chrome/browser/history/history_backend.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698