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

Side by Side Diff: components/search_provider_logos/logo_tracker.cc

Issue 1066923002: [LogoTracker] Correct fingerprint append in async parameter. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix tests and comment nits Created 5 years, 8 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/search_provider_logos/logo_tracker.h" 5 #include "components/search_provider_logos/logo_tracker.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/task_runner_util.h" 10 #include "base/task_runner_util.h"
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 LogoTracker::~LogoTracker() { 82 LogoTracker::~LogoTracker() {
83 ReturnToIdle(); 83 ReturnToIdle();
84 file_task_runner_->PostTask( 84 file_task_runner_->PostTask(
85 FROM_HERE, base::Bind(&DeleteLogoCacheOnFileThread, logo_cache_)); 85 FROM_HERE, base::Bind(&DeleteLogoCacheOnFileThread, logo_cache_));
86 logo_cache_ = NULL; 86 logo_cache_ = NULL;
87 } 87 }
88 88
89 void LogoTracker::SetServerAPI( 89 void LogoTracker::SetServerAPI(
90 const GURL& logo_url, 90 const GURL& logo_url,
91 const ParseLogoResponse& parse_logo_response_func, 91 const ParseLogoResponse& parse_logo_response_func,
92 const AppendFingerprintToLogoURL& append_fingerprint_func) { 92 const AppendQueryparamsToLogoURL& append_queryparams_func,
93 bool wants_cta) {
93 if (logo_url == logo_url_) 94 if (logo_url == logo_url_)
94 return; 95 return;
95 96
96 ReturnToIdle(); 97 ReturnToIdle();
97 98
98 logo_url_ = logo_url; 99 logo_url_ = logo_url;
99 parse_logo_response_func_ = parse_logo_response_func; 100 parse_logo_response_func_ = parse_logo_response_func;
100 append_fingerprint_func_ = append_fingerprint_func; 101 append_queryparams_func_ = append_queryparams_func;
102 wants_cta_ = wants_cta;
101 } 103 }
102 104
103 void LogoTracker::GetLogo(LogoObserver* observer) { 105 void LogoTracker::GetLogo(LogoObserver* observer) {
104 DCHECK(!logo_url_.is_empty()); 106 DCHECK(!logo_url_.is_empty());
105 logo_observers_.AddObserver(observer); 107 logo_observers_.AddObserver(observer);
106 108
107 if (is_idle_) { 109 if (is_idle_) {
108 is_idle_ = false; 110 is_idle_ = false;
109 base::PostTaskAndReplyWithResult( 111 base::PostTaskAndReplyWithResult(
110 file_task_runner_.get(), 112 file_task_runner_.get(),
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 base::Bind(&LogoCache::UpdateCachedLogoMetadata, 194 base::Bind(&LogoCache::UpdateCachedLogoMetadata,
193 base::Unretained(logo_cache_), 195 base::Unretained(logo_cache_),
194 metadata)); 196 metadata));
195 } 197 }
196 198
197 void LogoTracker::FetchLogo() { 199 void LogoTracker::FetchLogo() {
198 DCHECK(!fetcher_); 200 DCHECK(!fetcher_);
199 DCHECK(!is_idle_); 201 DCHECK(!is_idle_);
200 202
201 GURL url; 203 GURL url;
204 std::string fingerprint;
202 if (cached_logo_ && !cached_logo_->metadata.fingerprint.empty() && 205 if (cached_logo_ && !cached_logo_->metadata.fingerprint.empty() &&
203 cached_logo_->metadata.expiration_time >= clock_->Now()) { 206 cached_logo_->metadata.expiration_time >= clock_->Now()) {
204 url = append_fingerprint_func_.Run(logo_url_, 207 fingerprint = cached_logo_->metadata.fingerprint;
205 cached_logo_->metadata.fingerprint);
206 } else {
207 url = logo_url_;
208 } 208 }
209 url = append_queryparams_func_.Run(logo_url_, fingerprint, wants_cta_);
209 210
210 fetcher_.reset(net::URLFetcher::Create(url, net::URLFetcher::GET, this)); 211 fetcher_.reset(net::URLFetcher::Create(url, net::URLFetcher::GET, this));
211 fetcher_->SetRequestContext(request_context_getter_.get()); 212 fetcher_->SetRequestContext(request_context_getter_.get());
212 fetcher_->Start(); 213 fetcher_->Start();
213 } 214 }
214 215
215 void LogoTracker::OnFreshLogoParsed(scoped_ptr<EncodedLogo> logo) { 216 void LogoTracker::OnFreshLogoParsed(scoped_ptr<EncodedLogo> logo) {
216 DCHECK(!is_idle_); 217 DCHECK(!is_idle_);
217 218
218 if (logo) 219 if (logo)
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 void LogoTracker::OnURLFetchDownloadProgress(const net::URLFetcher* source, 294 void LogoTracker::OnURLFetchDownloadProgress(const net::URLFetcher* source,
294 int64 current, 295 int64 current,
295 int64 total) { 296 int64 total) {
296 if (total > kMaxDownloadBytes || current > kMaxDownloadBytes) { 297 if (total > kMaxDownloadBytes || current > kMaxDownloadBytes) {
297 LOG(WARNING) << "Search provider logo exceeded download size limit"; 298 LOG(WARNING) << "Search provider logo exceeded download size limit";
298 ReturnToIdle(); 299 ReturnToIdle();
299 } 300 }
300 } 301 }
301 302
302 } // namespace search_provider_logos 303 } // namespace search_provider_logos
OLDNEW
« no previous file with comments | « components/search_provider_logos/logo_tracker.h ('k') | components/search_provider_logos/logo_tracker_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698