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

Side by Side Diff: components/suggestions/suggestions_service.cc

Issue 423133003: [Suggestions Service] Add support for expiring the SuggestionsStore (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Coding style fixes and refactoring Created 6 years, 4 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 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.h" 5 #include "components/suggestions/suggestions_service.h"
6 6
7 #include <sstream> 7 #include <sstream>
8 #include <string> 8 #include <string>
9 9
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 // Handle a successful blacklisting. 297 // Handle a successful blacklisting.
298 GURL blacklisted_url; 298 GURL blacklisted_url;
299 if (GetBlacklistedUrl(*source, &blacklisted_url)) { 299 if (GetBlacklistedUrl(*source, &blacklisted_url)) {
300 blacklist_store_->RemoveUrl(blacklisted_url); 300 blacklist_store_->RemoveUrl(blacklisted_url);
301 } 301 }
302 302
303 std::string suggestions_data; 303 std::string suggestions_data;
304 bool success = request->GetResponseAsString(&suggestions_data); 304 bool success = request->GetResponseAsString(&suggestions_data);
305 DCHECK(success); 305 DCHECK(success);
306 306
307 // Compute suggestions, and dispatch then to requestors. On error still 307 // Compute suggestions, and dispatch them to requestors. On error still
308 // dispatch empty suggestions. 308 // dispatch empty suggestions.
309 SuggestionsProfile suggestions; 309 SuggestionsProfile suggestions;
310 if (suggestions_data.empty()) { 310 if (suggestions_data.empty()) {
311 LogResponseState(RESPONSE_EMPTY); 311 LogResponseState(RESPONSE_EMPTY);
312 suggestions_store_->ClearSuggestions(); 312 suggestions_store_->ClearSuggestions();
313 } else if (suggestions.ParseFromString(suggestions_data)) { 313 } else if (suggestions.ParseFromString(suggestions_data)) {
314 LogResponseState(RESPONSE_VALID); 314 LogResponseState(RESPONSE_VALID);
315 thumbnail_manager_->Initialize(suggestions); 315 thumbnail_manager_->Initialize(suggestions);
316
317 int64 now_usec = (base::Time::NowFromSystemTime() - base::Time::UnixEpoch())
318 .ToInternalValue();
319 int64 timestamp_usec = now_usec + default_expiry_usec;
320 SetDefaultExpiryTimestamps(&suggestions, timestamp_usec);
316 suggestions_store_->StoreSuggestions(suggestions); 321 suggestions_store_->StoreSuggestions(suggestions);
317 } else { 322 } else {
318 LogResponseState(RESPONSE_INVALID); 323 LogResponseState(RESPONSE_INVALID);
319 suggestions_store_->LoadSuggestions(&suggestions); 324 suggestions_store_->LoadSuggestions(&suggestions);
320 } 325 }
321 326
322 FilterAndServe(&suggestions); 327 FilterAndServe(&suggestions);
323 ScheduleBlacklistUpload(true); 328 ScheduleBlacklistUpload(true);
324 } 329 }
325 330
Mathieu 2014/08/04 14:39:10 remove extra new line
gayane -on leave until 09-2017 2014/08/04 16:34:57 Done.
331
332 void SuggestionsService::SetDefaultExpiryTimestamps(
333 SuggestionsProfile* suggestions, int64 default_timestamp_usec) {
334
Mathieu 2014/08/04 14:39:10 remove extra line
gayane -on leave until 09-2017 2014/08/04 16:34:57 Done.
335 for (int i = 0; i < suggestions->suggestions_size(); ++i) {
336 ChromeSuggestion* suggestion = suggestions->mutable_suggestions(i);
337 if (!suggestion->has_expiry_ts()){
338 suggestion->set_expiry_ts(default_timestamp_usec);
Mathieu 2014/08/04 14:39:10 indent 2 less
gayane -on leave until 09-2017 2014/08/04 16:34:57 Done.
339 }
340 }
341 }
342
326 void SuggestionsService::Shutdown() { 343 void SuggestionsService::Shutdown() {
327 // Cancel pending request and timeout closure, then serve existing requestors 344 // Cancel pending request and timeout closure, then serve existing requestors
328 // from cache. 345 // from cache.
329 pending_request_.reset(NULL); 346 pending_request_.reset(NULL);
330 pending_timeout_closure_.reset(NULL); 347 pending_timeout_closure_.reset(NULL);
331 ServeFromCache(); 348 ServeFromCache();
332 } 349 }
333 350
334 void SuggestionsService::ServeFromCache() { 351 void SuggestionsService::ServeFromCache() {
335 SuggestionsProfile suggestions; 352 SuggestionsProfile suggestions;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 if (last_request_successful) { 396 if (last_request_successful) {
380 blacklist_delay_sec_ = kBlacklistDefaultDelaySec; 397 blacklist_delay_sec_ = kBlacklistDefaultDelaySec;
381 } else { 398 } else {
382 int candidate_delay = blacklist_delay_sec_ * kBlacklistBackoffMultiplier; 399 int candidate_delay = blacklist_delay_sec_ * kBlacklistBackoffMultiplier;
383 if (candidate_delay < kBlacklistMaxDelaySec) 400 if (candidate_delay < kBlacklistMaxDelaySec)
384 blacklist_delay_sec_ = candidate_delay; 401 blacklist_delay_sec_ = candidate_delay;
385 } 402 }
386 } 403 }
387 404
388 } // namespace suggestions 405 } // namespace suggestions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698