| 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);
|
| };
|
|
|
|
|