| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/ntp_snippets/ntp_snippet.h" | 5 #include "components/ntp_snippets/ntp_snippet.h" |
| 6 | 6 |
| 7 #include "base/values.h" | 7 #include "base/values.h" |
| 8 | 8 |
| 9 namespace { | 9 namespace { |
| 10 | 10 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 NTPSnippet::NTPSnippet(const GURL& url) : url_(url) { | 24 NTPSnippet::NTPSnippet(const GURL& url) : url_(url) { |
| 25 DCHECK(url_.is_valid()); | 25 DCHECK(url_.is_valid()); |
| 26 } | 26 } |
| 27 | 27 |
| 28 NTPSnippet::~NTPSnippet() {} | 28 NTPSnippet::~NTPSnippet() {} |
| 29 | 29 |
| 30 // static | 30 // static |
| 31 scoped_ptr<NTPSnippet> NTPSnippet::CreateFromDictionary( | 31 scoped_ptr<NTPSnippet> NTPSnippet::CreateFromDictionary( |
| 32 const base::DictionaryValue& dict) { | 32 const base::DictionaryValue& dict) { |
| 33 // Need at least the url. | 33 // Need at least the url. |
| 34 std::string url; | 34 std::string url_str; |
| 35 if (!dict.GetString("url", &url)) | 35 if (!dict.GetString("url", &url_str)) |
| 36 return nullptr; |
| 37 GURL url(url_str); |
| 38 if (!url.is_valid()) |
| 36 return nullptr; | 39 return nullptr; |
| 37 | 40 |
| 38 // TODO(treib,noyau): Need to check that the URL is valid first, or remove | 41 scoped_ptr<NTPSnippet> snippet(new NTPSnippet(url)); |
| 39 // the DCHECK in the constructor. | |
| 40 scoped_ptr<NTPSnippet> snippet(new NTPSnippet(GURL(url))); | |
| 41 | 42 |
| 42 std::string site_title; | 43 std::string site_title; |
| 43 if (dict.GetString(kSiteTitle, &site_title)) | 44 if (dict.GetString(kSiteTitle, &site_title)) |
| 44 snippet->set_site_title(site_title); | 45 snippet->set_site_title(site_title); |
| 45 std::string title; | 46 std::string title; |
| 46 if (dict.GetString(kTitle, &title)) | 47 if (dict.GetString(kTitle, &title)) |
| 47 snippet->set_title(title); | 48 snippet->set_title(title); |
| 48 std::string favicon_url; | 49 std::string favicon_url; |
| 49 if (dict.GetString(kFaviconUrl, &favicon_url)) | 50 if (dict.GetString(kFaviconUrl, &favicon_url)) |
| 50 snippet->set_favicon_url(GURL(favicon_url)); | 51 snippet->set_favicon_url(GURL(favicon_url)); |
| 51 std::string salient_image_url; | 52 std::string salient_image_url; |
| 52 if (dict.GetString(kSalientImageUrl, &salient_image_url)) | 53 if (dict.GetString(kSalientImageUrl, &salient_image_url)) |
| 53 snippet->set_salient_image_url(GURL(salient_image_url)); | 54 snippet->set_salient_image_url(GURL(salient_image_url)); |
| 54 std::string snippet_str; | 55 std::string snippet_str; |
| 55 if (dict.GetString(kSnippet, &snippet_str)) | 56 if (dict.GetString(kSnippet, &snippet_str)) |
| 56 snippet->set_snippet(snippet_str); | 57 snippet->set_snippet(snippet_str); |
| 57 int creation_timestamp; | 58 int creation_timestamp; |
| 58 if (dict.GetInteger(kPublishDate, &creation_timestamp)) { | 59 if (dict.GetInteger(kPublishDate, &creation_timestamp)) { |
| 59 snippet->set_publish_date(base::Time::UnixEpoch() + | 60 snippet->set_publish_date(base::Time::UnixEpoch() + |
| 60 base::TimeDelta::FromSeconds(creation_timestamp)); | 61 base::TimeDelta::FromSeconds(creation_timestamp)); |
| 61 } | 62 } |
| 62 // TODO: Dates in json? | 63 int expiry_timestamp; |
| 64 if (dict.GetInteger(kExpiryDate, &expiry_timestamp)) { |
| 65 snippet->set_expiry_date(base::Time::UnixEpoch() + |
| 66 base::TimeDelta::FromSeconds(expiry_timestamp)); |
| 67 } |
| 63 | 68 |
| 64 return snippet; | 69 return snippet; |
| 65 } | 70 } |
| 66 | 71 |
| 67 scoped_ptr<base::DictionaryValue> NTPSnippet::ToDictionary() const { | 72 scoped_ptr<base::DictionaryValue> NTPSnippet::ToDictionary() const { |
| 68 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); | 73 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); |
| 69 | 74 |
| 70 dict->SetString(kUrl, url_.spec()); | 75 dict->SetString(kUrl, url_.spec()); |
| 71 if (!site_title_.empty()) | 76 if (!site_title_.empty()) |
| 72 dict->SetString(kSiteTitle, site_title_); | 77 dict->SetString(kSiteTitle, site_title_); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 84 } | 89 } |
| 85 if (!expiry_date_.is_null()) { | 90 if (!expiry_date_.is_null()) { |
| 86 dict->SetInteger(kExpiryDate, | 91 dict->SetInteger(kExpiryDate, |
| 87 (expiry_date_ - base::Time::UnixEpoch()).InSeconds()); | 92 (expiry_date_ - base::Time::UnixEpoch()).InSeconds()); |
| 88 } | 93 } |
| 89 | 94 |
| 90 return dict; | 95 return dict; |
| 91 } | 96 } |
| 92 | 97 |
| 93 } // namespace ntp_snippets | 98 } // namespace ntp_snippets |
| OLD | NEW |