OLD | NEW |
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 "net/url_request/url_request.h" | 5 #include "net/url_request/url_request.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 12 matching lines...) Expand all Loading... |
23 #include "net/base/host_port_pair.h" | 23 #include "net/base/host_port_pair.h" |
24 #include "net/base/load_flags.h" | 24 #include "net/base/load_flags.h" |
25 #include "net/base/load_timing_info.h" | 25 #include "net/base/load_timing_info.h" |
26 #include "net/base/net_errors.h" | 26 #include "net/base/net_errors.h" |
27 #include "net/base/network_change_notifier.h" | 27 #include "net/base/network_change_notifier.h" |
28 #include "net/base/network_delegate.h" | 28 #include "net/base/network_delegate.h" |
29 #include "net/base/upload_data_stream.h" | 29 #include "net/base/upload_data_stream.h" |
30 #include "net/http/http_response_headers.h" | 30 #include "net/http/http_response_headers.h" |
31 #include "net/http/http_util.h" | 31 #include "net/http/http_util.h" |
32 #include "net/log/net_log.h" | 32 #include "net/log/net_log.h" |
| 33 #include "net/log/net_log_event_type.h" |
| 34 #include "net/log/net_log_source_type.h" |
33 #include "net/ssl/ssl_cert_request_info.h" | 35 #include "net/ssl/ssl_cert_request_info.h" |
34 #include "net/url_request/redirect_info.h" | 36 #include "net/url_request/redirect_info.h" |
35 #include "net/url_request/url_request_context.h" | 37 #include "net/url_request/url_request_context.h" |
36 #include "net/url_request/url_request_error_job.h" | 38 #include "net/url_request/url_request_error_job.h" |
37 #include "net/url_request/url_request_job.h" | 39 #include "net/url_request/url_request_job.h" |
38 #include "net/url_request/url_request_job_manager.h" | 40 #include "net/url_request/url_request_job_manager.h" |
39 #include "net/url_request/url_request_netlog_params.h" | 41 #include "net/url_request/url_request_netlog_params.h" |
40 #include "net/url_request/url_request_redirect_job.h" | 42 #include "net/url_request/url_request_redirect_job.h" |
41 #include "url/gurl.h" | 43 #include "url/gurl.h" |
42 #include "url/origin.h" | 44 #include "url/origin.h" |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 OrphanJob(); | 186 OrphanJob(); |
185 | 187 |
186 int deleted = context_->url_requests()->erase(this); | 188 int deleted = context_->url_requests()->erase(this); |
187 CHECK_EQ(1, deleted); | 189 CHECK_EQ(1, deleted); |
188 | 190 |
189 int net_error = OK; | 191 int net_error = OK; |
190 // Log error only on failure, not cancellation, as even successful requests | 192 // Log error only on failure, not cancellation, as even successful requests |
191 // are "cancelled" on destruction. | 193 // are "cancelled" on destruction. |
192 if (status_.status() == URLRequestStatus::FAILED) | 194 if (status_.status() == URLRequestStatus::FAILED) |
193 net_error = status_.error(); | 195 net_error = status_.error(); |
194 net_log_.EndEventWithNetErrorCode(NetLog::TYPE_REQUEST_ALIVE, net_error); | 196 net_log_.EndEventWithNetErrorCode(NetLogEventType::REQUEST_ALIVE, net_error); |
195 } | 197 } |
196 | 198 |
197 void URLRequest::set_upload(std::unique_ptr<UploadDataStream> upload) { | 199 void URLRequest::set_upload(std::unique_ptr<UploadDataStream> upload) { |
198 upload_data_stream_ = std::move(upload); | 200 upload_data_stream_ = std::move(upload); |
199 } | 201 } |
200 | 202 |
201 const UploadDataStream* URLRequest::get_upload() const { | 203 const UploadDataStream* URLRequest::get_upload() const { |
202 return upload_data_stream_.get(); | 204 return upload_data_stream_.get(); |
203 } | 205 } |
204 | 206 |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 | 327 |
326 // Only log information to NetLog during startup and certain deferring calls | 328 // Only log information to NetLog during startup and certain deferring calls |
327 // to delegates. For all reads but the first, do nothing. | 329 // to delegates. For all reads but the first, do nothing. |
328 if (!calling_delegate_ && !response_info_.request_time.is_null()) | 330 if (!calling_delegate_ && !response_info_.request_time.is_null()) |
329 return; | 331 return; |
330 | 332 |
331 LogUnblocked(); | 333 LogUnblocked(); |
332 blocked_by_ = blocked_by; | 334 blocked_by_ = blocked_by; |
333 use_blocked_by_as_load_param_ = false; | 335 use_blocked_by_as_load_param_ = false; |
334 | 336 |
335 net_log_.BeginEvent( | 337 net_log_.BeginEvent(NetLogEventType::DELEGATE_INFO, |
336 NetLog::TYPE_DELEGATE_INFO, | 338 NetLog::StringCallback("delegate_info", &blocked_by_)); |
337 NetLog::StringCallback("delegate_info", &blocked_by_)); | |
338 } | 339 } |
339 | 340 |
340 void URLRequest::LogAndReportBlockedBy(const char* source) { | 341 void URLRequest::LogAndReportBlockedBy(const char* source) { |
341 LogBlockedBy(source); | 342 LogBlockedBy(source); |
342 use_blocked_by_as_load_param_ = true; | 343 use_blocked_by_as_load_param_ = true; |
343 } | 344 } |
344 | 345 |
345 void URLRequest::LogUnblocked() { | 346 void URLRequest::LogUnblocked() { |
346 if (blocked_by_.empty()) | 347 if (blocked_by_.empty()) |
347 return; | 348 return; |
348 | 349 |
349 net_log_.EndEvent(NetLog::TYPE_DELEGATE_INFO); | 350 net_log_.EndEvent(NetLogEventType::DELEGATE_INFO); |
350 blocked_by_.clear(); | 351 blocked_by_.clear(); |
351 } | 352 } |
352 | 353 |
353 UploadProgress URLRequest::GetUploadProgress() const { | 354 UploadProgress URLRequest::GetUploadProgress() const { |
354 if (!job_.get()) { | 355 if (!job_.get()) { |
355 // We haven't started or the request was cancelled | 356 // We haven't started or the request was cancelled |
356 return UploadProgress(); | 357 return UploadProgress(); |
357 } | 358 } |
358 if (final_upload_progress_.position()) { | 359 if (final_upload_progress_.position()) { |
359 // The first job completed and none of the subsequent series of | 360 // The first job completed and none of the subsequent series of |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
553 | 554 |
554 URLRequest::URLRequest(const GURL& url, | 555 URLRequest::URLRequest(const GURL& url, |
555 RequestPriority priority, | 556 RequestPriority priority, |
556 Delegate* delegate, | 557 Delegate* delegate, |
557 const URLRequestContext* context, | 558 const URLRequestContext* context, |
558 NetworkDelegate* network_delegate) | 559 NetworkDelegate* network_delegate) |
559 : context_(context), | 560 : context_(context), |
560 network_delegate_(network_delegate ? network_delegate | 561 network_delegate_(network_delegate ? network_delegate |
561 : context->network_delegate()), | 562 : context->network_delegate()), |
562 net_log_( | 563 net_log_( |
563 BoundNetLog::Make(context->net_log(), NetLog::SOURCE_URL_REQUEST)), | 564 BoundNetLog::Make(context->net_log(), NetLogSourceType::URL_REQUEST)), |
564 url_chain_(1, url), | 565 url_chain_(1, url), |
565 method_("GET"), | 566 method_("GET"), |
566 referrer_policy_(CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE), | 567 referrer_policy_(CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE), |
567 first_party_url_policy_(NEVER_CHANGE_FIRST_PARTY_URL), | 568 first_party_url_policy_(NEVER_CHANGE_FIRST_PARTY_URL), |
568 load_flags_(LOAD_NORMAL), | 569 load_flags_(LOAD_NORMAL), |
569 delegate_(delegate), | 570 delegate_(delegate), |
570 status_(URLRequestStatus::FromError(OK)), | 571 status_(URLRequestStatus::FromError(OK)), |
571 is_pending_(false), | 572 is_pending_(false), |
572 is_redirecting_(false), | 573 is_redirecting_(false), |
573 redirect_limit_(kMaxRedirects), | 574 redirect_limit_(kMaxRedirects), |
574 priority_(priority), | 575 priority_(priority), |
575 identifier_(GenerateURLRequestIdentifier()), | 576 identifier_(GenerateURLRequestIdentifier()), |
576 calling_delegate_(false), | 577 calling_delegate_(false), |
577 use_blocked_by_as_load_param_(false), | 578 use_blocked_by_as_load_param_(false), |
578 before_request_callback_(base::Bind(&URLRequest::BeforeRequestComplete, | 579 before_request_callback_(base::Bind(&URLRequest::BeforeRequestComplete, |
579 base::Unretained(this))), | 580 base::Unretained(this))), |
580 has_notified_completion_(false), | 581 has_notified_completion_(false), |
581 received_response_content_length_(0), | 582 received_response_content_length_(0), |
582 creation_time_(base::TimeTicks::Now()) { | 583 creation_time_(base::TimeTicks::Now()) { |
583 // Sanity check out environment. | 584 // Sanity check out environment. |
584 DCHECK(base::MessageLoop::current()) | 585 DCHECK(base::MessageLoop::current()) |
585 << "The current base::MessageLoop must exist"; | 586 << "The current base::MessageLoop must exist"; |
586 | 587 |
587 context->url_requests()->insert(this); | 588 context->url_requests()->insert(this); |
588 net_log_.BeginEvent(NetLog::TYPE_REQUEST_ALIVE); | 589 net_log_.BeginEvent(NetLogEventType::REQUEST_ALIVE); |
589 } | 590 } |
590 | 591 |
591 void URLRequest::BeforeRequestComplete(int error) { | 592 void URLRequest::BeforeRequestComplete(int error) { |
592 DCHECK(!job_.get()); | 593 DCHECK(!job_.get()); |
593 DCHECK_NE(ERR_IO_PENDING, error); | 594 DCHECK_NE(ERR_IO_PENDING, error); |
594 | 595 |
595 // Check that there are no callbacks to already canceled requests. | 596 // Check that there are no callbacks to already canceled requests. |
596 DCHECK_NE(URLRequestStatus::CANCELED, status_.status()); | 597 DCHECK_NE(URLRequestStatus::CANCELED, status_.status()); |
597 | 598 |
598 OnCallToDelegateComplete(); | 599 OnCallToDelegateComplete(); |
599 | 600 |
600 if (error != OK) { | 601 if (error != OK) { |
601 std::string source("delegate"); | 602 std::string source("delegate"); |
602 net_log_.AddEvent(NetLog::TYPE_CANCELLED, | 603 net_log_.AddEvent(NetLogEventType::CANCELLED, |
603 NetLog::StringCallback("source", &source)); | 604 NetLog::StringCallback("source", &source)); |
604 StartJob(new URLRequestErrorJob(this, network_delegate_, error)); | 605 StartJob(new URLRequestErrorJob(this, network_delegate_, error)); |
605 } else if (!delegate_redirect_url_.is_empty()) { | 606 } else if (!delegate_redirect_url_.is_empty()) { |
606 GURL new_url; | 607 GURL new_url; |
607 new_url.Swap(&delegate_redirect_url_); | 608 new_url.Swap(&delegate_redirect_url_); |
608 | 609 |
609 URLRequestRedirectJob* job = new URLRequestRedirectJob( | 610 URLRequestRedirectJob* job = new URLRequestRedirectJob( |
610 this, network_delegate_, new_url, | 611 this, network_delegate_, new_url, |
611 // Use status code 307 to preserve the method, so POST requests work. | 612 // Use status code 307 to preserve the method, so POST requests work. |
612 URLRequestRedirectJob::REDIRECT_307_TEMPORARY_REDIRECT, "Delegate"); | 613 URLRequestRedirectJob::REDIRECT_307_TEMPORARY_REDIRECT, "Delegate"); |
613 StartJob(job); | 614 StartJob(job); |
614 } else { | 615 } else { |
615 StartJob(URLRequestJobManager::GetInstance()->CreateJob( | 616 StartJob(URLRequestJobManager::GetInstance()->CreateJob( |
616 this, network_delegate_)); | 617 this, network_delegate_)); |
617 } | 618 } |
618 } | 619 } |
619 | 620 |
620 void URLRequest::StartJob(URLRequestJob* job) { | 621 void URLRequest::StartJob(URLRequestJob* job) { |
621 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed. | 622 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed. |
622 tracked_objects::ScopedTracker tracking_profile( | 623 tracked_objects::ScopedTracker tracking_profile( |
623 FROM_HERE_WITH_EXPLICIT_FUNCTION("456327 URLRequest::StartJob")); | 624 FROM_HERE_WITH_EXPLICIT_FUNCTION("456327 URLRequest::StartJob")); |
624 | 625 |
625 DCHECK(!is_pending_); | 626 DCHECK(!is_pending_); |
626 DCHECK(!job_.get()); | 627 DCHECK(!job_.get()); |
627 | 628 |
628 net_log_.BeginEvent( | 629 net_log_.BeginEvent( |
629 NetLog::TYPE_URL_REQUEST_START_JOB, | 630 NetLogEventType::URL_REQUEST_START_JOB, |
630 base::Bind(&NetLogURLRequestStartCallback, | 631 base::Bind(&NetLogURLRequestStartCallback, &url(), &method_, load_flags_, |
631 &url(), &method_, load_flags_, priority_, | 632 priority_, |
632 upload_data_stream_ ? upload_data_stream_->identifier() : -1)); | 633 upload_data_stream_ ? upload_data_stream_->identifier() : -1)); |
633 | 634 |
634 job_.reset(job); | 635 job_.reset(job); |
635 job_->SetExtraRequestHeaders(extra_request_headers_); | 636 job_->SetExtraRequestHeaders(extra_request_headers_); |
636 job_->SetPriority(priority_); | 637 job_->SetPriority(priority_); |
637 | 638 |
638 if (upload_data_stream_.get()) | 639 if (upload_data_stream_.get()) |
639 job_->SetUpload(upload_data_stream_.get()); | 640 job_->SetUpload(upload_data_stream_.get()); |
640 | 641 |
641 is_pending_ = true; | 642 is_pending_ = true; |
642 is_redirecting_ = false; | 643 is_redirecting_ = false; |
643 | 644 |
644 response_info_.was_cached = false; | 645 response_info_.was_cached = false; |
645 | 646 |
646 if (GURL(referrer_) != URLRequestJob::ComputeReferrerForRedirect( | 647 if (GURL(referrer_) != URLRequestJob::ComputeReferrerForRedirect( |
647 referrer_policy_, referrer_, url())) { | 648 referrer_policy_, referrer_, url())) { |
648 if (!network_delegate_ || | 649 if (!network_delegate_ || |
649 !network_delegate_->CancelURLRequestWithPolicyViolatingReferrerHeader( | 650 !network_delegate_->CancelURLRequestWithPolicyViolatingReferrerHeader( |
650 *this, url(), GURL(referrer_))) { | 651 *this, url(), GURL(referrer_))) { |
651 referrer_.clear(); | 652 referrer_.clear(); |
652 } else { | 653 } else { |
653 // We need to clear the referrer anyway to avoid an infinite recursion | 654 // We need to clear the referrer anyway to avoid an infinite recursion |
654 // when starting the error job. | 655 // when starting the error job. |
655 referrer_.clear(); | 656 referrer_.clear(); |
656 std::string source("delegate"); | 657 std::string source("delegate"); |
657 net_log_.AddEvent(NetLog::TYPE_CANCELLED, | 658 net_log_.AddEvent(NetLogEventType::CANCELLED, |
658 NetLog::StringCallback("source", &source)); | 659 NetLog::StringCallback("source", &source)); |
659 RestartWithJob(new URLRequestErrorJob( | 660 RestartWithJob(new URLRequestErrorJob( |
660 this, network_delegate_, ERR_BLOCKED_BY_CLIENT)); | 661 this, network_delegate_, ERR_BLOCKED_BY_CLIENT)); |
661 return; | 662 return; |
662 } | 663 } |
663 } | 664 } |
664 | 665 |
665 // Start() always completes asynchronously. | 666 // Start() always completes asynchronously. |
666 // | 667 // |
667 // Status is generally set by URLRequestJob itself, but Start() calls | 668 // Status is generally set by URLRequestJob itself, but Start() calls |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
712 | 713 |
713 // If the URL request already has an error status, then canceling is a no-op. | 714 // If the URL request already has an error status, then canceling is a no-op. |
714 // Plus, we don't want to change the error status once it has been set. | 715 // Plus, we don't want to change the error status once it has been set. |
715 if (status_.is_success()) { | 716 if (status_.is_success()) { |
716 status_ = URLRequestStatus(URLRequestStatus::CANCELED, error); | 717 status_ = URLRequestStatus(URLRequestStatus::CANCELED, error); |
717 response_info_.ssl_info = ssl_info; | 718 response_info_.ssl_info = ssl_info; |
718 | 719 |
719 // If the request hasn't already been completed, log a cancellation event. | 720 // If the request hasn't already been completed, log a cancellation event. |
720 if (!has_notified_completion_) { | 721 if (!has_notified_completion_) { |
721 // Don't log an error code on ERR_ABORTED, since that's redundant. | 722 // Don't log an error code on ERR_ABORTED, since that's redundant. |
722 net_log_.AddEventWithNetErrorCode(NetLog::TYPE_CANCELLED, | 723 net_log_.AddEventWithNetErrorCode(NetLogEventType::CANCELLED, |
723 error == ERR_ABORTED ? OK : error); | 724 error == ERR_ABORTED ? OK : error); |
724 } | 725 } |
725 } | 726 } |
726 | 727 |
727 if (is_pending_ && job_.get()) | 728 if (is_pending_ && job_.get()) |
728 job_->Kill(); | 729 job_->Kill(); |
729 | 730 |
730 // We need to notify about the end of this job here synchronously. The | 731 // We need to notify about the end of this job here synchronously. The |
731 // Job sends an asynchronous notification but by the time this is processed, | 732 // Job sends an asynchronous notification but by the time this is processed, |
732 // our |context_| is NULL. | 733 // our |context_| is NULL. |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
820 } | 821 } |
821 | 822 |
822 void URLRequest::NotifyResponseStarted(const URLRequestStatus& status) { | 823 void URLRequest::NotifyResponseStarted(const URLRequestStatus& status) { |
823 // Change status if there was an error. | 824 // Change status if there was an error. |
824 if (status.status() != URLRequestStatus::SUCCESS) | 825 if (status.status() != URLRequestStatus::SUCCESS) |
825 set_status(status); | 826 set_status(status); |
826 | 827 |
827 int net_error = OK; | 828 int net_error = OK; |
828 if (!status_.is_success()) | 829 if (!status_.is_success()) |
829 net_error = status_.error(); | 830 net_error = status_.error(); |
830 net_log_.EndEventWithNetErrorCode(NetLog::TYPE_URL_REQUEST_START_JOB, | 831 net_log_.EndEventWithNetErrorCode(NetLogEventType::URL_REQUEST_START_JOB, |
831 net_error); | 832 net_error); |
832 | 833 |
833 URLRequestJob* job = | 834 URLRequestJob* job = |
834 URLRequestJobManager::GetInstance()->MaybeInterceptResponse( | 835 URLRequestJobManager::GetInstance()->MaybeInterceptResponse( |
835 this, network_delegate_); | 836 this, network_delegate_); |
836 if (job) { | 837 if (job) { |
837 RestartWithJob(job); | 838 RestartWithJob(job); |
838 } else { | 839 } else { |
839 // In some cases (e.g. an event was canceled), we might have sent the | 840 // In some cases (e.g. an event was canceled), we might have sent the |
840 // completion event and receive a NotifyResponseStarted() later. | 841 // completion event and receive a NotifyResponseStarted() later. |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
897 | 898 |
898 status_ = URLRequestStatus::FromError(ERR_IO_PENDING); | 899 status_ = URLRequestStatus::FromError(ERR_IO_PENDING); |
899 job_->ContinueDespiteLastError(); | 900 job_->ContinueDespiteLastError(); |
900 } | 901 } |
901 | 902 |
902 void URLRequest::PrepareToRestart() { | 903 void URLRequest::PrepareToRestart() { |
903 DCHECK(job_.get()); | 904 DCHECK(job_.get()); |
904 | 905 |
905 // Close the current URL_REQUEST_START_JOB, since we will be starting a new | 906 // Close the current URL_REQUEST_START_JOB, since we will be starting a new |
906 // one. | 907 // one. |
907 net_log_.EndEvent(NetLog::TYPE_URL_REQUEST_START_JOB); | 908 net_log_.EndEvent(NetLogEventType::URL_REQUEST_START_JOB); |
908 | 909 |
909 OrphanJob(); | 910 OrphanJob(); |
910 | 911 |
911 response_info_ = HttpResponseInfo(); | 912 response_info_ = HttpResponseInfo(); |
912 response_info_.request_time = base::Time::Now(); | 913 response_info_.request_time = base::Time::Now(); |
913 | 914 |
914 load_timing_info_ = LoadTimingInfo(); | 915 load_timing_info_ = LoadTimingInfo(); |
915 load_timing_info_.request_start_time = response_info_.request_time; | 916 load_timing_info_.request_start_time = response_info_.request_time; |
916 load_timing_info_.request_start = base::TimeTicks::Now(); | 917 load_timing_info_.request_start = base::TimeTicks::Now(); |
917 | 918 |
(...skipping 13 matching lines...) Expand all Loading... |
931 // that the callback becomes invalid. | 932 // that the callback becomes invalid. |
932 job_->Kill(); | 933 job_->Kill(); |
933 job_ = NULL; | 934 job_ = NULL; |
934 } | 935 } |
935 | 936 |
936 int URLRequest::Redirect(const RedirectInfo& redirect_info) { | 937 int URLRequest::Redirect(const RedirectInfo& redirect_info) { |
937 // Matches call in NotifyReceivedRedirect. | 938 // Matches call in NotifyReceivedRedirect. |
938 OnCallToDelegateComplete(); | 939 OnCallToDelegateComplete(); |
939 if (net_log_.IsCapturing()) { | 940 if (net_log_.IsCapturing()) { |
940 net_log_.AddEvent( | 941 net_log_.AddEvent( |
941 NetLog::TYPE_URL_REQUEST_REDIRECTED, | 942 NetLogEventType::URL_REQUEST_REDIRECTED, |
942 NetLog::StringCallback("location", | 943 NetLog::StringCallback("location", |
943 &redirect_info.new_url.possibly_invalid_spec())); | 944 &redirect_info.new_url.possibly_invalid_spec())); |
944 } | 945 } |
945 | 946 |
946 // TODO(davidben): Pass the full RedirectInfo to the NetworkDelegate. | 947 // TODO(davidben): Pass the full RedirectInfo to the NetworkDelegate. |
947 if (network_delegate_) | 948 if (network_delegate_) |
948 network_delegate_->NotifyBeforeRedirect(this, redirect_info.new_url); | 949 network_delegate_->NotifyBeforeRedirect(this, redirect_info.new_url); |
949 | 950 |
950 if (redirect_limit_ <= 0) { | 951 if (redirect_limit_ <= 0) { |
951 DVLOG(1) << "disallowing redirect: exceeds limit"; | 952 DVLOG(1) << "disallowing redirect: exceeds limit"; |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1039 // have MAXIMUM_PRIORITY for release mode. | 1040 // have MAXIMUM_PRIORITY for release mode. |
1040 return; | 1041 return; |
1041 } | 1042 } |
1042 | 1043 |
1043 if (priority_ == priority) | 1044 if (priority_ == priority) |
1044 return; | 1045 return; |
1045 | 1046 |
1046 priority_ = priority; | 1047 priority_ = priority; |
1047 if (job_.get()) { | 1048 if (job_.get()) { |
1048 net_log_.AddEvent( | 1049 net_log_.AddEvent( |
1049 NetLog::TYPE_URL_REQUEST_SET_PRIORITY, | 1050 NetLogEventType::URL_REQUEST_SET_PRIORITY, |
1050 NetLog::StringCallback("priority", RequestPriorityToString(priority_))); | 1051 NetLog::StringCallback("priority", RequestPriorityToString(priority_))); |
1051 job_->SetPriority(priority_); | 1052 job_->SetPriority(priority_); |
1052 } | 1053 } |
1053 } | 1054 } |
1054 | 1055 |
1055 void URLRequest::NotifyAuthRequired(AuthChallengeInfo* auth_info) { | 1056 void URLRequest::NotifyAuthRequired(AuthChallengeInfo* auth_info) { |
1056 NetworkDelegate::AuthRequiredResponse rv = | 1057 NetworkDelegate::AuthRequiredResponse rv = |
1057 NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION; | 1058 NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION; |
1058 auth_info_ = auth_info; | 1059 auth_info_ = auth_info; |
1059 if (network_delegate_) { | 1060 if (network_delegate_) { |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1207 has_notified_completion_ = true; | 1208 has_notified_completion_ = true; |
1208 if (network_delegate_) | 1209 if (network_delegate_) |
1209 network_delegate_->NotifyCompleted(this, job_.get() != NULL, | 1210 network_delegate_->NotifyCompleted(this, job_.get() != NULL, |
1210 status_.error()); | 1211 status_.error()); |
1211 } | 1212 } |
1212 | 1213 |
1213 void URLRequest::OnCallToDelegate() { | 1214 void URLRequest::OnCallToDelegate() { |
1214 DCHECK(!calling_delegate_); | 1215 DCHECK(!calling_delegate_); |
1215 DCHECK(blocked_by_.empty()); | 1216 DCHECK(blocked_by_.empty()); |
1216 calling_delegate_ = true; | 1217 calling_delegate_ = true; |
1217 net_log_.BeginEvent(NetLog::TYPE_URL_REQUEST_DELEGATE); | 1218 net_log_.BeginEvent(NetLogEventType::URL_REQUEST_DELEGATE); |
1218 } | 1219 } |
1219 | 1220 |
1220 void URLRequest::OnCallToDelegateComplete() { | 1221 void URLRequest::OnCallToDelegateComplete() { |
1221 // This should have been cleared before resuming the request. | 1222 // This should have been cleared before resuming the request. |
1222 DCHECK(blocked_by_.empty()); | 1223 DCHECK(blocked_by_.empty()); |
1223 if (!calling_delegate_) | 1224 if (!calling_delegate_) |
1224 return; | 1225 return; |
1225 calling_delegate_ = false; | 1226 calling_delegate_ = false; |
1226 net_log_.EndEvent(NetLog::TYPE_URL_REQUEST_DELEGATE); | 1227 net_log_.EndEvent(NetLogEventType::URL_REQUEST_DELEGATE); |
1227 } | 1228 } |
1228 | 1229 |
1229 void URLRequest::GetConnectionAttempts(ConnectionAttempts* out) const { | 1230 void URLRequest::GetConnectionAttempts(ConnectionAttempts* out) const { |
1230 if (job_) | 1231 if (job_) |
1231 job_->GetConnectionAttempts(out); | 1232 job_->GetConnectionAttempts(out); |
1232 else | 1233 else |
1233 out->clear(); | 1234 out->clear(); |
1234 } | 1235 } |
1235 | 1236 |
1236 void URLRequest::set_status(URLRequestStatus status) { | 1237 void URLRequest::set_status(URLRequestStatus status) { |
1237 DCHECK(status_.is_io_pending() || status_.is_success() || | 1238 DCHECK(status_.is_io_pending() || status_.is_success() || |
1238 (!status.is_success() && !status.is_io_pending())); | 1239 (!status.is_success() && !status.is_io_pending())); |
1239 status_ = status; | 1240 status_ = status; |
1240 } | 1241 } |
1241 | 1242 |
1242 } // namespace net | 1243 } // namespace net |
OLD | NEW |