Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(509)

Unified Diff: components/ntp_tiles/icon_cacher_impl.cc

Issue 2695713004: Add baked-in favicons for default popular sites on NTP (Closed)
Patch Set: Add default resource attribute to Site Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698