| Index: components/ntp_snippets/ntp_snippet.cc
|
| diff --git a/components/ntp_snippets/ntp_snippet.cc b/components/ntp_snippets/ntp_snippet.cc
|
| index fa2f43fefd16172b524c79b906e043ec97745a12..e34adae5349d4fb4d32eee69d57d302bf52d63ad 100644
|
| --- a/components/ntp_snippets/ntp_snippet.cc
|
| +++ b/components/ntp_snippets/ntp_snippet.cc
|
| @@ -10,6 +10,9 @@
|
|
|
| namespace {
|
|
|
| +const char kScore[] = "score";
|
| +const char kContentInfo[] = "contentInfo";
|
| +
|
| const char kUrl[] = "url";
|
| const char kTitle[] = "title";
|
| const char kSalientImageUrl[] = "thumbnailUrl";
|
| @@ -35,9 +38,13 @@ NTPSnippet::~NTPSnippet() {}
|
| // static
|
| std::unique_ptr<NTPSnippet> NTPSnippet::CreateFromDictionary(
|
| const base::DictionaryValue& dict) {
|
| + const base::DictionaryValue* content = nullptr;
|
| + if (!dict.GetDictionary(kContentInfo, &content))
|
| + return nullptr;
|
| +
|
| // Need at least the url.
|
| std::string url_str;
|
| - if (!dict.GetString("url", &url_str))
|
| + if (!content->GetString("url", &url_str))
|
| return nullptr;
|
| GURL url(url_str);
|
| if (!url.is_valid())
|
| @@ -46,24 +53,24 @@ std::unique_ptr<NTPSnippet> NTPSnippet::CreateFromDictionary(
|
| std::unique_ptr<NTPSnippet> snippet(new NTPSnippet(url));
|
|
|
| std::string title;
|
| - if (dict.GetString(kTitle, &title))
|
| + if (content->GetString(kTitle, &title))
|
| snippet->set_title(title);
|
| std::string salient_image_url;
|
| - if (dict.GetString(kSalientImageUrl, &salient_image_url))
|
| + if (content->GetString(kSalientImageUrl, &salient_image_url))
|
| snippet->set_salient_image_url(GURL(salient_image_url));
|
| std::string snippet_str;
|
| - if (dict.GetString(kSnippet, &snippet_str))
|
| + if (content->GetString(kSnippet, &snippet_str))
|
| snippet->set_snippet(snippet_str);
|
| // The creation and expiry timestamps are uint64s which are stored as strings.
|
| std::string creation_timestamp_str;
|
| - if (dict.GetString(kPublishDate, &creation_timestamp_str))
|
| + if (content->GetString(kPublishDate, &creation_timestamp_str))
|
| snippet->set_publish_date(TimeFromJsonString(creation_timestamp_str));
|
| std::string expiry_timestamp_str;
|
| - if (dict.GetString(kExpiryDate, &expiry_timestamp_str))
|
| + if (content->GetString(kExpiryDate, &expiry_timestamp_str))
|
| snippet->set_expiry_date(TimeFromJsonString(expiry_timestamp_str));
|
|
|
| const base::ListValue* corpus_infos_list = nullptr;
|
| - if (!dict.GetList(kSourceCorpusInfo, &corpus_infos_list)) {
|
| + if (!content->GetList(kSourceCorpusInfo, &corpus_infos_list)) {
|
| DLOG(WARNING) << "No sources found for article " << title;
|
| return nullptr;
|
| }
|
| @@ -136,26 +143,29 @@ std::unique_ptr<NTPSnippet> NTPSnippet::CreateFromDictionary(
|
| return nullptr;
|
| }
|
|
|
| + double score;
|
| + if (dict.GetDouble(kScore, &score))
|
| + snippet->set_score(score);
|
| +
|
| return snippet;
|
| }
|
|
|
| std::unique_ptr<base::DictionaryValue> NTPSnippet::ToDictionary() const {
|
| - std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue);
|
| + std::unique_ptr<base::DictionaryValue> content(new base::DictionaryValue);
|
|
|
| - dict->SetString(kUrl, url_.spec());
|
| + content->SetString(kUrl, url_.spec());
|
| if (!title_.empty())
|
| - dict->SetString(kTitle, title_);
|
| + content->SetString(kTitle, title_);
|
| if (salient_image_url_.is_valid())
|
| - dict->SetString(kSalientImageUrl, salient_image_url_.spec());
|
| + content->SetString(kSalientImageUrl, salient_image_url_.spec());
|
| if (!snippet_.empty())
|
| - dict->SetString(kSnippet, snippet_);
|
| + content->SetString(kSnippet, snippet_);
|
| if (!publish_date_.is_null())
|
| - dict->SetString(kPublishDate, TimeToJsonString(publish_date_));
|
| + content->SetString(kPublishDate, TimeToJsonString(publish_date_));
|
| if (!expiry_date_.is_null())
|
| - dict->SetString(kExpiryDate, TimeToJsonString(expiry_date_));
|
| -
|
| - std::unique_ptr<base::ListValue> corpus_infos_list(new base::ListValue);
|
| - for (const SnippetSource& source : sources_) {
|
| + content->SetString(kExpiryDate, TimeToJsonString(expiry_date_));
|
| + if (amp_url_.is_valid()) {
|
| + std::unique_ptr<base::ListValue> corpus_infos_list(new base::ListValue);
|
| std::unique_ptr<base::DictionaryValue> corpus_info_dict(
|
| new base::DictionaryValue);
|
|
|
| @@ -172,6 +182,11 @@ std::unique_ptr<base::DictionaryValue> NTPSnippet::ToDictionary() const {
|
|
|
| dict->Set(kSourceCorpusInfo, std::move(corpus_infos_list));
|
|
|
| + std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue);
|
| + dict->Set(kContentInfo, std::move(content));
|
| +
|
| + dict->SetDouble(kScore, score_);
|
| +
|
| return dict;
|
| }
|
|
|
|
|