| 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_snippets_service.h" | 5 #include "components/ntp_snippets/ntp_snippets_service.h" |
| 6 | 6 |
| 7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
| 8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
| 9 #include "base/json/json_string_value_serializer.h" | 9 #include "base/json/json_string_value_serializer.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 snippets_fetcher_(std::move(snippets_fetcher)), | 41 snippets_fetcher_(std::move(snippets_fetcher)), |
| 42 weak_ptr_factory_(this) { | 42 weak_ptr_factory_(this) { |
| 43 snippets_fetcher_callback_ = snippets_fetcher_->AddCallback( | 43 snippets_fetcher_callback_ = snippets_fetcher_->AddCallback( |
| 44 base::Bind(&NTPSnippetsService::OnSnippetsDownloaded, | 44 base::Bind(&NTPSnippetsService::OnSnippetsDownloaded, |
| 45 weak_ptr_factory_.GetWeakPtr())); | 45 weak_ptr_factory_.GetWeakPtr())); |
| 46 } | 46 } |
| 47 | 47 |
| 48 NTPSnippetsService::~NTPSnippetsService() {} | 48 NTPSnippetsService::~NTPSnippetsService() {} |
| 49 | 49 |
| 50 void NTPSnippetsService::Init(bool enabled) { | 50 void NTPSnippetsService::Init(bool enabled) { |
| 51 // If enabled, get snippets immediately. If we've downloaded them before, |
| 52 // this will just read from disk. |
| 53 if (enabled) |
| 54 FetchSnippets(false); |
| 55 |
| 51 // The scheduler only exists on Android so far, it's null on other platforms. | 56 // The scheduler only exists on Android so far, it's null on other platforms. |
| 52 if (!scheduler_) | 57 if (!scheduler_) |
| 53 return; | 58 return; |
| 54 | 59 |
| 55 if (enabled) | 60 if (enabled) |
| 56 scheduler_->Schedule(kDefaultFetchingIntervalSeconds); | 61 scheduler_->Schedule(kDefaultFetchingIntervalSeconds); |
| 57 else | 62 else |
| 58 scheduler_->Unschedule(); | 63 scheduler_->Unschedule(); |
| 59 } | 64 } |
| 60 | 65 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 80 | 85 |
| 81 void NTPSnippetsService::OnFileReadDone(const std::string* json, bool success) { | 86 void NTPSnippetsService::OnFileReadDone(const std::string* json, bool success) { |
| 82 if (!success) | 87 if (!success) |
| 83 return; | 88 return; |
| 84 | 89 |
| 85 DCHECK(json); | 90 DCHECK(json); |
| 86 LoadFromJSONString(*json); | 91 LoadFromJSONString(*json); |
| 87 } | 92 } |
| 88 | 93 |
| 89 bool NTPSnippetsService::LoadFromJSONString(const std::string& str) { | 94 bool NTPSnippetsService::LoadFromJSONString(const std::string& str) { |
| 95 snippets_.clear(); |
| 96 |
| 90 JSONStringValueDeserializer deserializer(str); | 97 JSONStringValueDeserializer deserializer(str); |
| 91 int error_code; | 98 int error_code; |
| 92 std::string error_message; | 99 std::string error_message; |
| 93 | 100 |
| 94 scoped_ptr<base::Value> deserialized = | 101 scoped_ptr<base::Value> deserialized = |
| 95 deserializer.Deserialize(&error_code, &error_message); | 102 deserializer.Deserialize(&error_code, &error_message); |
| 96 if (!deserialized) | 103 if (!deserialized) |
| 97 return false; | 104 return false; |
| 98 | 105 |
| 99 const base::DictionaryValue* top_dict = NULL; | 106 const base::DictionaryValue* top_dict = NULL; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 129 const base::FilePath& download_path) { | 136 const base::FilePath& download_path) { |
| 130 std::string* downloaded_data = new std::string; | 137 std::string* downloaded_data = new std::string; |
| 131 base::PostTaskAndReplyWithResult( | 138 base::PostTaskAndReplyWithResult( |
| 132 file_task_runner_.get(), FROM_HERE, | 139 file_task_runner_.get(), FROM_HERE, |
| 133 base::Bind(&ReadFileToString, download_path, downloaded_data), | 140 base::Bind(&ReadFileToString, download_path, downloaded_data), |
| 134 base::Bind(&NTPSnippetsService::OnFileReadDone, | 141 base::Bind(&NTPSnippetsService::OnFileReadDone, |
| 135 weak_ptr_factory_.GetWeakPtr(), base::Owned(downloaded_data))); | 142 weak_ptr_factory_.GetWeakPtr(), base::Owned(downloaded_data))); |
| 136 } | 143 } |
| 137 | 144 |
| 138 } // namespace ntp_snippets | 145 } // namespace ntp_snippets |
| OLD | NEW |