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

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

Issue 1962013002: Adding a parameter that will be used to request a transparent doodle. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 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 #include <utility> 8 #include <utility>
9 9
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 ReturnToIdle(kDownloadOutcomeNotTracked); 85 ReturnToIdle(kDownloadOutcomeNotTracked);
86 file_task_runner_->PostTask( 86 file_task_runner_->PostTask(
87 FROM_HERE, base::Bind(&DeleteLogoCacheOnFileThread, logo_cache_)); 87 FROM_HERE, base::Bind(&DeleteLogoCacheOnFileThread, logo_cache_));
88 logo_cache_ = NULL; 88 logo_cache_ = NULL;
89 } 89 }
90 90
91 void LogoTracker::SetServerAPI( 91 void LogoTracker::SetServerAPI(
92 const GURL& logo_url, 92 const GURL& logo_url,
93 const ParseLogoResponse& parse_logo_response_func, 93 const ParseLogoResponse& parse_logo_response_func,
94 const AppendQueryparamsToLogoURL& append_queryparams_func, 94 const AppendQueryparamsToLogoURL& append_queryparams_func,
95 bool wants_cta) { 95 bool wants_cta,
96 bool transparent) {
96 if (logo_url == logo_url_) 97 if (logo_url == logo_url_)
97 return; 98 return;
98 99
99 ReturnToIdle(kDownloadOutcomeNotTracked); 100 ReturnToIdle(kDownloadOutcomeNotTracked);
100 101
101 logo_url_ = logo_url; 102 logo_url_ = logo_url;
102 parse_logo_response_func_ = parse_logo_response_func; 103 parse_logo_response_func_ = parse_logo_response_func;
103 append_queryparams_func_ = append_queryparams_func; 104 append_queryparams_func_ = append_queryparams_func;
104 wants_cta_ = wants_cta; 105 wants_cta_ = wants_cta;
106 transparent_ = transparent;
105 } 107 }
106 108
107 void LogoTracker::GetLogo(LogoObserver* observer) { 109 void LogoTracker::GetLogo(LogoObserver* observer) {
108 DCHECK(!logo_url_.is_empty()); 110 DCHECK(!logo_url_.is_empty());
109 logo_observers_.AddObserver(observer); 111 logo_observers_.AddObserver(observer);
110 112
111 if (is_idle_) { 113 if (is_idle_) {
112 is_idle_ = false; 114 is_idle_ = false;
113 base::PostTaskAndReplyWithResult( 115 base::PostTaskAndReplyWithResult(
114 file_task_runner_.get(), 116 file_task_runner_.get(),
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 void LogoTracker::FetchLogo() { 207 void LogoTracker::FetchLogo() {
206 DCHECK(!fetcher_); 208 DCHECK(!fetcher_);
207 DCHECK(!is_idle_); 209 DCHECK(!is_idle_);
208 210
209 GURL url; 211 GURL url;
210 std::string fingerprint; 212 std::string fingerprint;
211 if (cached_logo_ && !cached_logo_->metadata.fingerprint.empty() && 213 if (cached_logo_ && !cached_logo_->metadata.fingerprint.empty() &&
212 cached_logo_->metadata.expiration_time >= clock_->Now()) { 214 cached_logo_->metadata.expiration_time >= clock_->Now()) {
213 fingerprint = cached_logo_->metadata.fingerprint; 215 fingerprint = cached_logo_->metadata.fingerprint;
214 } 216 }
215 url = append_queryparams_func_.Run(logo_url_, fingerprint, wants_cta_); 217 url = append_queryparams_func_.Run(
218 logo_url_, fingerprint, wants_cta_, transparent_);
216 219
217 fetcher_ = net::URLFetcher::Create(url, net::URLFetcher::GET, this); 220 fetcher_ = net::URLFetcher::Create(url, net::URLFetcher::GET, this);
218 fetcher_->SetRequestContext(request_context_getter_.get()); 221 fetcher_->SetRequestContext(request_context_getter_.get());
219 fetcher_->Start(); 222 fetcher_->Start();
220 logo_download_start_time_ = base::TimeTicks::Now(); 223 logo_download_start_time_ = base::TimeTicks::Now();
221 } 224 }
222 225
223 void LogoTracker::OnFreshLogoParsed(bool* parsing_failed, 226 void LogoTracker::OnFreshLogoParsed(bool* parsing_failed,
224 std::unique_ptr<EncodedLogo> logo) { 227 std::unique_ptr<EncodedLogo> logo) {
225 DCHECK(!is_idle_); 228 DCHECK(!is_idle_);
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 void LogoTracker::OnURLFetchDownloadProgress(const net::URLFetcher* source, 327 void LogoTracker::OnURLFetchDownloadProgress(const net::URLFetcher* source,
325 int64_t current, 328 int64_t current,
326 int64_t total) { 329 int64_t total) {
327 if (total > kMaxDownloadBytes || current > kMaxDownloadBytes) { 330 if (total > kMaxDownloadBytes || current > kMaxDownloadBytes) {
328 LOG(WARNING) << "Search provider logo exceeded download size limit"; 331 LOG(WARNING) << "Search provider logo exceeded download size limit";
329 ReturnToIdle(DOWNLOAD_OUTCOME_DOWNLOAD_FAILED); 332 ReturnToIdle(DOWNLOAD_OUTCOME_DOWNLOAD_FAILED);
330 } 333 }
331 } 334 }
332 335
333 } // namespace search_provider_logos 336 } // 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