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