Index: chrome/browser/safe_browsing/ping_manager.cc |
diff --git a/chrome/browser/safe_browsing/ping_manager.cc b/chrome/browser/safe_browsing/ping_manager.cc |
index 4a2ab46deab9455d564af2a5fc504c1590dbd494..623a988f7388b29ea5575d275b480e804be75804 100644 |
--- a/chrome/browser/safe_browsing/ping_manager.cc |
+++ b/chrome/browser/safe_browsing/ping_manager.cc |
@@ -8,7 +8,6 @@ |
#include "base/logging.h" |
#include "base/memory/ptr_util.h" |
-#include "base/stl_util.h" |
#include "base/strings/string_util.h" |
#include "base/strings/stringprintf.h" |
#include "chrome/browser/safe_browsing/permission_reporter.h" |
@@ -74,9 +73,6 @@ SafeBrowsingPingManager::SafeBrowsingPingManager( |
} |
SafeBrowsingPingManager::~SafeBrowsingPingManager() { |
- // Delete in-progress safebrowsing reports (hits and details). |
- base::STLDeleteContainerPointers(safebrowsing_reports_.begin(), |
- safebrowsing_reports_.end()); |
} |
// net::URLFetcherDelegate implementation ---------------------------------- |
@@ -84,43 +80,44 @@ SafeBrowsingPingManager::~SafeBrowsingPingManager() { |
// All SafeBrowsing request responses are handled here. |
void SafeBrowsingPingManager::OnURLFetchComplete( |
const net::URLFetcher* source) { |
- Reports::iterator sit = safebrowsing_reports_.find(source); |
- DCHECK(sit != safebrowsing_reports_.end()); |
- delete *sit; |
- safebrowsing_reports_.erase(sit); |
+ auto it = |
+ std::find_if(safebrowsing_reports_.begin(), safebrowsing_reports_.end(), |
+ [source](const std::unique_ptr<net::URLFetcher>& ptr) { |
+ return ptr.get() == source; |
+ }); |
+ DCHECK(it != safebrowsing_reports_.end()); |
+ safebrowsing_reports_.erase(it); |
} |
// Sends a SafeBrowsing "hit" report. |
void SafeBrowsingPingManager::ReportSafeBrowsingHit( |
const safe_browsing::HitReport& hit_report) { |
GURL report_url = SafeBrowsingHitUrl(hit_report); |
- net::URLFetcher* report = |
- net::URLFetcher::Create(report_url, hit_report.post_data.empty() |
- ? net::URLFetcher::GET |
- : net::URLFetcher::POST, |
- this) |
- .release(); |
- report->SetLoadFlags(net::LOAD_DISABLE_CACHE); |
- report->SetRequestContext(request_context_getter_.get()); |
+ std::unique_ptr<net::URLFetcher> report_ptr = net::URLFetcher::Create( |
+ report_url, hit_report.post_data.empty() ? net::URLFetcher::GET |
+ : net::URLFetcher::POST, |
+ this); |
+ net::URLFetcher* report = report_ptr.get(); |
+ report_ptr->SetLoadFlags(net::LOAD_DISABLE_CACHE); |
+ report_ptr->SetRequestContext(request_context_getter_.get()); |
if (!hit_report.post_data.empty()) |
- report->SetUploadData("text/plain", hit_report.post_data); |
- safebrowsing_reports_.insert(report); |
+ report_ptr->SetUploadData("text/plain", hit_report.post_data); |
+ safebrowsing_reports_.insert(std::move(report_ptr)); |
Nico
2016/09/15 16:07:16
nit: If you do
(*safebrowsing_reports_.insert(
Avi (use Gerrit)
2016/09/15 19:53:45
I suppose so, but I'll pass for simplicity/clarity
|
report->Start(); |
} |
// Sends threat details for users who opt-in. |
void SafeBrowsingPingManager::ReportThreatDetails(const std::string& report) { |
GURL report_url = ThreatDetailsUrl(); |
- net::URLFetcher* fetcher = |
- net::URLFetcher::Create(report_url, net::URLFetcher::POST, this) |
- .release(); |
+ std::unique_ptr<net::URLFetcher> fetcher = |
+ net::URLFetcher::Create(report_url, net::URLFetcher::POST, this); |
fetcher->SetLoadFlags(net::LOAD_DISABLE_CACHE); |
fetcher->SetRequestContext(request_context_getter_.get()); |
fetcher->SetUploadData("application/octet-stream", report); |
// Don't try too hard to send reports on failures. |
fetcher->SetAutomaticallyRetryOn5xx(false); |
fetcher->Start(); |
- safebrowsing_reports_.insert(fetcher); |
+ safebrowsing_reports_.insert(std::move(fetcher)); |
} |
void SafeBrowsingPingManager::ReportInvalidCertificateChain( |