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..a7c9864d056cc63a69fc9e48093bc386c769b35e 100644 |
--- a/chrome/browser/favicon/favicon_handler.h |
+++ b/chrome/browser/favicon/favicon_handler.h |
@@ -17,22 +17,19 @@ |
#include "chrome/common/favicon_url.h" |
#include "chrome/common/ref_counted_util.h" |
#include "googleurl/src/gurl.h" |
+#include "third_party/skia/include/core/SkBitmap.h" |
#include "ui/gfx/favicon_size.h" |
+#include "ui/gfx/image/image.h" |
class FaviconHandlerDelegate; |
class Profile; |
class RefCountedMemory; |
-class SkBitmap; |
class TabContents; |
namespace content { |
class NavigationEntry; |
} |
-namespace gfx { |
-class Image; |
-} |
- |
// FaviconHandler works with FaviconTabHelper to fetch the specific type of |
// favicon. |
// |
@@ -172,6 +169,23 @@ class FaviconHandler { |
history::IconType icon_type; |
}; |
+ struct FaviconCandidate { |
+ FaviconCandidate(); |
+ ~FaviconCandidate(); |
+ |
+ FaviconCandidate(const GURL& url, |
+ const GURL& image_url, |
+ const gfx::Image& image, |
+ const SkBitmap& bitmap, |
+ history::IconType icon_type); |
+ |
+ GURL url; |
+ GURL image_url; |
+ gfx::Image image; |
+ SkBitmap bitmap; |
+ history::IconType icon_type; |
+ }; |
+ |
// See description above class for details. |
void OnFaviconDataForInitialURL(FaviconService::Handle handle, |
history::FaviconData favicon); |
@@ -195,11 +209,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. |
+ // Updates |favicon_candidate_| and returns true if it is an exact match. |
+ bool UpdateFaviconCandidate(const GURL& url, |
+ const GURL& image_url, |
+ const gfx::Image& image, |
+ history::IconType icon_type); |
+ |
+ // Sets the image data for the favicon. |
void SetFavicon(const GURL& url, |
const GURL& icon_url, |
const gfx::Image& image, |
+ const SkBitmap& bitmap, |
history::IconType icon_type); |
// Converts the FAVICON's image data to an SkBitmap and sets it on the |
@@ -211,8 +231,8 @@ class FaviconHandler { |
void UpdateFavicon(content::NavigationEntry* entry, const gfx::Image* image); |
// If the image is not already at its preferred size, scales the image such |
- // that either the width and/or height is 16 pixels wide. Does nothing if the |
- // image is empty. |
+ // that either the width and/or height == gfx::kFaviconSize. Does nothing if |
+ // the image is empty. |
gfx::Image ResizeFaviconIfNeeded(const gfx::Image& image); |
void FetchFaviconInternal(); |
@@ -267,6 +287,9 @@ class FaviconHandler { |
// This handler's delegate. |
FaviconHandlerDelegate* delegate_; // weak |
+ // Current favicon candidate. |
+ FaviconCandidate favicon_candidate_; |
+ |
DISALLOW_COPY_AND_ASSIGN(FaviconHandler); |
}; |