diff options
author | sdefresne <sdefresne@chromium.org> | 2015-04-08 02:21:56 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-08 09:22:58 +0000 |
commit | b0befeec4f82ae3bc79c53d69ce91b52d466f044 (patch) | |
tree | e27dfba3682a7361bddfe1ea025ca79247be4adc /chrome/browser/extensions/api/tabs/tabs_event_router.h | |
parent | 90ada142d5ce68a21ee0dca95b6a8ca872a35fe4 (diff) | |
download | chromium_src-b0befeec4f82ae3bc79c53d69ce91b52d466f044.zip chromium_src-b0befeec4f82ae3bc79c53d69ce91b52d466f044.tar.gz chromium_src-b0befeec4f82ae3bc79c53d69ce91b52d466f044.tar.bz2 |
Remove NOTIFICATION_FAVICON_UPDATED
Change notification NOTIFICATION_FAVICON_UPDATED into an event sent to
FaviconDriverObserver and change client code to be observers instead.
Pass the FaviconDriver to OnFaviconUpdated() event so that listeners can
find the content::WebContents corresponding to the event (as some of the
client code did listen to multiple content::WebContents).
BUG=362072
Review URL: https://codereview.chromium.org/1059743003
Cr-Commit-Position: refs/heads/master@{#324201}
Diffstat (limited to 'chrome/browser/extensions/api/tabs/tabs_event_router.h')
-rw-r--r-- | chrome/browser/extensions/api/tabs/tabs_event_router.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/chrome/browser/extensions/api/tabs/tabs_event_router.h b/chrome/browser/extensions/api/tabs/tabs_event_router.h index 73ee2c9..501c5fd 100644 --- a/chrome/browser/extensions/api/tabs/tabs_event_router.h +++ b/chrome/browser/extensions/api/tabs/tabs_event_router.h @@ -10,13 +10,17 @@ #include "base/basictypes.h" #include "base/compiler_specific.h" +#include "base/scoped_observer.h" #include "chrome/browser/extensions/api/tabs/tabs_api.h" #include "chrome/browser/ui/browser_list_observer.h" #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" +#include "components/favicon/core/favicon_driver_observer.h" #include "components/ui/zoom/zoom_observer.h" #include "content/public/browser/notification_registrar.h" #include "extensions/browser/event_router.h" +class FaviconTabHelper; + namespace content { class WebContents; } @@ -30,6 +34,7 @@ namespace extensions { class TabsEventRouter : public TabStripModelObserver, public chrome::BrowserListObserver, public content::NotificationObserver, + public favicon::FaviconDriverObserver, public ui_zoom::ZoomObserver { public: explicit TabsEventRouter(Profile* profile); @@ -76,6 +81,11 @@ class TabsEventRouter : public TabStripModelObserver, void OnZoomChanged( const ui_zoom::ZoomController::ZoomChangedEventData& data) override; + // favicon::FaviconDriverObserver. + void OnFaviconAvailable(const gfx::Image& image) override; + void OnFaviconUpdated(favicon::FaviconDriver* favicon_driver, + bool icon_url_changed) override; + private: // "Synthetic" event. Called from TabInsertedAt if new tab is detected. void TabCreatedAt(content::WebContents* contents, int index, bool active); @@ -169,6 +179,8 @@ class TabsEventRouter : public TabStripModelObserver, // The main profile that owns this event router. Profile* profile_; + ScopedObserver<FaviconTabHelper, TabsEventRouter> favicon_scoped_observer_; + DISALLOW_COPY_AND_ASSIGN(TabsEventRouter); }; |