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

Side by Side Diff: net/cert_net/cert_net_fetcher_impl.cc

Issue 1545233002: Convert Pass()→std::move() in //net (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "net/cert_net/cert_net_fetcher_impl.h" 5 #include "net/cert_net/cert_net_fetcher_impl.h"
6 6
7 #include <tuple> 7 #include <tuple>
8 #include <utility>
8 9
9 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
10 #include "base/containers/linked_list.h" 11 #include "base/containers/linked_list.h"
11 #include "base/logging.h" 12 #include "base/logging.h"
12 #include "base/macros.h" 13 #include "base/macros.h"
13 #include "base/numerics/safe_math.h" 14 #include "base/numerics/safe_math.h"
14 #include "base/stl_util.h" 15 #include "base/stl_util.h"
15 #include "base/timer/timer.h" 16 #include "base/timer/timer.h"
16 #include "net/base/load_flags.h" 17 #include "net/base/load_flags.h"
17 #include "net/url_request/redirect_info.h" 18 #include "net/url_request/redirect_info.h"
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 DISALLOW_COPY_AND_ASSIGN(Job); 225 DISALLOW_COPY_AND_ASSIGN(Job);
225 }; 226 };
226 227
227 CertNetFetcherImpl::RequestImpl::~RequestImpl() { 228 CertNetFetcherImpl::RequestImpl::~RequestImpl() {
228 if (job_) 229 if (job_)
229 job_->DetachRequest(this); 230 job_->DetachRequest(this);
230 } 231 }
231 232
232 CertNetFetcherImpl::Job::Job(scoped_ptr<RequestParams> request_params, 233 CertNetFetcherImpl::Job::Job(scoped_ptr<RequestParams> request_params,
233 CertNetFetcherImpl* parent) 234 CertNetFetcherImpl* parent)
234 : request_params_(request_params.Pass()), 235 : request_params_(std::move(request_params)),
235 result_net_error_(ERR_IO_PENDING), 236 result_net_error_(ERR_IO_PENDING),
236 parent_(parent) { 237 parent_(parent) {}
237 }
238 238
239 CertNetFetcherImpl::Job::~Job() { 239 CertNetFetcherImpl::Job::~Job() {
240 Cancel(); 240 Cancel();
241 } 241 }
242 242
243 void CertNetFetcherImpl::Job::Cancel() { 243 void CertNetFetcherImpl::Job::Cancel() {
244 parent_ = nullptr; 244 parent_ = nullptr;
245 245
246 // Notify each request of cancellation and remove it from the list. 246 // Notify each request of cancellation and remove it from the list.
247 for (base::LinkNode<RequestImpl>* current = requests_.head(); 247 for (base::LinkNode<RequestImpl>* current = requests_.head();
248 current != requests_.end();) { 248 current != requests_.end();) {
249 base::LinkNode<RequestImpl>* next = current->next(); 249 base::LinkNode<RequestImpl>* next = current->next();
250 current->value()->OnJobCancelled(this); 250 current->value()->OnJobCancelled(this);
251 current->RemoveFromList(); 251 current->RemoveFromList();
252 current = next; 252 current = next;
253 } 253 }
254 254
255 DCHECK(requests_.empty()); 255 DCHECK(requests_.empty());
256 256
257 Stop(); 257 Stop();
258 } 258 }
259 259
260 scoped_ptr<CertNetFetcher::Request> CertNetFetcherImpl::Job::CreateRequest( 260 scoped_ptr<CertNetFetcher::Request> CertNetFetcherImpl::Job::CreateRequest(
261 const FetchCallback& callback) { 261 const FetchCallback& callback) {
262 scoped_ptr<RequestImpl> request(new RequestImpl(this, callback)); 262 scoped_ptr<RequestImpl> request(new RequestImpl(this, callback));
263 requests_.Append(request.get()); 263 requests_.Append(request.get());
264 return request.Pass(); 264 return std::move(request);
265 } 265 }
266 266
267 void CertNetFetcherImpl::Job::DetachRequest(RequestImpl* request) { 267 void CertNetFetcherImpl::Job::DetachRequest(RequestImpl* request) {
268 scoped_ptr<Job> delete_this; 268 scoped_ptr<Job> delete_this;
269 269
270 request->RemoveFromList(); 270 request->RemoveFromList();
271 271
272 // If there are no longer any requests attached to the job then 272 // If there are no longer any requests attached to the job then
273 // cancel and delete it. 273 // cancel and delete it.
274 if (requests_.empty() && !parent_->IsCurrentlyCompletingJob(this)) 274 if (requests_.empty() && !parent_->IsCurrentlyCompletingJob(this))
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 int max_response_bytes, 443 int max_response_bytes,
444 const FetchCallback& callback) { 444 const FetchCallback& callback) {
445 scoped_ptr<RequestParams> request_params(new RequestParams); 445 scoped_ptr<RequestParams> request_params(new RequestParams);
446 446
447 request_params->url = url; 447 request_params->url = url;
448 request_params->http_method = HTTP_METHOD_GET; 448 request_params->http_method = HTTP_METHOD_GET;
449 request_params->timeout = GetTimeout(timeout_milliseconds); 449 request_params->timeout = GetTimeout(timeout_milliseconds);
450 request_params->max_response_bytes = 450 request_params->max_response_bytes =
451 GetMaxResponseBytes(max_response_bytes, kMaxResponseSizeInBytesForAia); 451 GetMaxResponseBytes(max_response_bytes, kMaxResponseSizeInBytesForAia);
452 452
453 return Fetch(request_params.Pass(), callback); 453 return Fetch(std::move(request_params), callback);
454 } 454 }
455 455
456 scoped_ptr<CertNetFetcher::Request> CertNetFetcherImpl::FetchCrl( 456 scoped_ptr<CertNetFetcher::Request> CertNetFetcherImpl::FetchCrl(
457 const GURL& url, 457 const GURL& url,
458 int timeout_milliseconds, 458 int timeout_milliseconds,
459 int max_response_bytes, 459 int max_response_bytes,
460 const FetchCallback& callback) { 460 const FetchCallback& callback) {
461 scoped_ptr<RequestParams> request_params(new RequestParams); 461 scoped_ptr<RequestParams> request_params(new RequestParams);
462 462
463 request_params->url = url; 463 request_params->url = url;
464 request_params->http_method = HTTP_METHOD_GET; 464 request_params->http_method = HTTP_METHOD_GET;
465 request_params->timeout = GetTimeout(timeout_milliseconds); 465 request_params->timeout = GetTimeout(timeout_milliseconds);
466 request_params->max_response_bytes = 466 request_params->max_response_bytes =
467 GetMaxResponseBytes(max_response_bytes, kMaxResponseSizeInBytesForCrl); 467 GetMaxResponseBytes(max_response_bytes, kMaxResponseSizeInBytesForCrl);
468 468
469 return Fetch(request_params.Pass(), callback); 469 return Fetch(std::move(request_params), callback);
470 } 470 }
471 471
472 scoped_ptr<CertNetFetcher::Request> CertNetFetcherImpl::FetchOcsp( 472 scoped_ptr<CertNetFetcher::Request> CertNetFetcherImpl::FetchOcsp(
473 const GURL& url, 473 const GURL& url,
474 int timeout_milliseconds, 474 int timeout_milliseconds,
475 int max_response_bytes, 475 int max_response_bytes,
476 const FetchCallback& callback) { 476 const FetchCallback& callback) {
477 scoped_ptr<RequestParams> request_params(new RequestParams); 477 scoped_ptr<RequestParams> request_params(new RequestParams);
478 478
479 request_params->url = url; 479 request_params->url = url;
480 request_params->http_method = HTTP_METHOD_GET; 480 request_params->http_method = HTTP_METHOD_GET;
481 request_params->timeout = GetTimeout(timeout_milliseconds); 481 request_params->timeout = GetTimeout(timeout_milliseconds);
482 request_params->max_response_bytes = 482 request_params->max_response_bytes =
483 GetMaxResponseBytes(max_response_bytes, kMaxResponseSizeInBytesForAia); 483 GetMaxResponseBytes(max_response_bytes, kMaxResponseSizeInBytesForAia);
484 484
485 return Fetch(request_params.Pass(), callback); 485 return Fetch(std::move(request_params), callback);
486 } 486 }
487 487
488 bool CertNetFetcherImpl::JobComparator::operator()(const Job* job1, 488 bool CertNetFetcherImpl::JobComparator::operator()(const Job* job1,
489 const Job* job2) const { 489 const Job* job2) const {
490 return job1->request_params() < job2->request_params(); 490 return job1->request_params() < job2->request_params();
491 } 491 }
492 492
493 scoped_ptr<CertNetFetcher::Request> CertNetFetcherImpl::Fetch( 493 scoped_ptr<CertNetFetcher::Request> CertNetFetcherImpl::Fetch(
494 scoped_ptr<RequestParams> request_params, 494 scoped_ptr<RequestParams> request_params,
495 const FetchCallback& callback) { 495 const FetchCallback& callback) {
496 DCHECK(thread_checker_.CalledOnValidThread()); 496 DCHECK(thread_checker_.CalledOnValidThread());
497 497
498 // If there is an in-progress job that matches the request parameters use it. 498 // If there is an in-progress job that matches the request parameters use it.
499 // Otherwise start a new job. 499 // Otherwise start a new job.
500 Job* job = FindJob(*request_params); 500 Job* job = FindJob(*request_params);
501 501
502 if (!job) { 502 if (!job) {
503 job = new Job(request_params.Pass(), this); 503 job = new Job(std::move(request_params), this);
504 jobs_.insert(job); 504 jobs_.insert(job);
505 job->StartURLRequest(context_); 505 job->StartURLRequest(context_);
506 } 506 }
507 507
508 return job->CreateRequest(callback); 508 return job->CreateRequest(callback);
509 } 509 }
510 510
511 struct CertNetFetcherImpl::JobToRequestParamsComparator { 511 struct CertNetFetcherImpl::JobToRequestParamsComparator {
512 bool operator()(const Job* job, 512 bool operator()(const Job* job,
513 const CertNetFetcherImpl::RequestParams& value) const { 513 const CertNetFetcherImpl::RequestParams& value) const {
(...skipping 30 matching lines...) Expand all
544 void CertNetFetcherImpl::ClearCurrentlyCompletingJob(Job* job) { 544 void CertNetFetcherImpl::ClearCurrentlyCompletingJob(Job* job) {
545 DCHECK_EQ(currently_completing_job_, job); 545 DCHECK_EQ(currently_completing_job_, job);
546 currently_completing_job_ = nullptr; 546 currently_completing_job_ = nullptr;
547 } 547 }
548 548
549 bool CertNetFetcherImpl::IsCurrentlyCompletingJob(Job* job) { 549 bool CertNetFetcherImpl::IsCurrentlyCompletingJob(Job* job) {
550 return job == currently_completing_job_; 550 return job == currently_completing_job_;
551 } 551 }
552 552
553 } // namespace net 553 } // namespace net
OLDNEW
« no previous file with comments | « net/cert/x509_certificate_net_log_param.cc ('k') | net/cert_net/cert_net_fetcher_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698