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

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..cd796ffc338ada6a9bf5966f28f022e66aaa0622 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 {
@@ -38,6 +49,7 @@ class NTPSnippet {
// URL of the page described by this snippet.
const GURL& url() const { return url_; }
+ void set_url(const GURL& url) { url_ = url; }
// Subtitle to identify the site the snippet is from.
const std::string& site_title() const { return site_title_; }
@@ -46,6 +58,7 @@ class NTPSnippet {
}
// Favicon for the site. Do not use to directly retrieve the favicon.
+ // Optional data
Marc Treib 2016/04/27 07:03:09 So far all of the fields, except for the URL, have
May 2016/04/27 16:45:09 Removed favicon actually, since we don't get that
Marc Treib 2016/04/28 08:50:13 Okay, makes sense, thanks!
const GURL& favicon_url() const { return favicon_url_; }
void set_favicon_url(const GURL& favicon_url) { favicon_url_ = favicon_url; }
@@ -79,15 +92,24 @@ class NTPSnippet {
expiry_date_ = expiry_date;
}
+ // Optional data
const GURL& amp_url() const { return amp_url_; }
void set_amp_url(const GURL& amp_url) { amp_url_ = amp_url; }
+ const std::vector<SnippetSource> get_sources() const { return sources_; }
Marc Treib 2016/04/27 07:03:09 Return by ref? Also just "sources", no "get".
May 2016/04/27 16:45:08 Done.
+
+ bool is_valid_snippet() const {
Marc Treib 2016/04/27 07:03:09 nit: just "is_valid" please (though IMO "valid" mi
May 2016/04/27 16:45:09 Changed to complete(). Better..?
Marc Treib 2016/04/28 08:50:13 Yes, thank you!
+ return url_.is_valid() && !site_title_.empty() && !title_.empty() &&
+ !snippet_.empty() && salient_image_url_.is_valid() &&
+ !publish_date_.is_null() && !expiry_date_.is_null();
+ }
+
// Public for testing.
static base::Time TimeFromJsonString(const std::string& timestamp_str);
static std::string TimeToJsonString(const base::Time& time);
private:
- const GURL url_;
+ GURL url_;
std::string site_title_;
std::string title_;
GURL favicon_url_;
@@ -97,6 +119,8 @@ class NTPSnippet {
base::Time expiry_date_;
GURL amp_url_;
Marc Treib 2016/04/27 07:03:09 A few fields are now effectively stored twice. Can
May 2016/04/27 16:45:08 Done. I kept url_ because we do have a url from Ch
Marc Treib 2016/04/28 08:50:13 Alright, fair enough.
+ std::vector<SnippetSource> sources_;
Marc Treib 2016/04/27 07:03:09 Or in fact: Do we actually need to store all the s
May 2016/04/27 16:45:08 I do it so that we can effectively de-dupe later a
Marc Treib 2016/04/28 08:50:13 Acknowledged.
+
DISALLOW_COPY_AND_ASSIGN(NTPSnippet);
};

Powered by Google App Engine
This is Rietveld 408576698