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

Side by Side Diff: chrome/browser/safe_browsing/certificate_reporting_service.cc

Issue 2605403002: Fix flaky CertificateReportingService browser tests. (Closed)
Patch Set: Style Created 3 years, 11 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include "chrome/browser/safe_browsing/certificate_reporting_service.h" 4 #include "chrome/browser/safe_browsing/certificate_reporting_service.h"
5 5
6 #include "base/bind_helpers.h" 6 #include "base/bind_helpers.h"
7 #include "base/metrics/histogram_macros.h" 7 #include "base/metrics/histogram_macros.h"
8 #include "base/metrics/sparse_histogram.h" 8 #include "base/metrics/sparse_histogram.h"
9 #include "base/time/clock.h" 9 #include "base/time/clock.h"
10 #include "chrome/browser/browser_process.h" 10 #include "chrome/browser/browser_process.h"
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 } 160 }
161 161
162 CertificateReportingService::CertificateReportingService( 162 CertificateReportingService::CertificateReportingService(
163 safe_browsing::SafeBrowsingService* safe_browsing_service, 163 safe_browsing::SafeBrowsingService* safe_browsing_service,
164 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter, 164 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter,
165 Profile* profile, 165 Profile* profile,
166 uint8_t server_public_key[/* 32 */], 166 uint8_t server_public_key[/* 32 */],
167 uint32_t server_public_key_version, 167 uint32_t server_public_key_version,
168 size_t max_queued_report_count, 168 size_t max_queued_report_count,
169 base::TimeDelta max_report_age, 169 base::TimeDelta max_report_age,
170 base::Clock* clock) 170 base::Clock* clock,
171 const base::Callback<void()>& reset_callback)
171 : pref_service_(*profile->GetPrefs()), 172 : pref_service_(*profile->GetPrefs()),
172 url_request_context_(nullptr), 173 url_request_context_(nullptr),
173 max_queued_report_count_(max_queued_report_count), 174 max_queued_report_count_(max_queued_report_count),
174 max_report_age_(max_report_age), 175 max_report_age_(max_report_age),
175 clock_(clock), 176 clock_(clock),
177 reset_callback_(reset_callback),
176 server_public_key_(server_public_key), 178 server_public_key_(server_public_key),
177 server_public_key_version_(server_public_key_version) { 179 server_public_key_version_(server_public_key_version) {
178 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 180 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
179 DCHECK(clock_); 181 DCHECK(clock_);
180 // Subscribe to SafeBrowsing shutdown notifications. 182 // Subscribe to SafeBrowsing shutdown notifications.
181 safe_browsing_service_shutdown_subscription_ = 183 safe_browsing_service_shutdown_subscription_ =
182 safe_browsing_service->RegisterShutdownCallback(base::Bind( 184 safe_browsing_service->RegisterShutdownCallback(base::Bind(
183 &CertificateReportingService::Shutdown, base::Unretained(this))); 185 &CertificateReportingService::Shutdown, base::Unretained(this)));
184 186
185 // Subscribe to SafeBrowsing preference change notifications. 187 // Subscribe to SafeBrowsing preference change notifications.
186 safe_browsing_state_subscription_ = 188 safe_browsing_state_subscription_ =
187 safe_browsing_service->RegisterStateCallback( 189 safe_browsing_service->RegisterStateCallback(
188 base::Bind(&CertificateReportingService::OnPreferenceChanged, 190 base::Bind(&CertificateReportingService::OnPreferenceChanged,
189 base::Unretained(this))); 191 base::Unretained(this)));
190 192
191 content::BrowserThread::PostTask( 193 content::BrowserThread::PostTaskAndReply(
192 content::BrowserThread::IO, FROM_HERE, 194 content::BrowserThread::IO, FROM_HERE,
193 base::Bind(&CertificateReportingService::InitializeOnIOThread, 195 base::Bind(&CertificateReportingService::InitializeOnIOThread,
194 base::Unretained(this), true, url_request_context_getter, 196 base::Unretained(this), true, url_request_context_getter,
195 max_queued_report_count_, max_report_age_, clock_, 197 max_queued_report_count_, max_report_age_, clock_,
196 server_public_key_, server_public_key_version_)); 198 server_public_key_, server_public_key_version_),
199 reset_callback_);
197 } 200 }
198 201
199 CertificateReportingService::~CertificateReportingService() { 202 CertificateReportingService::~CertificateReportingService() {
200 DCHECK(!reporter_); 203 DCHECK(!reporter_);
201 } 204 }
202 205
203 void CertificateReportingService::Shutdown() { 206 void CertificateReportingService::Shutdown() {
204 // Shutdown will be called twice: Once after SafeBrowsing shuts down, and once 207 // Shutdown will be called twice: Once after SafeBrowsing shuts down, and once
205 // when all KeyedServices shut down. All calls after the first one are no-op. 208 // when all KeyedServices shut down. All calls after the first one are no-op.
206 url_request_context_ = nullptr; 209 url_request_context_ = nullptr;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 max_report_age, clock, server_public_key, 249 max_report_age, clock, server_public_key,
247 server_public_key_version); 250 server_public_key_version);
248 } 251 }
249 252
250 void CertificateReportingService::SetEnabled(bool enabled) { 253 void CertificateReportingService::SetEnabled(bool enabled) {
251 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 254 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
252 // Don't reset if the service is already shut down. 255 // Don't reset if the service is already shut down.
253 if (!url_request_context_) 256 if (!url_request_context_)
254 return; 257 return;
255 258
256 content::BrowserThread::PostTask( 259 content::BrowserThread::PostTaskAndReply(
257 content::BrowserThread::IO, FROM_HERE, 260 content::BrowserThread::IO, FROM_HERE,
258 base::Bind(&CertificateReportingService::ResetOnIOThread, 261 base::Bind(&CertificateReportingService::ResetOnIOThread,
259 base::Unretained(this), enabled, url_request_context_, 262 base::Unretained(this), enabled, url_request_context_,
260 max_queued_report_count_, max_report_age_, clock_, 263 max_queued_report_count_, max_report_age_, clock_,
261 server_public_key_, server_public_key_version_)); 264 server_public_key_, server_public_key_version_),
265 reset_callback_);
262 } 266 }
263 267
264 CertificateReportingService::Reporter* 268 CertificateReportingService::Reporter*
265 CertificateReportingService::GetReporterForTesting() const { 269 CertificateReportingService::GetReporterForTesting() const {
266 return reporter_.get(); 270 return reporter_.get();
267 } 271 }
268 272
269 // static 273 // static
270 GURL CertificateReportingService::GetReportingURLForTesting() { 274 GURL CertificateReportingService::GetReportingURLForTesting() {
271 return GURL(kExtendedReportingUploadUrl); 275 return GURL(kExtendedReportingUploadUrl);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 } 310 }
307 311
308 void CertificateReportingService::OnPreferenceChanged() { 312 void CertificateReportingService::OnPreferenceChanged() {
309 safe_browsing::SafeBrowsingService* safe_browsing_service_ = 313 safe_browsing::SafeBrowsingService* safe_browsing_service_ =
310 g_browser_process->safe_browsing_service(); 314 g_browser_process->safe_browsing_service();
311 const bool enabled = safe_browsing_service_ && 315 const bool enabled = safe_browsing_service_ &&
312 safe_browsing_service_->enabled_by_prefs() && 316 safe_browsing_service_->enabled_by_prefs() &&
313 safe_browsing::IsExtendedReportingEnabled(pref_service_); 317 safe_browsing::IsExtendedReportingEnabled(pref_service_);
314 SetEnabled(enabled); 318 SetEnabled(enabled);
315 } 319 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698