Index: chrome/browser/favicon/favicon_tab_helper.h |
diff --git a/chrome/browser/favicon/favicon_tab_helper.h b/chrome/browser/favicon/favicon_tab_helper.h |
index 4a4aa1babcfebc3ea397708c18042f7aee172866..017bbb91b472f8e696c0c2ab24300878c8dd40d0 100644 |
--- a/chrome/browser/favicon/favicon_tab_helper.h |
+++ b/chrome/browser/favicon/favicon_tab_helper.h |
@@ -9,6 +9,7 @@ |
#include "base/basictypes.h" |
#include "base/callback.h" |
+#include "base/observer_list.h" |
#include "components/favicon/core/browser/favicon_client.h" |
#include "components/favicon/core/favicon_driver.h" |
#include "content/public/browser/web_contents_observer.h" |
@@ -38,6 +39,13 @@ class FaviconTabHelper : public content::WebContentsObserver, |
public FaviconDriver, |
public content::WebContentsUserData<FaviconTabHelper> { |
public: |
+ class Observer { |
+ public: |
+ // Called when favicon |image| is retrieved from either web site or history |
+ // backend. |
+ virtual void OnFaviconAvailable(const gfx::Image& image) = 0; |
+ }; |
+ |
~FaviconTabHelper() override; |
// Initiates loading the favicon for the specified url. |
@@ -70,6 +78,9 @@ class FaviconTabHelper : public content::WebContentsObserver, |
// Saves the favicon for the current page. |
void SaveFavicon(); |
+ void AddObserver(Observer* observer); |
+ void RemoveObserver(Observer* observer); |
+ |
// FaviconDriver methods. |
int StartDownload(const GURL& url, int max_bitmap_size) override; |
void NotifyFaviconUpdated(bool icon_url_changed) override; |
@@ -81,6 +92,7 @@ class FaviconTabHelper : public content::WebContentsObserver, |
void SetActiveFaviconImage(gfx::Image image) override; |
void SetActiveFaviconURL(GURL url) override; |
void SetActiveFaviconValidity(bool validity) override; |
+ void OnFaviconAvailable(const gfx::Image& image) override; |
// Favicon download callback. |
void DidDownloadFavicon( |
@@ -117,6 +129,8 @@ class FaviconTabHelper : public content::WebContentsObserver, |
// browser_defaults::kEnableTouchIcon is false. |
scoped_ptr<FaviconHandler> touch_icon_handler_; |
+ ObserverList<Observer> observer_list_; |
+ |
DISALLOW_COPY_AND_ASSIGN(FaviconTabHelper); |
}; |