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

Side by Side Diff: components/ntp_tiles/popular_sites_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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/ntp_tiles/popular_sites_impl.h" 5 #include "components/ntp_tiles/popular_sites_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 continue; 122 continue;
123 std::string favicon_url; 123 std::string favicon_url;
124 item->GetString("favicon_url", &favicon_url); 124 item->GetString("favicon_url", &favicon_url);
125 std::string thumbnail_url; 125 std::string thumbnail_url;
126 item->GetString("thumbnail_url", &thumbnail_url); 126 item->GetString("thumbnail_url", &thumbnail_url);
127 std::string large_icon_url; 127 std::string large_icon_url;
128 item->GetString("large_icon_url", &large_icon_url); 128 item->GetString("large_icon_url", &large_icon_url);
129 129
130 sites.emplace_back(title, GURL(url), GURL(favicon_url), 130 sites.emplace_back(title, GURL(url), GURL(favicon_url),
131 GURL(large_icon_url), GURL(thumbnail_url)); 131 GURL(large_icon_url), GURL(thumbnail_url));
132 item->GetInteger("default_resource_id", &sites.back().default_resource_id);
132 } 133 }
133 return sites; 134 return sites;
134 } 135 }
135 136
137 #if defined(OS_ANDROID) || defined(OS_IOS)
138 void SetDefaultResourceForSite(base::ListValue* sites,
139 int index,
140 int resource_id) {
141 base::DictionaryValue* site;
142 if (!sites->GetDictionary(index, &site)) {
143 return;
144 }
145 site->SetInteger("default_resource_id", resource_id);
sfiera 2017/02/16 18:54:16 Feels a little weird to be storing a resource ID i
fhorschig 2017/02/17 16:24:04 Yes. With the first real fetch, this value is gone
146 }
147 #endif
148
136 // Creates the list of popular sites based on a snapshot available for mobile. 149 // Creates the list of popular sites based on a snapshot available for mobile.
137 std::unique_ptr<base::ListValue> DefaultPopularSites() { 150 std::unique_ptr<base::ListValue> DefaultPopularSites() {
138 #if defined(OS_ANDROID) || defined(OS_IOS) 151 #if defined(OS_ANDROID) || defined(OS_IOS)
139 std::unique_ptr<base::ListValue> sites = 152 std::unique_ptr<base::ListValue> sites =
140 base::ListValue::From(base::JSONReader().ReadToValue( 153 base::ListValue::From(base::JSONReader().ReadToValue(
141 ResourceBundle::GetSharedInstance().GetRawDataResource( 154 ResourceBundle::GetSharedInstance().GetRawDataResource(
142 IDR_DEFAULT_POPULAR_SITES_JSON))); 155 IDR_DEFAULT_POPULAR_SITES_JSON)));
143 DCHECK(sites); 156 DCHECK(sites);
157 SetDefaultResourceForSite(sites.get(), 0, IDR_DEFAULT_POPULAR_SITES_ICON0);
sfiera 2017/02/16 18:54:16 Couldn't you write this as a foreach loop? Like:
fhorschig 2017/02/17 16:24:04 YES! This is exactly what I have been looking for.
158 SetDefaultResourceForSite(sites.get(), 1, IDR_DEFAULT_POPULAR_SITES_ICON1);
159 SetDefaultResourceForSite(sites.get(), 2, IDR_DEFAULT_POPULAR_SITES_ICON2);
160 SetDefaultResourceForSite(sites.get(), 3, IDR_DEFAULT_POPULAR_SITES_ICON3);
161 SetDefaultResourceForSite(sites.get(), 4, IDR_DEFAULT_POPULAR_SITES_ICON4);
162 SetDefaultResourceForSite(sites.get(), 5, IDR_DEFAULT_POPULAR_SITES_ICON5);
163 SetDefaultResourceForSite(sites.get(), 6, IDR_DEFAULT_POPULAR_SITES_ICON6);
164 SetDefaultResourceForSite(sites.get(), 7, IDR_DEFAULT_POPULAR_SITES_ICON7);
144 return sites; 165 return sites;
145 #endif 166 #endif
146 return base::MakeUnique<base::ListValue>(); 167 return base::MakeUnique<base::ListValue>();
147 } 168 }
148 169
149 } // namespace 170 } // namespace
150 171
151 PopularSites::Site::Site(const base::string16& title, 172 PopularSites::Site::Site(const base::string16& title,
152 const GURL& url, 173 const GURL& url,
153 const GURL& favicon_url, 174 const GURL& favicon_url,
154 const GURL& large_icon_url, 175 const GURL& large_icon_url,
155 const GURL& thumbnail_url) 176 const GURL& thumbnail_url)
156 : title(title), 177 : title(title),
157 url(url), 178 url(url),
158 favicon_url(favicon_url), 179 favicon_url(favicon_url),
159 large_icon_url(large_icon_url), 180 large_icon_url(large_icon_url),
160 thumbnail_url(thumbnail_url) {} 181 thumbnail_url(thumbnail_url),
182 default_resource_id(-1) {} // Valid resources would be >=0
sfiera 2017/02/16 18:54:16 I don't think any comment is needed in addition to
fhorschig 2017/02/17 16:24:04 Done.
161 183
162 PopularSites::Site::Site(const Site& other) = default; 184 PopularSites::Site::Site(const Site& other) = default;
163 185
164 PopularSites::Site::~Site() {} 186 PopularSites::Site::~Site() {}
165 187
166 PopularSitesImpl::PopularSitesImpl( 188 PopularSitesImpl::PopularSitesImpl(
167 const scoped_refptr<base::SequencedWorkerPool>& blocking_pool, 189 const scoped_refptr<base::SequencedWorkerPool>& blocking_pool,
168 PrefService* prefs, 190 PrefService* prefs,
169 const TemplateURLService* template_url_service, 191 const TemplateURLService* template_url_service,
170 VariationsService* variations_service, 192 VariationsService* variations_service,
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 pending_url_ = GetPopularSitesURL(kPopularSitesDefaultCountryCode, 386 pending_url_ = GetPopularSitesURL(kPopularSitesDefaultCountryCode,
365 kPopularSitesDefaultVersion); 387 kPopularSitesDefaultVersion);
366 FetchPopularSites(); 388 FetchPopularSites();
367 } else { 389 } else {
368 DLOG(WARNING) << "Download fallback site list failed"; 390 DLOG(WARNING) << "Download fallback site list failed";
369 callback_.Run(false); 391 callback_.Run(false);
370 } 392 }
371 } 393 }
372 394
373 } // namespace ntp_tiles 395 } // namespace ntp_tiles
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698