| Index: chrome/browser/jumplist_win.cc
|
| diff --git a/chrome/browser/jumplist_win.cc b/chrome/browser/jumplist_win.cc
|
| index d66c0da0a33b8df140a27b6d6801273b43772802..7c0a6a02e6dc14d2d7ba1e097775ffb6643552d2 100644
|
| --- a/chrome/browser/jumplist_win.cc
|
| +++ b/chrome/browser/jumplist_win.cc
|
| @@ -44,6 +44,7 @@
|
| #include "third_party/skia/include/core/SkBitmap.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| #include "ui/gfx/codec/png_codec.h"
|
| +#include "ui/gfx/favicon_size.h"
|
| #include "ui/gfx/icon_util.h"
|
|
|
| using content::BrowserThread;
|
| @@ -701,15 +702,15 @@ bool JumpList::StartLoadingFavicon() {
|
| }
|
| FaviconService* favicon_service =
|
| FaviconServiceFactory::GetForProfile(profile_, Profile::EXPLICIT_ACCESS);
|
| - handle_ = favicon_service->GetFaviconForURL(
|
| - profile_, url, history::FAVICON, &favicon_consumer_,
|
| + handle_ = favicon_service->GetFaviconImageForURL(
|
| + profile_, url, history::FAVICON, gfx::kFaviconSize, &favicon_consumer_,
|
| base::Bind(&JumpList::OnFaviconDataAvailable, base::Unretained(this)));
|
| return true;
|
| }
|
|
|
| void JumpList::OnFaviconDataAvailable(
|
| FaviconService::Handle handle,
|
| - history::FaviconData favicon) {
|
| + const history::FaviconImageResult& image_result) {
|
| // If there is currently a favicon request in progress, it is now outdated,
|
| // as we have received another, so nullify the handle from the old request.
|
| handle_ = NULL;
|
| @@ -718,9 +719,9 @@ void JumpList::OnFaviconDataAvailable(
|
| base::AutoLock auto_lock(list_lock_);
|
| // Attach the received data to the ShellLinkItem object.
|
| // This data will be decoded by the RunUpdate method.
|
| - if (favicon.is_valid()) {
|
| + if (!image_result.image.IsEmpty()) {
|
| if (!icon_urls_.empty() && icon_urls_.front().second)
|
| - icon_urls_.front().second->SetIconData(favicon.image_data);
|
| + icon_urls_.front().second->SetIconData(image_result.image.AsBitmap());
|
| }
|
|
|
| if (!icon_urls_.empty())
|
| @@ -764,11 +765,11 @@ void JumpList::RunUpdate() {
|
| file_util::CreateDirectory(icon_dir_);
|
|
|
| // Create temporary icon files for shortcuts in the "Most Visited" category.
|
| - DecodeIconData(local_most_visited_pages);
|
| + CreateIconFiles(local_most_visited_pages);
|
|
|
| // Create temporary icon files for shortcuts in the "Recently Closed"
|
| // category.
|
| - DecodeIconData(local_recently_closed_pages);
|
| + CreateIconFiles(local_recently_closed_pages);
|
|
|
| // We finished collecting all resources needed for updating an appliation
|
| // JumpList. So, create a new JumpList and replace the current JumpList
|
| @@ -777,17 +778,11 @@ void JumpList::RunUpdate() {
|
| local_recently_closed_pages);
|
| }
|
|
|
| -void JumpList::DecodeIconData(const ShellLinkItemList& item_list) {
|
| +void JumpList::CreateIconFiles(const ShellLinkItemList& item_list) {
|
| for (ShellLinkItemList::const_iterator item = item_list.begin();
|
| item != item_list.end(); ++item) {
|
| - SkBitmap icon_bitmap;
|
| - if ((*item)->data().get() &&
|
| - gfx::PNGCodec::Decode((*item)->data()->front(),
|
| - (*item)->data()->size(),
|
| - &icon_bitmap)) {
|
| - FilePath icon_path;
|
| - if (CreateIconFile(icon_bitmap, icon_dir_, &icon_path))
|
| - (*item)->SetIcon(icon_path.value(), 0, true);
|
| - }
|
| + FilePath icon_path;
|
| + if (CreateIconFile((*item)->data(), icon_dir_, &icon_path))
|
| + (*item)->SetIcon(icon_path.value(), 0, true);
|
| }
|
| }
|
|
|