Chromium Code Reviews| Index: components/ntp_tiles/popular_sites_impl.cc | 
| diff --git a/components/ntp_tiles/popular_sites_impl.cc b/components/ntp_tiles/popular_sites_impl.cc | 
| index 34fa0274a06fdae706fd592b9930bb656fe5d22b..eff5c9c54090a7e2628b304887220c15fed6c4e5 100644 | 
| --- a/components/ntp_tiles/popular_sites_impl.cc | 
| +++ b/components/ntp_tiles/popular_sites_impl.cc | 
| @@ -17,6 +17,8 @@ | 
| #include "base/time/time.h" | 
| #include "base/values.h" | 
| #include "components/data_use_measurement/core/data_use_user_data.h" | 
| +#include "components/favicon/core/favicon_service.h" | 
| +#include "components/favicon_base/favicon_types.h" | 
| #include "components/google/core/browser/google_util.h" | 
| #include "components/ntp_tiles/constants.h" | 
| #include "components/ntp_tiles/field_trial.h" | 
| @@ -134,11 +136,52 @@ PopularSites::SitesVector ParseSiteList(const base::ListValue& list) { | 
| // This allows instantiation of PopularSites without registered prefs. | 
| // That case can occur during tests. | 
| -PopularSites::SitesVector GetDefaultFromPrefs(const PrefService& prefs) { | 
| +PopularSites::SitesVector GetDefaultFromPrefs( | 
| 
 
jkrcal
2017/02/14 08:23:06
drive-by comment: When is this function called?
Y
 
sfiera
2017/02/14 09:59:16
Even in the absence of sync, I think this implemen
 
fhorschig
2017/02/14 17:29:02
Good remark. It's now called by the IconCacher whi
 
 | 
| + const PrefService& prefs, | 
| + favicon::FaviconService* favicons) { | 
| if (!ShouldShowPopularSites()) { | 
| return PopularSites::SitesVector(); | 
| } | 
| - return ParseSiteList(*prefs.GetList(kPopularSitesJsonPref)); | 
| + PopularSites::SitesVector sites = | 
| + ParseSiteList(*prefs.GetList(kPopularSitesJsonPref)); | 
| +#if defined(OS_ANDROID) || defined(OS_IOS) | 
| 
 
tschumann
2017/02/14 11:56:51
i wonder why is this part only relevant to mobile
 
fhorschig
2017/02/14 17:29:02
It used to load the defaults and if on mobile, reg
 
 | 
| + if (!favicons) { | 
| + return sites; | 
| + } | 
| + favicons->SetFavicons(sites[0].url, sites[0].large_icon_url, | 
| 
 
tschumann
2017/02/14 11:56:51
+mastiz who looked into this.
Feels weird to set t
 
mastiz
2017/02/14 14:44:59
This comment seems obsolete now. Please loop me in
 
fhorschig
2017/02/14 17:29:02
Like Jan and Chris have pointed out, this was neit
 
fhorschig
2017/02/14 17:29:02
Absolutely. It seems to be quite an interesting CL
 
 | 
| + favicon_base::IconType::FAVICON, | 
| + ResourceBundle::GetSharedInstance().GetImageNamed( | 
| + IDR_DEFAULT_POPULAR_SITES_ICON0)); | 
| + favicons->SetFavicons(sites[1].url, sites[1].large_icon_url, | 
| + favicon_base::IconType::FAVICON, | 
| + ResourceBundle::GetSharedInstance().GetImageNamed( | 
| + IDR_DEFAULT_POPULAR_SITES_ICON1)); | 
| + favicons->SetFavicons(sites[2].url, sites[2].large_icon_url, | 
| + favicon_base::IconType::FAVICON, | 
| + ResourceBundle::GetSharedInstance().GetImageNamed( | 
| + IDR_DEFAULT_POPULAR_SITES_ICON2)); | 
| + favicons->SetFavicons(sites[3].url, sites[3].large_icon_url, | 
| + favicon_base::IconType::FAVICON, | 
| + ResourceBundle::GetSharedInstance().GetImageNamed( | 
| + IDR_DEFAULT_POPULAR_SITES_ICON3)); | 
| + favicons->SetFavicons(sites[4].url, sites[4].large_icon_url, | 
| + favicon_base::IconType::FAVICON, | 
| + ResourceBundle::GetSharedInstance().GetImageNamed( | 
| + IDR_DEFAULT_POPULAR_SITES_ICON4)); | 
| + favicons->SetFavicons(sites[5].url, sites[5].large_icon_url, | 
| + favicon_base::IconType::FAVICON, | 
| + ResourceBundle::GetSharedInstance().GetImageNamed( | 
| + IDR_DEFAULT_POPULAR_SITES_ICON5)); | 
| + favicons->SetFavicons(sites[6].url, sites[6].large_icon_url, | 
| + favicon_base::IconType::FAVICON, | 
| + ResourceBundle::GetSharedInstance().GetImageNamed( | 
| + IDR_DEFAULT_POPULAR_SITES_ICON6)); | 
| + favicons->SetFavicons(sites[7].url, sites[7].large_icon_url, | 
| + favicon_base::IconType::FAVICON, | 
| + ResourceBundle::GetSharedInstance().GetImageNamed( | 
| + IDR_DEFAULT_POPULAR_SITES_ICON7)); | 
| +#endif | 
| + return sites; | 
| } | 
| // Creates the List of popular sites based on a snapshot available for mobile. | 
| @@ -176,6 +219,7 @@ PopularSitesImpl::PopularSitesImpl( | 
| PrefService* prefs, | 
| const TemplateURLService* template_url_service, | 
| VariationsService* variations_service, | 
| + favicon::FaviconService* favicon_service, | 
| net::URLRequestContextGetter* download_context, | 
| const base::FilePath& directory, | 
| ParseJSONCallback parse_json) | 
| @@ -187,7 +231,7 @@ PopularSitesImpl::PopularSitesImpl( | 
| download_context_(download_context), | 
| parse_json_(std::move(parse_json)), | 
| is_fallback_(false), | 
| - sites_(GetDefaultFromPrefs(*prefs_)), | 
| + sites_(GetDefaultFromPrefs(*prefs_, favicon_service)), | 
| 
 
sfiera
2017/02/14 09:59:16
Initializing the favicon service in PopularSitesIm
 
fhorschig
2017/02/14 17:29:02
Agreed and removed.
 
 | 
| weak_ptr_factory_(this) { | 
| // If valid path provided, remove local files created by older versions. | 
| if (!directory.empty() && blocking_runner_) { |