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

Unified Diff: components/policy/core/common/cloud/external_policy_data_fetcher.cc

Issue 2282053004: Remove a use of stl_util in policy. (Closed)
Patch Set: fix Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/policy/core/common/cloud/external_policy_data_fetcher.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/policy/core/common/cloud/external_policy_data_fetcher.cc
diff --git a/components/policy/core/common/cloud/external_policy_data_fetcher.cc b/components/policy/core/common/cloud/external_policy_data_fetcher.cc
index d3474e2826ce20d5c1cd2d17b4bebe5893edd710..624c4e99235820c74bbf22c2688688d8974a8f97 100644
--- a/components/policy/core/common/cloud/external_policy_data_fetcher.cc
+++ b/components/policy/core/common/cloud/external_policy_data_fetcher.cc
@@ -149,6 +149,11 @@ void ExternalPolicyDataFetcher::OnJobFinished(
delete job;
}
+struct ExternalPolicyDataFetcherBackend::FetcherAndJob {
+ std::unique_ptr<net::URLFetcher> fetcher;
+ ExternalPolicyDataFetcher::Job* job;
+};
+
ExternalPolicyDataFetcherBackend::ExternalPolicyDataFetcherBackend(
scoped_refptr<base::SequencedTaskRunner> io_task_runner,
scoped_refptr<net::URLRequestContextGetter> request_context)
@@ -160,7 +165,6 @@ ExternalPolicyDataFetcherBackend::ExternalPolicyDataFetcherBackend(
ExternalPolicyDataFetcherBackend::~ExternalPolicyDataFetcherBackend() {
DCHECK(io_task_runner_->RunsTasksOnCurrentThread());
- base::STLDeleteContainerPairFirstPointers(job_map_.begin(), job_map_.end());
}
std::unique_ptr<ExternalPolicyDataFetcher>
@@ -173,9 +177,9 @@ ExternalPolicyDataFetcherBackend::CreateFrontend(
void ExternalPolicyDataFetcherBackend::StartJob(
ExternalPolicyDataFetcher::Job* job) {
DCHECK(io_task_runner_->RunsTasksOnCurrentThread());
- net::URLFetcher* fetcher =
- net::URLFetcher::Create(++last_fetch_id_, job->url, net::URLFetcher::GET,
- this).release();
+ std::unique_ptr<net::URLFetcher> owned_fetcher = net::URLFetcher::Create(
+ ++last_fetch_id_, job->url, net::URLFetcher::GET, this);
+ net::URLFetcher* fetcher = owned_fetcher.get();
data_use_measurement::DataUseUserData::AttachToFetcher(
fetcher, data_use_measurement::DataUseUserData::POLICY);
fetcher->SetRequestContext(request_context_.get());
@@ -185,16 +189,15 @@ void ExternalPolicyDataFetcherBackend::StartJob(
net::LOAD_DO_NOT_SEND_AUTH_DATA);
fetcher->SetAutomaticallyRetryOnNetworkChanges(3);
fetcher->Start();
- job_map_[fetcher] = job;
+ job_map_[fetcher] = {std::move(owned_fetcher), job};
}
void ExternalPolicyDataFetcherBackend::CancelJob(
ExternalPolicyDataFetcher::Job* job,
const base::Closure& callback) {
DCHECK(io_task_runner_->RunsTasksOnCurrentThread());
- for (JobMap::iterator it = job_map_.begin(); it != job_map_.end(); ) {
- if (it->second == job) {
- delete it->first;
+ for (auto it = job_map_.begin(); it != job_map_.end();) {
+ if (it->second.job == job) {
job_map_.erase(it++);
} else {
++it;
@@ -206,7 +209,7 @@ void ExternalPolicyDataFetcherBackend::CancelJob(
void ExternalPolicyDataFetcherBackend::OnURLFetchComplete(
const net::URLFetcher* source) {
DCHECK(io_task_runner_->RunsTasksOnCurrentThread());
- JobMap::iterator it = job_map_.find(const_cast<net::URLFetcher*>(source));
+ auto it = job_map_.find(const_cast<net::URLFetcher*>(source));
if (it == job_map_.end()) {
NOTREACHED();
return;
@@ -235,15 +238,14 @@ void ExternalPolicyDataFetcherBackend::OnURLFetchComplete(
} else {
data.reset(new std::string);
source->GetResponseAsString(data.get());
- if (static_cast<int64_t>(data->size()) > it->second->max_size) {
+ if (static_cast<int64_t>(data->size()) > it->second.job->max_size) {
// Received |data| exceeds maximum allowed size.
data.reset();
result = ExternalPolicyDataFetcher::MAX_SIZE_EXCEEDED;
}
}
- ExternalPolicyDataFetcher::Job* job = it->second;
- delete it->first;
+ ExternalPolicyDataFetcher::Job* job = it->second.job;
job_map_.erase(it);
job->callback.Run(job, result, std::move(data));
}
@@ -253,16 +255,16 @@ void ExternalPolicyDataFetcherBackend::OnURLFetchDownloadProgress(
int64_t current,
int64_t total) {
DCHECK(io_task_runner_->RunsTasksOnCurrentThread());
- JobMap::iterator it = job_map_.find(const_cast<net::URLFetcher*>(source));
+ auto it = job_map_.find(source);
DCHECK(it != job_map_.end());
if (it == job_map_.end())
return;
// Reject the data if it exceeds the size limit. The content length is in
// |total|, and it may be -1 when not known.
- if (current > it->second->max_size || total > it->second->max_size) {
- ExternalPolicyDataFetcher::Job* job = it->second;
- delete it->first;
+ ExternalPolicyDataFetcher::Job* job = it->second.job;
+ int64_t max_size = job->max_size;
+ if (current > max_size || total > max_size) {
job_map_.erase(it);
job->callback.Run(job, ExternalPolicyDataFetcher::MAX_SIZE_EXCEEDED,
std::unique_ptr<std::string>());
« no previous file with comments | « components/policy/core/common/cloud/external_policy_data_fetcher.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698