Chromium Code Reviews| Index: chrome/browser/ui/ash/launcher/launcher_favicon_loader.cc |
| diff --git a/chrome/browser/ui/ash/launcher/launcher_favicon_loader.cc b/chrome/browser/ui/ash/launcher/launcher_favicon_loader.cc |
| index 468d7daba9dd727a85d8d8e3aa9741a14bd5dd9e..9054a91c5024927a329b53e58b1f56f54d66ee22 100644 |
| --- a/chrome/browser/ui/ash/launcher/launcher_favicon_loader.cc |
| +++ b/chrome/browser/ui/ash/launcher/launcher_favicon_loader.cc |
| @@ -5,17 +5,16 @@ |
| #include "chrome/browser/ui/ash/launcher/launcher_favicon_loader.h" |
| #include "base/logging.h" |
| -#include "chrome/browser/favicon/favicon_download_helper.h" |
| -#include "chrome/browser/favicon/favicon_download_helper_delegate.h" |
| #include "chrome/browser/ui/ash/launcher/browser_launcher_item_controller.h" |
| -#include "chrome/common/favicon_url.h" |
| -#include "chrome/common/icon_messages.h" |
| #include "content/public/browser/render_view_host.h" |
| #include "content/public/browser/web_contents.h" |
| -#include "content/public/browser/web_contents_delegate.h" |
| +#include "content/public/browser/web_contents_observer.h" |
| +#include "content/public/common/favicon_url.h" |
|
jam
2012/12/03 21:59:39
nit: this is in the header, so don't add it here a
Cait (Slow)
2012/12/04 20:57:35
Done.
|
| #include "googleurl/src/gurl.h" |
| #include "third_party/skia/include/core/SkBitmap.h" |
| +using content::FaviconURL; |
| + |
| namespace internal { |
| const int kMaxBitmapSize = 256; |
| @@ -26,12 +25,13 @@ const int kMaxBitmapSize = 256; |
| // These icon bitmaps are not resized and are not cached beyond the lifetime |
| // of the class. Bitmaps larger than kMaxBitmapSize are ignored. |
| -class FaviconBitmapHandler : public FaviconDownloadHelperDelegate { |
| +class FaviconBitmapHandler : public content::WebContentsObserver { |
| public: |
| FaviconBitmapHandler(content::WebContents* web_contents, |
| LauncherFaviconLoader::Delegate* delegate) |
| - : delegate_(delegate) { |
| - download_helper_.reset(new FaviconDownloadHelper(web_contents, this)); |
| + : content::WebContentsObserver(web_contents), |
| + delegate_(delegate), |
| + web_contents_(web_contents) { |
| } |
| ~FaviconBitmapHandler() {} |
| @@ -40,25 +40,24 @@ class FaviconBitmapHandler : public FaviconDownloadHelperDelegate { |
| bool HasPendingDownloads() const; |
| - // FaviconDownloadHelperDelegate methods |
| - virtual void OnUpdateFaviconURL( |
| + // content::WebContentObserver implementation. |
| + virtual void DidUpdateFaviconURL( |
| int32 page_id, |
| const std::vector<FaviconURL>& candidates) OVERRIDE; |
| - virtual void OnDidDownloadFavicon( |
| - int id, |
| - const GURL& image_url, |
| - bool errored, |
| - int requested_size, |
| - const std::vector<SkBitmap>& bitmaps) OVERRIDE; |
| - |
| private: |
| - void DownloadFavicon(const GURL& image_url); |
| + void DidDownloadFavicon( |
| + int id, |
| + const GURL& image_url, |
| + bool errored, |
| + int requested_size, |
| + const std::vector<SkBitmap>& bitmaps); |
| + |
| void AddFavicon(const GURL& image_url, const SkBitmap& new_bitmap); |
| LauncherFaviconLoader::Delegate* delegate_; |
| - scoped_ptr<FaviconDownloadHelper> download_helper_; |
| + content::WebContents* web_contents_; |
| typedef std::set<GURL> UrlSet; |
| // Map of pending download urls. |
| @@ -72,7 +71,7 @@ class FaviconBitmapHandler : public FaviconDownloadHelperDelegate { |
| DISALLOW_COPY_AND_ASSIGN(FaviconBitmapHandler); |
| }; |
| -void FaviconBitmapHandler::OnUpdateFaviconURL( |
| +void FaviconBitmapHandler::DidUpdateFaviconURL( |
| int32 page_id, |
| const std::vector<FaviconURL>& candidates) { |
| // This function receives a complete list of faviocn urls for the page. |
| @@ -110,11 +109,17 @@ void FaviconBitmapHandler::OnUpdateFaviconURL( |
| if (pending_requests_.find(*iter) != pending_requests_.end()) |
| continue; // Skip already pending downloads. |
| pending_requests_.insert(*iter); |
| - download_helper_->DownloadFavicon(*iter, 0); |
| + web_contents_->DownloadFavicon(*iter, 0, |
| + base::Bind(&FaviconBitmapHandler::DidDownloadFavicon, |
| + base::Unretained(this))); |
|
jam
2012/12/03 21:59:39
ditto re lifetime
|
| } |
| } |
| -void FaviconBitmapHandler::OnDidDownloadFavicon( |
| +bool FaviconBitmapHandler::HasPendingDownloads() const { |
| + return !pending_requests_.empty(); |
| +} |
| + |
| +void FaviconBitmapHandler::DidDownloadFavicon( |
| int id, |
| const GURL& image_url, |
| bool errored, |
| @@ -132,10 +137,6 @@ void FaviconBitmapHandler::OnDidDownloadFavicon( |
| AddFavicon(image_url, bitmaps[0]); |
| } |
| -bool FaviconBitmapHandler::HasPendingDownloads() const { |
| - return !pending_requests_.empty(); |
| -} |
| - |
| void FaviconBitmapHandler::AddFavicon(const GURL& image_url, |
| const SkBitmap& new_bitmap) { |
| processed_requests_.insert(image_url); |