OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/suggestions/suggestions_service_impl.h" | 5 #include "components/suggestions/suggestions_service_impl.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/feature_list.h" | 10 #include "base/feature_list.h" |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 thumbnail_manager_(std::move(thumbnail_manager)), | 202 thumbnail_manager_(std::move(thumbnail_manager)), |
203 blacklist_store_(std::move(blacklist_store)), | 203 blacklist_store_(std::move(blacklist_store)), |
204 scheduling_delay_(TimeDelta::FromSeconds(kDefaultSchedulingDelaySec)), | 204 scheduling_delay_(TimeDelta::FromSeconds(kDefaultSchedulingDelaySec)), |
205 token_fetcher_(new AccessTokenFetcher(signin_manager, token_service)), | 205 token_fetcher_(new AccessTokenFetcher(signin_manager, token_service)), |
206 weak_ptr_factory_(this) { | 206 weak_ptr_factory_(this) { |
207 // |sync_service_| is null if switches::kDisableSync is set (tests use that). | 207 // |sync_service_| is null if switches::kDisableSync is set (tests use that). |
208 if (sync_service_) | 208 if (sync_service_) |
209 sync_service_observer_.Add(sync_service_); | 209 sync_service_observer_.Add(sync_service_); |
210 // Immediately get the current sync state, so we'll flush the cache if | 210 // Immediately get the current sync state, so we'll flush the cache if |
211 // necessary. | 211 // necessary. |
212 OnStateChanged(); | 212 OnStateChanged(sync_service_); |
213 } | 213 } |
214 | 214 |
215 SuggestionsServiceImpl::~SuggestionsServiceImpl() {} | 215 SuggestionsServiceImpl::~SuggestionsServiceImpl() {} |
216 | 216 |
217 bool SuggestionsServiceImpl::FetchSuggestionsData() { | 217 bool SuggestionsServiceImpl::FetchSuggestionsData() { |
218 DCHECK(thread_checker_.CalledOnValidThread()); | 218 DCHECK(thread_checker_.CalledOnValidThread()); |
219 // If sync state allows, issue a network request to refresh the suggestions. | 219 // If sync state allows, issue a network request to refresh the suggestions. |
220 if (GetSyncState(sync_service_) != INITIALIZED_ENABLED_HISTORY) | 220 if (GetSyncState(sync_service_) != INITIALIZED_ENABLED_HISTORY) |
221 return false; | 221 return false; |
222 IssueRequestIfNoneOngoing(BuildSuggestionsURL()); | 222 IssueRequestIfNoneOngoing(BuildSuggestionsURL()); |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
341 net::EscapeQueryParamValue(candidate_url.spec(), true)); | 341 net::EscapeQueryParamValue(candidate_url.spec(), true)); |
342 } | 342 } |
343 | 343 |
344 // static | 344 // static |
345 GURL SuggestionsServiceImpl::BuildSuggestionsBlacklistClearURL() { | 345 GURL SuggestionsServiceImpl::BuildSuggestionsBlacklistClearURL() { |
346 return GURL(base::StringPrintf(kSuggestionsBlacklistClearURLFormat, | 346 return GURL(base::StringPrintf(kSuggestionsBlacklistClearURLFormat, |
347 GetGoogleBaseURL().spec().c_str(), | 347 GetGoogleBaseURL().spec().c_str(), |
348 kDeviceType)); | 348 kDeviceType)); |
349 } | 349 } |
350 | 350 |
351 void SuggestionsServiceImpl::OnStateChanged() { | 351 void SuggestionsServiceImpl::OnStateChanged(syncer::SyncService* sync) { |
352 switch (GetSyncState(sync_service_)) { | 352 switch (GetSyncState(sync_service_)) { |
353 case SYNC_OR_HISTORY_SYNC_DISABLED: | 353 case SYNC_OR_HISTORY_SYNC_DISABLED: |
354 // Cancel any ongoing request, to stop interacting with the server. | 354 // Cancel any ongoing request, to stop interacting with the server. |
355 pending_request_.reset(nullptr); | 355 pending_request_.reset(nullptr); |
356 suggestions_store_->ClearSuggestions(); | 356 suggestions_store_->ClearSuggestions(); |
357 callback_list_.Notify(SuggestionsProfile()); | 357 callback_list_.Notify(SuggestionsProfile()); |
358 break; | 358 break; |
359 case NOT_INITIALIZED_ENABLED: | 359 case NOT_INITIALIZED_ENABLED: |
360 // Keep the cache (if any), but don't refresh. | 360 // Keep the cache (if any), but don't refresh. |
361 break; | 361 break; |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
558 scheduling_delay_ = TimeDelta::FromSeconds(kDefaultSchedulingDelaySec); | 558 scheduling_delay_ = TimeDelta::FromSeconds(kDefaultSchedulingDelaySec); |
559 } else { | 559 } else { |
560 TimeDelta candidate_delay = | 560 TimeDelta candidate_delay = |
561 scheduling_delay_ * kSchedulingBackoffMultiplier; | 561 scheduling_delay_ * kSchedulingBackoffMultiplier; |
562 if (candidate_delay < TimeDelta::FromSeconds(kSchedulingMaxDelaySec)) | 562 if (candidate_delay < TimeDelta::FromSeconds(kSchedulingMaxDelaySec)) |
563 scheduling_delay_ = candidate_delay; | 563 scheduling_delay_ = candidate_delay; |
564 } | 564 } |
565 } | 565 } |
566 | 566 |
567 } // namespace suggestions | 567 } // namespace suggestions |
OLD | NEW |