OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/most_visited_sites.h" | 5 #include "components/ntp_tiles/most_visited_sites.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 if (supervisor_ && supervisor_->IsBlocked(url)) | 261 if (supervisor_ && supervisor_->IsBlocked(url)) |
262 continue; | 262 continue; |
263 | 263 |
264 NTPTile tile; | 264 NTPTile tile; |
265 tile.title = base::UTF8ToUTF16(suggestion_pb.title()); | 265 tile.title = base::UTF8ToUTF16(suggestion_pb.title()); |
266 tile.url = url; | 266 tile.url = url; |
267 tile.source = TileSource::SUGGESTIONS_SERVICE; | 267 tile.source = TileSource::SUGGESTIONS_SERVICE; |
268 tile.whitelist_icon_path = GetWhitelistLargeIconPath(url); | 268 tile.whitelist_icon_path = GetWhitelistLargeIconPath(url); |
269 tile.thumbnail_url = GURL(suggestion_pb.thumbnail()); | 269 tile.thumbnail_url = GURL(suggestion_pb.thumbnail()); |
270 tile.favicon_url = GURL(suggestion_pb.favicon_url()); | 270 tile.favicon_url = GURL(suggestion_pb.favicon_url()); |
| 271 if (AreNtpMostLikelyFaviconsFromServerEnabled()) { |
| 272 icon_cacher_->StartFetchMostLikely( |
| 273 url, base::Bind(&MostVisitedSites::OnIconMadeAvailable, |
| 274 base::Unretained(this), url)); |
| 275 } |
271 | 276 |
272 tiles.push_back(std::move(tile)); | 277 tiles.push_back(std::move(tile)); |
273 } | 278 } |
274 | 279 |
275 mv_source_ = TileSource::SUGGESTIONS_SERVICE; | 280 mv_source_ = TileSource::SUGGESTIONS_SERVICE; |
276 SaveNewTilesAndNotify(std::move(tiles)); | 281 SaveNewTilesAndNotify(std::move(tiles)); |
277 } | 282 } |
278 | 283 |
279 NTPTilesVector MostVisitedSites::CreateWhitelistEntryPointTiles( | 284 NTPTilesVector MostVisitedSites::CreateWhitelistEntryPointTiles( |
280 const NTPTilesVector& personal_tiles) { | 285 const NTPTilesVector& personal_tiles) { |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
353 | 358 |
354 NTPTile tile; | 359 NTPTile tile; |
355 tile.title = popular_site.title; | 360 tile.title = popular_site.title; |
356 tile.url = GURL(popular_site.url); | 361 tile.url = GURL(popular_site.url); |
357 tile.source = TileSource::POPULAR; | 362 tile.source = TileSource::POPULAR; |
358 | 363 |
359 popular_sites_tiles.push_back(std::move(tile)); | 364 popular_sites_tiles.push_back(std::move(tile)); |
360 base::Closure icon_available = | 365 base::Closure icon_available = |
361 base::Bind(&MostVisitedSites::OnIconMadeAvailable, | 366 base::Bind(&MostVisitedSites::OnIconMadeAvailable, |
362 base::Unretained(this), popular_site.url); | 367 base::Unretained(this), popular_site.url); |
363 icon_cacher_->StartFetch(popular_site, icon_available, icon_available); | 368 icon_cacher_->StartFetchPopularSites(popular_site, icon_available, |
| 369 icon_available); |
364 if (popular_sites_tiles.size() >= num_popular_sites_tiles) | 370 if (popular_sites_tiles.size() >= num_popular_sites_tiles) |
365 break; | 371 break; |
366 } | 372 } |
367 } | 373 } |
368 return popular_sites_tiles; | 374 return popular_sites_tiles; |
369 } | 375 } |
370 | 376 |
371 void MostVisitedSites::SaveNewTilesAndNotify(NTPTilesVector personal_tiles) { | 377 void MostVisitedSites::SaveNewTilesAndNotify(NTPTilesVector personal_tiles) { |
372 NTPTilesVector whitelist_tiles = | 378 NTPTilesVector whitelist_tiles = |
373 CreateWhitelistEntryPointTiles(personal_tiles); | 379 CreateWhitelistEntryPointTiles(personal_tiles); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 } | 421 } |
416 | 422 |
417 void MostVisitedSites::OnPopularSitesDownloaded(bool success) { | 423 void MostVisitedSites::OnPopularSitesDownloaded(bool success) { |
418 if (!success) { | 424 if (!success) { |
419 LOG(WARNING) << "Download of popular sites failed"; | 425 LOG(WARNING) << "Download of popular sites failed"; |
420 return; | 426 return; |
421 } | 427 } |
422 | 428 |
423 for (const PopularSites::Site& popular_site : popular_sites_->sites()) { | 429 for (const PopularSites::Site& popular_site : popular_sites_->sites()) { |
424 // Ignore callback; these icons will be seen on the *next* NTP. | 430 // Ignore callback; these icons will be seen on the *next* NTP. |
425 icon_cacher_->StartFetch(popular_site, base::Closure(), base::Closure()); | 431 icon_cacher_->StartFetchPopularSites(popular_site, base::Closure(), |
| 432 base::Closure()); |
426 } | 433 } |
427 } | 434 } |
428 | 435 |
429 void MostVisitedSites::OnIconMadeAvailable(const GURL& site_url) { | 436 void MostVisitedSites::OnIconMadeAvailable(const GURL& site_url) { |
430 observer_->OnIconMadeAvailable(site_url); | 437 observer_->OnIconMadeAvailable(site_url); |
431 } | 438 } |
432 | 439 |
433 void MostVisitedSites::TopSitesLoaded(TopSites* top_sites) {} | 440 void MostVisitedSites::TopSitesLoaded(TopSites* top_sites) {} |
434 | 441 |
435 void MostVisitedSites::TopSitesChanged(TopSites* top_sites, | 442 void MostVisitedSites::TopSitesChanged(TopSites* top_sites, |
436 ChangeReason change_reason) { | 443 ChangeReason change_reason) { |
437 if (mv_source_ == TileSource::TOP_SITES) { | 444 if (mv_source_ == TileSource::TOP_SITES) { |
438 // The displayed tiles are invalidated. | 445 // The displayed tiles are invalidated. |
439 InitiateTopSitesQuery(); | 446 InitiateTopSitesQuery(); |
440 } | 447 } |
441 } | 448 } |
442 | 449 |
443 } // namespace ntp_tiles | 450 } // namespace ntp_tiles |
OLD | NEW |