summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/api/tabs/tabs_event_router.h
diff options
context:
space:
mode:
authorsdefresne <sdefresne@chromium.org>2015-04-08 02:21:56 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-08 09:22:58 +0000
commitb0befeec4f82ae3bc79c53d69ce91b52d466f044 (patch)
treee27dfba3682a7361bddfe1ea025ca79247be4adc /chrome/browser/extensions/api/tabs/tabs_event_router.h
parent90ada142d5ce68a21ee0dca95b6a8ca872a35fe4 (diff)
downloadchromium_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.h12
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);
};