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

Unified Diff: components/ntp_snippets/ntp_snippets_service.cc

Issue 1921553004: Add favicon and publisher name to snippet cards (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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_snippets/ntp_snippets_service.cc
diff --git a/components/ntp_snippets/ntp_snippets_service.cc b/components/ntp_snippets/ntp_snippets_service.cc
index af047ac3af7da517dda41c378aa711cfd3cecd9c..556f45cc23614649ab75d8831889d244d78f0592 100644
--- a/components/ntp_snippets/ntp_snippets_service.cc
+++ b/components/ntp_snippets/ntp_snippets_service.cc
@@ -13,6 +13,7 @@
#include "base/files/file_util.h"
#include "base/json/json_reader.h"
#include "base/location.h"
+#include "base/metrics/sparse_histogram.h"
#include "base/path_service.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
@@ -286,7 +287,8 @@ std::set<std::string> NTPSnippetsService::GetSuggestionsHosts() const {
bool NTPSnippetsService::DiscardSnippet(const GURL& url) {
auto it = std::find_if(snippets_.begin(), snippets_.end(),
[&url](const std::unique_ptr<NTPSnippet>& snippet) {
- return snippet->url() == url;
+ return snippet->url() == url ||
+ snippet->best_source().url == url;
});
if (it == snippets_.end())
return false;
@@ -343,7 +345,6 @@ void NTPSnippetsService::OnSuggestionsChanged(
void NTPSnippetsService::OnSnippetsDownloaded(
const std::string& snippets_json, const std::string& status) {
-
if (!snippets_json.empty()) {
DCHECK(status.empty());
@@ -417,6 +418,24 @@ bool NTPSnippetsService::LoadFromListValue(const base::ListValue& list) {
}
}
+ int num_new_snippets = new_snippets.size();
+
+ if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kAddIncompleteSnippets)) {
+ // Remove snippets that do not have all the info we need to display it to
+ // the user.
+ new_snippets.erase(
+ std::remove_if(new_snippets.begin(), new_snippets.end(),
+ [this](const std::unique_ptr<NTPSnippet>& snippet) {
Marc Treib 2016/04/30 13:51:19 No need to capture |this| here.
May 2016/05/03 17:11:00 Done.
+ return !snippet->is_complete();
+ }),
+ new_snippets.end());
+ int num_snippets_discarded = num_new_snippets - new_snippets.size();
+ if (num_snippets_discarded > 0)
Marc Treib 2016/04/30 13:51:19 I think we want to record this even if it's zero,
jwd 2016/05/02 16:00:28 I'd suggest keeping this histogram as it is, and a
May 2016/05/03 17:11:00 Done.
+ UMA_HISTOGRAM_SPARSE_SLOWLY("NewTabPage.Snippets.IncompleteSnippets",
jwd 2016/05/02 16:00:28 How many unique num_snippets_discarded do you expe
May 2016/05/03 17:11:00 Up to kMaxSnippetCount (=10 at the moment) can be
jwd 2016/05/03 19:36:46 Sounds fine, as long as you're ok with the overhea
+ num_snippets_discarded);
+ }
+
// Insert the new snippets at the front.
snippets_.insert(snippets_.begin(),
std::make_move_iterator(new_snippets.begin()),
@@ -444,8 +463,7 @@ void NTPSnippetsService::StoreSnippetsToPrefs() {
void NTPSnippetsService::LoadDiscardedSnippetsFromPrefs() {
discarded_snippets_.clear();
bool success = AddSnippetsFromListValue(
- *pref_service_->GetList(prefs::kDiscardedSnippets),
- &discarded_snippets_);
+ *pref_service_->GetList(prefs::kDiscardedSnippets), &discarded_snippets_);
DCHECK(success) << "Failed to parse discarded snippets from prefs";
}

Powered by Google App Engine
This is Rietveld 408576698