Chromium Code Reviews| Index: chrome/browser/extensions/api/history/history_api.cc |
| diff --git a/chrome/browser/extensions/api/history/history_api.cc b/chrome/browser/extensions/api/history/history_api.cc |
| index 356373c9ceceb3ac463e286732150edad770a490..548d1a0970370b311842d6fa94d0a48ae000cdcb 100644 |
| --- a/chrome/browser/extensions/api/history/history_api.cc |
| +++ b/chrome/browser/extensions/api/history/history_api.cc |
| @@ -132,27 +132,26 @@ scoped_ptr<VisitItem> GetVisitItem(const history::VisitRow& row) { |
| } // namespace |
| -HistoryEventRouter::HistoryEventRouter(Profile* profile) { |
| +HistoryEventRouter::HistoryEventRouter(Profile* profile, |
| + HistoryService* history_service) |
| + : profile_(profile), history_service_(history_service) { |
| + DCHECK(profile); |
| + DCHECK(history_service); |
| const content::Source<Profile> source = content::Source<Profile>(profile); |
|
not at google - send to devlin
2014/10/14 16:06:41
Remove this alias now?
sdefresne
2014/10/17 14:32:38
Done.
|
| registrar_.Add(this, |
| - chrome::NOTIFICATION_HISTORY_URL_VISITED, |
| - source); |
| - registrar_.Add(this, |
| chrome::NOTIFICATION_HISTORY_URLS_DELETED, |
| source); |
| + history_service_->AddObserver(this); |
| } |
| -HistoryEventRouter::~HistoryEventRouter() {} |
| +HistoryEventRouter::~HistoryEventRouter() { |
| + history_service_->RemoveObserver(this); |
|
not at google - send to devlin
2014/10/14 16:06:41
Incidentally - have a look at ScopedObserver.
htt
sdefresne
2014/10/17 14:32:38
Done.
|
| +} |
| void HistoryEventRouter::Observe(int type, |
| const content::NotificationSource& source, |
| const content::NotificationDetails& details) { |
| switch (type) { |
| - case chrome::NOTIFICATION_HISTORY_URL_VISITED: |
| - HistoryUrlVisited( |
| - content::Source<Profile>(source).ptr(), |
| - content::Details<const history::URLVisitedDetails>(details).ptr()); |
| - break; |
| case chrome::NOTIFICATION_HISTORY_URLS_DELETED: |
|
not at google - send to devlin
2014/10/14 16:06:41
Now that there's only 1 case, simpler to convert i
sdefresne
2014/10/17 14:32:38
Done.
|
| HistoryUrlsRemoved( |
| content::Source<Profile>(source).ptr(), |
| @@ -163,13 +162,15 @@ void HistoryEventRouter::Observe(int type, |
| } |
| } |
| -void HistoryEventRouter::HistoryUrlVisited( |
| - Profile* profile, |
| - const history::URLVisitedDetails* details) { |
| - scoped_ptr<HistoryItem> history_item = GetHistoryItem(details->row); |
| +void HistoryEventRouter::OnURLVisited(HistoryService* history_service, |
| + ui::PageTransition transition, |
| + const history::URLRow& row, |
| + const history::RedirectList& redirects, |
| + base::Time visit_time) { |
| + DCHECK_EQ(history_service_, history_service); |
| + scoped_ptr<HistoryItem> history_item = GetHistoryItem(row); |
| scoped_ptr<base::ListValue> args = OnVisited::Create(*history_item); |
| - |
| - DispatchEvent(profile, api::history::OnVisited::kEventName, args.Pass()); |
| + DispatchEvent(profile_, api::history::OnVisited::kEventName, args.Pass()); |
| } |
| void HistoryEventRouter::HistoryUrlsRemoved( |
| @@ -235,8 +236,10 @@ void HistoryAPI::OnListenerAdded(const EventListenerInfo& details) { |
| tracked_objects::ScopedProfile tracking_profile( |
| FROM_HERE_WITH_EXPLICIT_FUNCTION("HistoryAPI::OnListenerAdded")); |
| - history_event_router_.reset( |
| - new HistoryEventRouter(Profile::FromBrowserContext(browser_context_))); |
| + Profile* profile = Profile::FromBrowserContext(browser_context_); |
| + history_event_router_.reset(new HistoryEventRouter( |
| + profile, |
| + HistoryServiceFactory::GetForProfile(profile, Profile::EXPLICIT_ACCESS))); |
| EventRouter::Get(browser_context_)->UnregisterObserver(this); |
| } |