| 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 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 return NTPTilesVector(); | 330 return NTPTilesVector(); |
| 331 | 331 |
| 332 size_t num_tiles = personal_tiles.size() + whitelist_tiles.size(); | 332 size_t num_tiles = personal_tiles.size() + whitelist_tiles.size(); |
| 333 DCHECK_LE(num_tiles, static_cast<size_t>(num_sites_)); | 333 DCHECK_LE(num_tiles, static_cast<size_t>(num_sites_)); |
| 334 | 334 |
| 335 // Collect non-blacklisted popular suggestions, skipping those already present | 335 // Collect non-blacklisted popular suggestions, skipping those already present |
| 336 // in the personal suggestions. | 336 // in the personal suggestions. |
| 337 size_t num_popular_sites_tiles = num_sites_ - num_tiles; | 337 size_t num_popular_sites_tiles = num_sites_ - num_tiles; |
| 338 NTPTilesVector popular_sites_tiles; | 338 NTPTilesVector popular_sites_tiles; |
| 339 | 339 |
| 340 if (num_popular_sites_tiles > 0 && popular_sites_) { | 340 if (num_popular_sites_tiles > 0 && popular_sites_ && |
| 341 ShouldShowPopularSites()) { |
| 341 std::set<std::string> hosts; | 342 std::set<std::string> hosts; |
| 342 for (const auto& tile : personal_tiles) | 343 for (const auto& tile : personal_tiles) |
| 343 hosts.insert(tile.url.host()); | 344 hosts.insert(tile.url.host()); |
| 344 for (const auto& tile : whitelist_tiles) | 345 for (const auto& tile : whitelist_tiles) |
| 345 hosts.insert(tile.url.host()); | 346 hosts.insert(tile.url.host()); |
| 346 for (const PopularSites::Site& popular_site : popular_sites_->sites()) { | 347 for (const PopularSites::Site& popular_site : popular_sites_->sites()) { |
| 347 // Skip blacklisted sites. | 348 // Skip blacklisted sites. |
| 348 if (top_sites_ && top_sites_->IsBlacklisted(popular_site.url)) | 349 if (top_sites_ && top_sites_->IsBlacklisted(popular_site.url)) |
| 349 continue; | 350 continue; |
| 350 std::string host = popular_site.url.host(); | 351 std::string host = popular_site.url.host(); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 410 return; | 411 return; |
| 411 | 412 |
| 412 observer_->OnMostVisitedURLsAvailable(current_tiles_); | 413 observer_->OnMostVisitedURLsAvailable(current_tiles_); |
| 413 } | 414 } |
| 414 | 415 |
| 415 void MostVisitedSites::OnPopularSitesDownloaded(bool success) { | 416 void MostVisitedSites::OnPopularSitesDownloaded(bool success) { |
| 416 if (!success) { | 417 if (!success) { |
| 417 LOG(WARNING) << "Download of popular sites failed"; | 418 LOG(WARNING) << "Download of popular sites failed"; |
| 418 return; | 419 return; |
| 419 } | 420 } |
| 420 | |
| 421 // Re-build the tile list. Once done, this will notify the observer. | |
| 422 BuildCurrentTiles(); | |
| 423 } | 421 } |
| 424 | 422 |
| 425 void MostVisitedSites::OnIconMadeAvailable(const GURL& site_url, | 423 void MostVisitedSites::OnIconMadeAvailable(const GURL& site_url, |
| 426 bool newly_available) { | 424 bool newly_available) { |
| 427 if (newly_available) | 425 if (newly_available) |
| 428 observer_->OnIconMadeAvailable(site_url); | 426 observer_->OnIconMadeAvailable(site_url); |
| 429 } | 427 } |
| 430 | 428 |
| 431 void MostVisitedSites::TopSitesLoaded(TopSites* top_sites) {} | 429 void MostVisitedSites::TopSitesLoaded(TopSites* top_sites) {} |
| 432 | 430 |
| 433 void MostVisitedSites::TopSitesChanged(TopSites* top_sites, | 431 void MostVisitedSites::TopSitesChanged(TopSites* top_sites, |
| 434 ChangeReason change_reason) { | 432 ChangeReason change_reason) { |
| 435 if (mv_source_ == NTPTileSource::TOP_SITES) { | 433 if (mv_source_ == NTPTileSource::TOP_SITES) { |
| 436 // The displayed tiles are invalidated. | 434 // The displayed tiles are invalidated. |
| 437 InitiateTopSitesQuery(); | 435 InitiateTopSitesQuery(); |
| 438 } | 436 } |
| 439 } | 437 } |
| 440 | 438 |
| 441 } // namespace ntp_tiles | 439 } // namespace ntp_tiles |
| OLD | NEW |