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

Unified Diff: components/ntp_snippets/reading_list/reading_list_suggestions_provider.cc

Issue 2780793002: Add extra information for ReadingList ContentSuggestion (Closed)
Patch Set: Add comments Created 3 years, 9 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/reading_list/reading_list_suggestions_provider.cc
diff --git a/components/ntp_snippets/reading_list/reading_list_suggestions_provider.cc b/components/ntp_snippets/reading_list/reading_list_suggestions_provider.cc
index 0cafdb352d7a83bbcc835a0ad6e3032f433c6a0c..4cf9c601e927921dcb84d7c7db1d81d4adcb2d24 100644
--- a/components/ntp_snippets/reading_list/reading_list_suggestions_provider.cc
+++ b/components/ntp_snippets/reading_list/reading_list_suggestions_provider.cc
@@ -7,6 +7,7 @@
#include <vector>
#include "base/bind.h"
+#include "base/memory/ptr_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/threading/thread_task_runner_handle.h"
#include "components/ntp_snippets/category.h"
@@ -146,17 +147,7 @@ void ReadingListSuggestionsProvider::FetchReadingListInternal() {
std::vector<ContentSuggestion> suggestions;
for (const ReadingListEntry* entry : entries) {
- ContentSuggestion suggestion(provided_category_, entry->URL().spec(),
- entry->URL());
-
- if (entry->Title().size() > 0) {
- suggestion.set_title(base::UTF8ToUTF16(entry->Title()));
- } else {
- suggestion.set_title(url_formatter::FormatUrl(entry->URL()));
- }
- suggestion.set_snippet_text(
- url_formatter::FormatUrl(entry->URL().GetOrigin()));
- suggestions.emplace_back(std::move(suggestion));
+ ConvertEntry(entry, &suggestions);
}
NotifyStatusChanged(CategoryStatus::AVAILABLE);
@@ -164,6 +155,37 @@ void ReadingListSuggestionsProvider::FetchReadingListInternal() {
std::move(suggestions));
}
+void ReadingListSuggestionsProvider::ConvertEntry(
+ const ReadingListEntry* entry,
+ std::vector<ContentSuggestion>* suggestions) {
Marc Treib 2017/03/28 13:38:20 I don't like out params, and IMO converting has li
gambard 2017/03/29 06:51:24 That was my first idea, but I followed the pattern
+ ContentSuggestion suggestion(provided_category_, entry->URL().spec(),
+ entry->URL());
+ if (entry->Title().size() > 0) {
+ suggestion.set_title(base::UTF8ToUTF16(entry->Title()));
+ } else {
+ suggestion.set_title(url_formatter::FormatUrl(entry->URL()));
+ }
+ suggestion.set_snippet_text(
+ url_formatter::FormatUrl(entry->URL().GetOrigin()));
+
+ auto extra = base::MakeUnique<ReadingListSuggestionExtra>();
+ if (entry->DistilledState() == ReadingListEntry::PROCESSED) {
Marc Treib 2017/03/28 13:38:20 switch? Wrap this in a global helper method?
Olivier 2017/03/28 13:43:45 switch?
gambard 2017/03/29 06:51:24 Done.
gambard 2017/03/29 06:51:24 Done.
+ extra->distilled_state = ReadingListSuggestionExtra::
+ ReadingListSuggestionDistilledState::SUCCESS;
+ } else if (entry->DistilledState() == ReadingListEntry::DISTILLATION_ERROR) {
+ extra->distilled_state = ReadingListSuggestionExtra::
+ ReadingListSuggestionDistilledState::FAILURE;
+ } else {
+ extra->distilled_state = ReadingListSuggestionExtra::
+ ReadingListSuggestionDistilledState::PROCESSING;
+ }
+ extra->favicon_page_url =
+ entry->DistilledURL().is_valid() ? entry->DistilledURL() : entry->URL();
+ suggestion.set_reading_list_suggestion_extra(std::move(extra));
+
+ suggestions->emplace_back(std::move(suggestion));
+}
+
void ReadingListSuggestionsProvider::NotifyStatusChanged(
CategoryStatus new_status) {
if (category_status_ == new_status) {

Powered by Google App Engine
This is Rietveld 408576698