Index: chrome/browser/predictors/resource_prefetcher.cc |
diff --git a/chrome/browser/predictors/resource_prefetcher.cc b/chrome/browser/predictors/resource_prefetcher.cc |
index 3a818d1a9c7056c0c973cc6199011382179414cb..437068a636ea72c6a21558503e638f928bc1ce22 100644 |
--- a/chrome/browser/predictors/resource_prefetcher.cc |
+++ b/chrome/browser/predictors/resource_prefetcher.cc |
@@ -7,7 +7,6 @@ |
#include <iterator> |
#include <utility> |
-#include "base/stl_util.h" |
#include "content/public/browser/browser_thread.h" |
#include "net/base/io_buffer.h" |
#include "net/base/load_flags.h" |
@@ -55,11 +54,7 @@ ResourcePrefetcher::ResourcePrefetcher( |
std::back_inserter(request_queue_)); |
} |
-ResourcePrefetcher::~ResourcePrefetcher() { |
- // Delete any pending net::URLRequests. |
- base::STLDeleteContainerPairFirstPointers(inflight_requests_.begin(), |
- inflight_requests_.end()); |
-} |
+ResourcePrefetcher::~ResourcePrefetcher() {} |
void ResourcePrefetcher::Start() { |
DCHECK(thread_checker_.CalledOnValidThread()); |
@@ -113,7 +108,7 @@ void ResourcePrefetcher::TryToLaunchPrefetchRequests() { |
} |
} |
- // If the inflight_requests_ is empty, we cant launch any more. Finish. |
+ // If the inflight_requests_ is empty, we can't launch any more. Finish. |
if (inflight_requests_.empty()) { |
CHECK(host_inflight_counts_.empty()); |
CHECK(request_queue_.empty() || state_ == STOPPED); |
@@ -126,11 +121,12 @@ void ResourcePrefetcher::TryToLaunchPrefetchRequests() { |
void ResourcePrefetcher::SendRequest(Request* request) { |
request->prefetch_status = Request::PREFETCH_STATUS_STARTED; |
- net::URLRequest* url_request = |
- delegate_->GetURLRequestContext()->CreateRequest( |
- request->resource_url, net::LOW, this).release(); |
+ std::unique_ptr<net::URLRequest> url_request_ptr = |
+ delegate_->GetURLRequestContext()->CreateRequest(request->resource_url, |
+ net::LOW, this); |
+ net::URLRequest* url_request = url_request_ptr.get(); |
- inflight_requests_[url_request] = request; |
+ inflight_requests_[url_request] = {std::move(url_request_ptr), request}; |
host_inflight_counts_[url_request->original_url().host()] += 1; |
url_request->set_method("GET"); |
@@ -147,8 +143,7 @@ void ResourcePrefetcher::StartURLRequest(net::URLRequest* request) { |
void ResourcePrefetcher::FinishRequest(net::URLRequest* request, |
Request::PrefetchStatus status) { |
- std::map<net::URLRequest*, Request*>::iterator request_it = |
- inflight_requests_.find(request); |
+ auto request_it = inflight_requests_.find(request); |
CHECK(request_it != inflight_requests_.end()); |
const std::string host = request->original_url().host(); |
@@ -159,11 +154,9 @@ void ResourcePrefetcher::FinishRequest(net::URLRequest* request, |
if (host_it->second == 0) |
host_inflight_counts_.erase(host); |
- request_it->second->prefetch_status = status; |
+ request_it->second.second->prefetch_status = status; |
inflight_requests_.erase(request_it); |
- delete request; |
- |
TryToLaunchPrefetchRequests(); |
} |