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

Side by Side Diff: components/ntp_snippets/ntp_snippets_service.cc

Issue 1997473004: Snippets are enabled when search suggestions are enabled. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 7 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 unified diff | Download patch
OLDNEW
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 <algorithm> 7 #include <algorithm>
8 #include <iterator> 8 #include <iterator>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 void WrapImageFetchedCallback( 179 void WrapImageFetchedCallback(
180 const NTPSnippetsService::ImageFetchedCallback& callback, 180 const NTPSnippetsService::ImageFetchedCallback& callback,
181 const GURL& snippet_id_url, 181 const GURL& snippet_id_url,
182 const gfx::Image& image) { 182 const gfx::Image& image) {
183 callback.Run(snippet_id_url.spec(), image); 183 callback.Run(snippet_id_url.spec(), image);
184 } 184 }
185 185
186 } // namespace 186 } // namespace
187 187
188 NTPSnippetsService::NTPSnippetsService( 188 NTPSnippetsService::NTPSnippetsService(
189 bool enabled,
189 PrefService* pref_service, 190 PrefService* pref_service,
190 sync_driver::SyncService* sync_service, 191 sync_driver::SyncService* sync_service,
191 SuggestionsService* suggestions_service, 192 SuggestionsService* suggestions_service,
192 scoped_refptr<base::SequencedTaskRunner> file_task_runner, 193 scoped_refptr<base::SequencedTaskRunner> file_task_runner,
193 const std::string& application_language_code, 194 const std::string& application_language_code,
194 NTPSnippetsScheduler* scheduler, 195 NTPSnippetsScheduler* scheduler,
195 std::unique_ptr<NTPSnippetsFetcher> snippets_fetcher, 196 std::unique_ptr<NTPSnippetsFetcher> snippets_fetcher,
196 std::unique_ptr<ImageFetcher> image_fetcher) 197 std::unique_ptr<ImageFetcher> image_fetcher)
197 : state_(State::NOT_INITED), 198 : state_(State::INITED),
198 enabled_(false), 199 enabled_(enabled),
199 pref_service_(pref_service), 200 pref_service_(pref_service),
200 sync_service_(sync_service), 201 sync_service_(sync_service),
201 sync_service_observer_(this), 202 sync_service_observer_(this),
202 suggestions_service_(suggestions_service), 203 suggestions_service_(suggestions_service),
203 file_task_runner_(file_task_runner), 204 file_task_runner_(file_task_runner),
204 application_language_code_(application_language_code), 205 application_language_code_(application_language_code),
205 scheduler_(scheduler), 206 scheduler_(scheduler),
206 snippets_fetcher_(std::move(snippets_fetcher)), 207 snippets_fetcher_(std::move(snippets_fetcher)),
207 image_fetcher_(std::move(image_fetcher)) { 208 image_fetcher_(std::move(image_fetcher)) {
208 snippets_fetcher_->SetCallback(base::Bind( 209 snippets_fetcher_->SetCallback(base::Bind(
209 &NTPSnippetsService::OnFetchFinished, base::Unretained(this))); 210 &NTPSnippetsService::OnFetchFinished, base::Unretained(this)));
210 211
211 // |sync_service_| can be null in tests or if sync is disabled. 212 // |sync_service_| can be null in tests or if sync is disabled.
212 if (sync_service_) 213 if (sync_service_)
213 sync_service_observer_.Add(sync_service_); 214 sync_service_observer_.Add(sync_service_);
214 }
215 215
216 NTPSnippetsService::~NTPSnippetsService() {
217 DCHECK(state_ == State::NOT_INITED || state_ == State::SHUT_DOWN);
218 }
219
220 // static
221 void NTPSnippetsService::RegisterProfilePrefs(PrefRegistrySimple* registry) {
222 registry->RegisterListPref(prefs::kSnippets);
223 registry->RegisterListPref(prefs::kDiscardedSnippets);
224 registry->RegisterListPref(prefs::kSnippetHosts);
225 }
226
227 void NTPSnippetsService::Init(bool enabled) {
228 DCHECK(state_ == State::NOT_INITED);
229 state_ = State::INITED;
230
231 enabled_ = enabled;
232 if (enabled_) { 216 if (enabled_) {
233 // |suggestions_service_| can be null in tests. 217 // |suggestions_service_| can be null in tests.
234 if (snippets_fetcher_->UsesHostRestrictions() && suggestions_service_) { 218 if (snippets_fetcher_->UsesHostRestrictions() && suggestions_service_) {
235 suggestions_service_subscription_ = suggestions_service_->AddCallback( 219 suggestions_service_subscription_ = suggestions_service_->AddCallback(
236 base::Bind(&NTPSnippetsService::OnSuggestionsChanged, 220 base::Bind(&NTPSnippetsService::OnSuggestionsChanged,
237 base::Unretained(this))); 221 base::Unretained(this)));
238 } 222 }
239 223
240 // Get any existing snippets immediately from prefs. 224 // Get any existing snippets immediately from prefs.
241 LoadDiscardedSnippetsFromPrefs(); 225 LoadDiscardedSnippetsFromPrefs();
242 LoadSnippetsFromPrefs(); 226 LoadSnippetsFromPrefs();
243 227
244 // If we don't have any snippets yet, start a fetch. 228 // If we don't have any snippets yet, start a fetch.
245 if (snippets_.empty()) 229 if (snippets_.empty())
246 FetchSnippets(); 230 FetchSnippets();
247 } 231 }
248 232
249 RescheduleFetching(); 233 RescheduleFetching();
250 } 234 }
251 235
236 NTPSnippetsService::~NTPSnippetsService() {
237 DCHECK(state_ == State::SHUT_DOWN);
238 }
239
240 // static
241 void NTPSnippetsService::RegisterProfilePrefs(PrefRegistrySimple* registry) {
242 registry->RegisterListPref(prefs::kSnippets);
243 registry->RegisterListPref(prefs::kDiscardedSnippets);
244 registry->RegisterListPref(prefs::kSnippetHosts);
245 }
246
252 void NTPSnippetsService::Shutdown() { 247 void NTPSnippetsService::Shutdown() {
253 DCHECK(state_ == State::INITED); 248 DCHECK(state_ == State::INITED);
254 state_ = State::SHUT_DOWN; 249 state_ = State::SHUT_DOWN;
255 250
256 FOR_EACH_OBSERVER(NTPSnippetsServiceObserver, observers_, 251 FOR_EACH_OBSERVER(NTPSnippetsServiceObserver, observers_,
257 NTPSnippetsServiceShutdown()); 252 NTPSnippetsServiceShutdown());
258 suggestions_service_subscription_.reset(); 253 suggestions_service_subscription_.reset();
259 enabled_ = false; 254 enabled_ = false;
260 } 255 }
261 256
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
578 bool NTPSnippetsService::IsSyncStateIncompatible() { 573 bool NTPSnippetsService::IsSyncStateIncompatible() {
579 if (!sync_service_ || !sync_service_->CanSyncStart()) 574 if (!sync_service_ || !sync_service_->CanSyncStart())
580 return true; 575 return true;
581 if (!sync_service_->IsSyncActive() || !sync_service_->ConfigurationDone()) 576 if (!sync_service_->IsSyncActive() || !sync_service_->ConfigurationDone())
582 return false; // Sync service is not initialized, yet not disabled. 577 return false; // Sync service is not initialized, yet not disabled.
583 return !sync_service_->GetActiveDataTypes().Has( 578 return !sync_service_->GetActiveDataTypes().Has(
584 syncer::HISTORY_DELETE_DIRECTIVES); 579 syncer::HISTORY_DELETE_DIRECTIVES);
585 } 580 }
586 581
587 } // namespace ntp_snippets 582 } // namespace ntp_snippets
OLDNEW
« no previous file with comments | « components/ntp_snippets/ntp_snippets_service.h ('k') | components/ntp_snippets/ntp_snippets_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698