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 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 suggestions_store_(std::move(suggestions_store)), | 153 suggestions_store_(std::move(suggestions_store)), |
154 thumbnail_manager_(std::move(thumbnail_manager)), | 154 thumbnail_manager_(std::move(thumbnail_manager)), |
155 blacklist_store_(std::move(blacklist_store)), | 155 blacklist_store_(std::move(blacklist_store)), |
156 scheduling_delay_(TimeDelta::FromSeconds(kDefaultSchedulingDelaySec)), | 156 scheduling_delay_(TimeDelta::FromSeconds(kDefaultSchedulingDelaySec)), |
157 weak_ptr_factory_(this) { | 157 weak_ptr_factory_(this) { |
158 // |sync_service_| is null if switches::kDisableSync is set (tests use that). | 158 // |sync_service_| is null if switches::kDisableSync is set (tests use that). |
159 if (sync_service_) | 159 if (sync_service_) |
160 sync_service_observer_.Add(sync_service_); | 160 sync_service_observer_.Add(sync_service_); |
161 // Immediately get the current sync state, so we'll flush the cache if | 161 // Immediately get the current sync state, so we'll flush the cache if |
162 // necessary. | 162 // necessary. |
163 OnStateChanged(); | 163 OnStateChanged(sync_service_); |
164 } | 164 } |
165 | 165 |
166 SuggestionsServiceImpl::~SuggestionsServiceImpl() {} | 166 SuggestionsServiceImpl::~SuggestionsServiceImpl() {} |
167 | 167 |
168 bool SuggestionsServiceImpl::FetchSuggestionsData() { | 168 bool SuggestionsServiceImpl::FetchSuggestionsData() { |
169 DCHECK(thread_checker_.CalledOnValidThread()); | 169 DCHECK(thread_checker_.CalledOnValidThread()); |
170 // If sync state allows, issue a network request to refresh the suggestions. | 170 // If sync state allows, issue a network request to refresh the suggestions. |
171 if (GetSyncState(sync_service_) != INITIALIZED_ENABLED_HISTORY) | 171 if (GetSyncState(sync_service_) != INITIALIZED_ENABLED_HISTORY) |
172 return false; | 172 return false; |
173 IssueRequestIfNoneOngoing(BuildSuggestionsURL()); | 173 IssueRequestIfNoneOngoing(BuildSuggestionsURL()); |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 net::EscapeQueryParamValue(candidate_url.spec(), true)); | 292 net::EscapeQueryParamValue(candidate_url.spec(), true)); |
293 } | 293 } |
294 | 294 |
295 // static | 295 // static |
296 GURL SuggestionsServiceImpl::BuildSuggestionsBlacklistClearURL() { | 296 GURL SuggestionsServiceImpl::BuildSuggestionsBlacklistClearURL() { |
297 return GURL(base::StringPrintf(kSuggestionsBlacklistClearURLFormat, | 297 return GURL(base::StringPrintf(kSuggestionsBlacklistClearURLFormat, |
298 GetGoogleBaseURL().spec().c_str(), | 298 GetGoogleBaseURL().spec().c_str(), |
299 kDeviceType)); | 299 kDeviceType)); |
300 } | 300 } |
301 | 301 |
302 void SuggestionsServiceImpl::OnStateChanged() { | 302 void SuggestionsServiceImpl::OnStateChanged(syncer::SyncService* sync) { |
303 switch (GetSyncState(sync_service_)) { | 303 switch (GetSyncState(sync_service_)) { |
304 case SYNC_OR_HISTORY_SYNC_DISABLED: | 304 case SYNC_OR_HISTORY_SYNC_DISABLED: |
305 // Cancel any ongoing request, to stop interacting with the server. | 305 // Cancel any ongoing request, to stop interacting with the server. |
306 pending_request_.reset(nullptr); | 306 pending_request_.reset(nullptr); |
307 suggestions_store_->ClearSuggestions(); | 307 suggestions_store_->ClearSuggestions(); |
308 callback_list_.Notify(SuggestionsProfile()); | 308 callback_list_.Notify(SuggestionsProfile()); |
309 break; | 309 break; |
310 case NOT_INITIALIZED_ENABLED: | 310 case NOT_INITIALIZED_ENABLED: |
311 // Keep the cache (if any), but don't refresh. | 311 // Keep the cache (if any), but don't refresh. |
312 break; | 312 break; |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
527 scheduling_delay_ = TimeDelta::FromSeconds(kDefaultSchedulingDelaySec); | 527 scheduling_delay_ = TimeDelta::FromSeconds(kDefaultSchedulingDelaySec); |
528 } else { | 528 } else { |
529 TimeDelta candidate_delay = | 529 TimeDelta candidate_delay = |
530 scheduling_delay_ * kSchedulingBackoffMultiplier; | 530 scheduling_delay_ * kSchedulingBackoffMultiplier; |
531 if (candidate_delay < TimeDelta::FromSeconds(kSchedulingMaxDelaySec)) | 531 if (candidate_delay < TimeDelta::FromSeconds(kSchedulingMaxDelaySec)) |
532 scheduling_delay_ = candidate_delay; | 532 scheduling_delay_ = candidate_delay; |
533 } | 533 } |
534 } | 534 } |
535 | 535 |
536 } // namespace suggestions | 536 } // namespace suggestions |
OLD | NEW |