Chromium Code Reviews| Index: chrome/browser/favicon/favicon_handler.h |
| diff --git a/chrome/browser/favicon/favicon_handler.h b/chrome/browser/favicon/favicon_handler.h |
| index a59e944c42e6e66b7ba81b97b05851c1de1c8a01..4b48e5288d1f4ec897cac624a9ec148b7d6f5f8e 100644 |
| --- a/chrome/browser/favicon/favicon_handler.h |
| +++ b/chrome/browser/favicon/favicon_handler.h |
| @@ -18,6 +18,7 @@ |
| #include "chrome/common/ref_counted_util.h" |
| #include "googleurl/src/gurl.h" |
| #include "ui/gfx/favicon_size.h" |
| +#include "ui/gfx/image/image.h" |
| class FaviconHandlerDelegate; |
| class Profile; |
| @@ -29,10 +30,6 @@ namespace content { |
| class NavigationEntry; |
| } |
| -namespace gfx { |
| -class Image; |
| -} |
| - |
| // FaviconHandler works with FaviconTabHelper to fetch the specific type of |
| // favicon. |
| // |
| @@ -172,6 +169,15 @@ class FaviconHandler { |
| history::IconType icon_type; |
| }; |
| + struct FaviconCandidate { |
| + FaviconCandidate() {} |
|
sky
2012/03/13 23:46:06
Don't inline this, and add a destructor (that isn'
stevenjb
2012/03/14 21:35:26
Done.
|
| + GURL url; |
| + GURL image_url; |
| + gfx::Image image; |
| + history::IconType icon_type; |
| + }; |
| + typedef std::vector<FaviconCandidate> FaviconCandidates; |
| + |
| // See description above class for details. |
| void OnFaviconDataForInitialURL(FaviconService::Handle handle, |
| history::FaviconData favicon); |
| @@ -195,8 +201,17 @@ class FaviconHandler { |
| history::IconType icon_type, |
| const FaviconTabHelper::ImageDownloadCallback& callback); |
| - // Sets the image data for the favicon. This is invoked asynchronously after |
| - // we request the TabContents to download the favicon. |
| + // Adds a favicon candidate. This is invoked asynchronously after we request |
| + // the TabContents to download the favicon. |
| + void AddFaviconCandidate(const GURL& url, |
| + const GURL& icon_url, |
| + const gfx::Image& image, |
| + history::IconType icon_type); |
| + |
| + // Once all candidates are download, this picks one and calls SetFavicon(). |
| + void SetFaviconFromCandidates(); |
| + |
| + // Sets the image data for the favicon. |
| void SetFavicon(const GURL& url, |
| const GURL& icon_url, |
| const gfx::Image& image, |
| @@ -267,6 +282,9 @@ class FaviconHandler { |
| // This handler's delegate. |
| FaviconHandlerDelegate* delegate_; // weak |
| + // Vector of favicon candidates. |
| + FaviconCandidates favicon_candidates_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(FaviconHandler); |
| }; |