| Index: components/ntp_tiles/icon_cacher_impl.cc
|
| diff --git a/components/ntp_tiles/icon_cacher_impl.cc b/components/ntp_tiles/icon_cacher_impl.cc
|
| index cb957ea010e58bcd9e70444e6dc578aed426c45e..02c3b914fbf364706e302cc15796c8e920120062 100644
|
| --- a/components/ntp_tiles/icon_cacher_impl.cc
|
| +++ b/components/ntp_tiles/icon_cacher_impl.cc
|
| @@ -11,6 +11,7 @@
|
| #include "components/favicon_base/favicon_types.h"
|
| #include "components/favicon_base/favicon_util.h"
|
| #include "components/image_fetcher/image_fetcher.h"
|
| +#include "ui/base/resource/resource_bundle.h"
|
| #include "ui/gfx/image/image.h"
|
| #include "url/gurl.h"
|
|
|
| @@ -59,6 +60,11 @@ void IconCacherImpl::OnGetFaviconImageForPageURLFinished(
|
| return;
|
| }
|
|
|
| + if (ProvideDefaultIcon(site)) {
|
| + done.Run(true);
|
| + // Don't return. We want to fetch to update possibly stale images.
|
| + }
|
| +
|
| image_fetcher_->StartOrQueueNetworkRequest(
|
| std::string(), IconURL(site),
|
| base::Bind(&IconCacherImpl::OnFaviconDownloaded, base::Unretained(this),
|
| @@ -74,10 +80,23 @@ void IconCacherImpl::OnFaviconDownloaded(PopularSites::Site site,
|
| return;
|
| }
|
|
|
| - gfx::Image image = fetched_image;
|
| + SaveIconForSite(site, fetched_image);
|
| + done.Run(true);
|
| +}
|
| +
|
| +void IconCacherImpl::SaveIconForSite(const PopularSites::Site& site,
|
| + gfx::Image image) {
|
| favicon_base::SetFaviconColorSpace(&image);
|
| favicon_service_->SetFavicons(site.url, IconURL(site), IconType(site), image);
|
| - done.Run(true);
|
| +}
|
| +
|
| +bool IconCacherImpl::ProvideDefaultIcon(const PopularSites::Site& site) {
|
| + if (site.default_resource_id < 0) {
|
| + return false;
|
| + }
|
| + SaveIconForSite(site, ResourceBundle::GetSharedInstance().GetImageNamed(
|
| + site.default_resource_id));
|
| + return true;
|
| }
|
|
|
| } // namespace ntp_tiles
|
|
|