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

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

Issue 2314833002: Remove some uses of stl_util's STLDeleteContainerPointers. (Closed)
Patch Set: remove more Created 4 years, 3 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/safe_browsing/ping_manager.h" 5 #include "chrome/browser/safe_browsing/ping_manager.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
11 #include "base/stl_util.h"
12 #include "base/strings/string_util.h" 11 #include "base/strings/string_util.h"
13 #include "base/strings/stringprintf.h" 12 #include "base/strings/stringprintf.h"
14 #include "chrome/browser/safe_browsing/permission_reporter.h" 13 #include "chrome/browser/safe_browsing/permission_reporter.h"
15 #include "components/certificate_reporting/error_reporter.h" 14 #include "components/certificate_reporting/error_reporter.h"
16 #include "content/public/browser/browser_thread.h" 15 #include "content/public/browser/browser_thread.h"
17 #include "google_apis/google_api_keys.h" 16 #include "google_apis/google_api_keys.h"
18 #include "net/base/escape.h" 17 #include "net/base/escape.h"
19 #include "net/base/load_flags.h" 18 #include "net/base/load_flags.h"
20 #include "net/ssl/ssl_info.h" 19 #include "net/ssl/ssl_info.h"
21 #include "net/url_request/report_sender.h" 20 #include "net/url_request/report_sender.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 cookies_preference)); 66 cookies_preference));
68 67
69 permission_reporter_.reset( 68 permission_reporter_.reset(
70 new PermissionReporter(request_context_getter->GetURLRequestContext())); 69 new PermissionReporter(request_context_getter->GetURLRequestContext()));
71 } 70 }
72 71
73 version_ = SafeBrowsingProtocolManagerHelper::Version(); 72 version_ = SafeBrowsingProtocolManagerHelper::Version();
74 } 73 }
75 74
76 SafeBrowsingPingManager::~SafeBrowsingPingManager() { 75 SafeBrowsingPingManager::~SafeBrowsingPingManager() {
77 // Delete in-progress safebrowsing reports (hits and details).
78 base::STLDeleteContainerPointers(safebrowsing_reports_.begin(),
79 safebrowsing_reports_.end());
80 } 76 }
81 77
82 // net::URLFetcherDelegate implementation ---------------------------------- 78 // net::URLFetcherDelegate implementation ----------------------------------
83 79
84 // All SafeBrowsing request responses are handled here. 80 // All SafeBrowsing request responses are handled here.
85 void SafeBrowsingPingManager::OnURLFetchComplete( 81 void SafeBrowsingPingManager::OnURLFetchComplete(
86 const net::URLFetcher* source) { 82 const net::URLFetcher* source) {
87 Reports::iterator sit = safebrowsing_reports_.find(source); 83 auto it =
88 DCHECK(sit != safebrowsing_reports_.end()); 84 std::find_if(safebrowsing_reports_.begin(), safebrowsing_reports_.end(),
89 delete *sit; 85 [source](const std::unique_ptr<net::URLFetcher>& ptr) {
90 safebrowsing_reports_.erase(sit); 86 return ptr.get() == source;
87 });
88 DCHECK(it != safebrowsing_reports_.end());
89 safebrowsing_reports_.erase(it);
91 } 90 }
92 91
93 // Sends a SafeBrowsing "hit" report. 92 // Sends a SafeBrowsing "hit" report.
94 void SafeBrowsingPingManager::ReportSafeBrowsingHit( 93 void SafeBrowsingPingManager::ReportSafeBrowsingHit(
95 const safe_browsing::HitReport& hit_report) { 94 const safe_browsing::HitReport& hit_report) {
96 GURL report_url = SafeBrowsingHitUrl(hit_report); 95 GURL report_url = SafeBrowsingHitUrl(hit_report);
97 net::URLFetcher* report = 96 std::unique_ptr<net::URLFetcher> report_ptr = net::URLFetcher::Create(
98 net::URLFetcher::Create(report_url, hit_report.post_data.empty() 97 report_url, hit_report.post_data.empty() ? net::URLFetcher::GET
99 ? net::URLFetcher::GET 98 : net::URLFetcher::POST,
100 : net::URLFetcher::POST, 99 this);
101 this) 100 net::URLFetcher* report = report_ptr.get();
102 .release(); 101 report_ptr->SetLoadFlags(net::LOAD_DISABLE_CACHE);
103 report->SetLoadFlags(net::LOAD_DISABLE_CACHE); 102 report_ptr->SetRequestContext(request_context_getter_.get());
104 report->SetRequestContext(request_context_getter_.get());
105 if (!hit_report.post_data.empty()) 103 if (!hit_report.post_data.empty())
106 report->SetUploadData("text/plain", hit_report.post_data); 104 report_ptr->SetUploadData("text/plain", hit_report.post_data);
107 safebrowsing_reports_.insert(report); 105 safebrowsing_reports_.insert(std::move(report_ptr));
108 report->Start(); 106 report->Start();
109 } 107 }
110 108
111 // Sends threat details for users who opt-in. 109 // Sends threat details for users who opt-in.
112 void SafeBrowsingPingManager::ReportThreatDetails(const std::string& report) { 110 void SafeBrowsingPingManager::ReportThreatDetails(const std::string& report) {
113 GURL report_url = ThreatDetailsUrl(); 111 GURL report_url = ThreatDetailsUrl();
114 net::URLFetcher* fetcher = 112 std::unique_ptr<net::URLFetcher> fetcher =
115 net::URLFetcher::Create(report_url, net::URLFetcher::POST, this) 113 net::URLFetcher::Create(report_url, net::URLFetcher::POST, this);
116 .release();
117 fetcher->SetLoadFlags(net::LOAD_DISABLE_CACHE); 114 fetcher->SetLoadFlags(net::LOAD_DISABLE_CACHE);
118 fetcher->SetRequestContext(request_context_getter_.get()); 115 fetcher->SetRequestContext(request_context_getter_.get());
119 fetcher->SetUploadData("application/octet-stream", report); 116 fetcher->SetUploadData("application/octet-stream", report);
120 // Don't try too hard to send reports on failures. 117 // Don't try too hard to send reports on failures.
121 fetcher->SetAutomaticallyRetryOn5xx(false); 118 fetcher->SetAutomaticallyRetryOn5xx(false);
122 fetcher->Start(); 119 fetcher->Start();
123 safebrowsing_reports_.insert(fetcher); 120 safebrowsing_reports_.insert(std::move(fetcher));
124 } 121 }
125 122
126 void SafeBrowsingPingManager::ReportInvalidCertificateChain( 123 void SafeBrowsingPingManager::ReportInvalidCertificateChain(
127 const std::string& serialized_report) { 124 const std::string& serialized_report) {
128 DCHECK(certificate_error_reporter_); 125 DCHECK(certificate_error_reporter_);
129 certificate_error_reporter_->SendExtendedReportingReport(serialized_report); 126 certificate_error_reporter_->SendExtendedReportingReport(serialized_report);
130 } 127 }
131 128
132 void SafeBrowsingPingManager::SetCertificateErrorReporterForTesting( 129 void SafeBrowsingPingManager::SetCertificateErrorReporterForTesting(
133 std::unique_ptr<certificate_reporting::ErrorReporter> 130 std::unique_ptr<certificate_reporting::ErrorReporter>
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 version_.c_str()); 227 version_.c_str());
231 std::string api_key = google_apis::GetAPIKey(); 228 std::string api_key = google_apis::GetAPIKey();
232 if (!api_key.empty()) { 229 if (!api_key.empty()) {
233 base::StringAppendF(&url, "&key=%s", 230 base::StringAppendF(&url, "&key=%s",
234 net::EscapeQueryParamValue(api_key, true).c_str()); 231 net::EscapeQueryParamValue(api_key, true).c_str());
235 } 232 }
236 return GURL(url); 233 return GURL(url);
237 } 234 }
238 235
239 } // namespace safe_browsing 236 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698