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

Unified Diff: components/ntp_snippets/ntp_snippet.h

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_snippet.h
diff --git a/components/ntp_snippets/ntp_snippet.h b/components/ntp_snippets/ntp_snippet.h
index 688098417031b001a998594a0b29b9fa780c18ee..6cde5c9c260e88742d17e6d676372f84399fe9c5 100644
--- a/components/ntp_snippets/ntp_snippet.h
+++ b/components/ntp_snippets/ntp_snippet.h
@@ -7,6 +7,7 @@
#include <memory>
#include <string>
+#include <vector>
#include "base/macros.h"
#include "base/time/time.h"
@@ -18,6 +19,16 @@ class DictionaryValue;
namespace ntp_snippets {
+struct SnippetSource {
+ SnippetSource(const GURL& url,
+ const std::string& publisher_name,
+ const GURL& amp_url)
+ : url(url), publisher_name(publisher_name), amp_url(amp_url) {}
+ GURL url;
+ std::string publisher_name;
+ GURL amp_url;
+};
+
// Stores and vend fresh content data for the NTP. This is a dumb class with no
// smarts at all, all the logic is in the service.
class NTPSnippet {
@@ -39,16 +50,6 @@ class NTPSnippet {
// URL of the page described by this snippet.
const GURL& url() const { return url_; }
- // Subtitle to identify the site the snippet is from.
- const std::string& site_title() const { return site_title_; }
- void set_site_title(const std::string& site_title) {
- site_title_ = site_title;
- }
-
- // Favicon for the site. Do not use to directly retrieve the favicon.
- const GURL& favicon_url() const { return favicon_url_; }
- void set_favicon_url(const GURL& favicon_url) { favicon_url_ = favicon_url; }
-
// Title of the snippet.
const std::string& title() const { return title_; }
void set_title(const std::string& title) { title_ = title; }
@@ -79,23 +80,41 @@ class NTPSnippet {
expiry_date_ = expiry_date;
}
- const GURL& amp_url() const { return amp_url_; }
- void set_amp_url(const GURL& amp_url) { amp_url_ = amp_url; }
+ size_t source_index() const { return best_source_index_; }
+ void set_source_index(size_t index) { best_source_index_ = index; }
+
+ // We should never construct an NTPSnippet object if we don't have any sources
+ // so this should never fail
+ const SnippetSource& best_source() const {
+ return sources_[best_source_index_];
+ }
+
+ const std::vector<SnippetSource>& sources() const { return sources_; }
+ void add_source(const SnippetSource& source) { sources_.push_back(source); }
+
+ // If this snippet has all the data we need to show a full card to the user
+ bool is_complete() const {
+ return url().is_valid() && !sources().empty() && !title().empty() &&
+ !snippet().empty() && salient_image_url().is_valid() &&
+ !publish_date().is_null() && !expiry_date().is_null() &&
+ !best_source().publisher_name.empty();
+ }
// Public for testing.
static base::Time TimeFromJsonString(const std::string& timestamp_str);
static std::string TimeToJsonString(const base::Time& time);
private:
- const GURL url_;
- std::string site_title_;
+ GURL url_;
std::string title_;
- GURL favicon_url_;
GURL salient_image_url_;
std::string snippet_;
base::Time publish_date_;
base::Time expiry_date_;
GURL amp_url_;
+ size_t best_source_index_;
+
+ std::vector<SnippetSource> sources_;
DISALLOW_COPY_AND_ASSIGN(NTPSnippet);
};

Powered by Google App Engine
This is Rietveld 408576698