| 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 "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 void URLRequest::Delegate::OnSSLCertificateError(URLRequest* request, | 125 void URLRequest::Delegate::OnSSLCertificateError(URLRequest* request, |
| 126 const SSLInfo& ssl_info, | 126 const SSLInfo& ssl_info, |
| 127 bool is_hsts_ok) { | 127 bool is_hsts_ok) { |
| 128 request->Cancel(); | 128 request->Cancel(); |
| 129 } | 129 } |
| 130 | 130 |
| 131 /////////////////////////////////////////////////////////////////////////////// | 131 /////////////////////////////////////////////////////////////////////////////// |
| 132 // URLRequest | 132 // URLRequest |
| 133 | 133 |
| 134 URLRequest::URLRequest(const GURL& url, Delegate* delegate) | 134 URLRequest::URLRequest(const GURL& url, Delegate* delegate) |
| 135 : url_chain_(1, url), | 135 : context_(NULL), |
| 136 url_chain_(1, url), |
| 136 method_("GET"), | 137 method_("GET"), |
| 137 referrer_policy_(CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE), | 138 referrer_policy_(CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE), |
| 138 load_flags_(LOAD_NORMAL), | 139 load_flags_(LOAD_NORMAL), |
| 139 delegate_(delegate), | 140 delegate_(delegate), |
| 140 is_pending_(false), | 141 is_pending_(false), |
| 141 redirect_limit_(kMaxRedirects), | 142 redirect_limit_(kMaxRedirects), |
| 142 final_upload_progress_(0), | 143 final_upload_progress_(0), |
| 143 priority_(LOWEST), | 144 priority_(LOWEST), |
| 144 identifier_(GenerateURLRequestIdentifier()), | 145 identifier_(GenerateURLRequestIdentifier()), |
| 145 blocked_on_delegate_(false), | 146 blocked_on_delegate_(false), |
| (...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 714 | 715 |
| 715 if (!final_upload_progress_) | 716 if (!final_upload_progress_) |
| 716 final_upload_progress_ = job_->GetUploadProgress(); | 717 final_upload_progress_ = job_->GetUploadProgress(); |
| 717 | 718 |
| 718 PrepareToRestart(); | 719 PrepareToRestart(); |
| 719 Start(); | 720 Start(); |
| 720 return OK; | 721 return OK; |
| 721 } | 722 } |
| 722 | 723 |
| 723 const URLRequestContext* URLRequest::context() const { | 724 const URLRequestContext* URLRequest::context() const { |
| 724 return context_.get(); | 725 return context_; |
| 725 } | 726 } |
| 726 | 727 |
| 727 void URLRequest::set_context(const URLRequestContext* context) { | 728 void URLRequest::set_context(const URLRequestContext* context) { |
| 728 // Update the URLRequest lists in the URLRequestContext. | 729 // Update the URLRequest lists in the URLRequestContext. |
| 729 if (context_) { | 730 if (context_) { |
| 730 std::set<const URLRequest*>* url_requests = context_->url_requests(); | 731 std::set<const URLRequest*>* url_requests = context_->url_requests(); |
| 731 CHECK(ContainsKey(*url_requests, this)); | 732 CHECK(ContainsKey(*url_requests, this)); |
| 732 url_requests->erase(this); | 733 url_requests->erase(this); |
| 733 } | 734 } |
| 734 | 735 |
| 735 if (context) { | 736 if (context) { |
| 736 std::set<const URLRequest*>* url_requests = context->url_requests(); | 737 std::set<const URLRequest*>* url_requests = context->url_requests(); |
| 737 CHECK(!ContainsKey(*url_requests, this)); | 738 CHECK(!ContainsKey(*url_requests, this)); |
| 738 url_requests->insert(this); | 739 url_requests->insert(this); |
| 739 } | 740 } |
| 740 | 741 |
| 741 scoped_refptr<const URLRequestContext> prev_context = context_; | 742 const URLRequestContext* prev_context = context_; |
| 742 | 743 |
| 743 context_ = context; | 744 context_ = context; |
| 744 | 745 |
| 745 // If the context this request belongs to has changed, update the tracker. | 746 // If the context this request belongs to has changed, update the tracker. |
| 746 if (prev_context != context) { | 747 if (prev_context != context) { |
| 747 int net_error = OK; | 748 int net_error = OK; |
| 748 // Log error only on failure, not cancellation, as even successful requests | 749 // Log error only on failure, not cancellation, as even successful requests |
| 749 // are "cancelled" on destruction. | 750 // are "cancelled" on destruction. |
| 750 if (status_.status() == URLRequestStatus::FAILED) | 751 if (status_.status() == URLRequestStatus::FAILED) |
| 751 net_error = status_.error(); | 752 net_error = status_.error(); |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 909 | 910 |
| 910 void URLRequest::SetUnblockedOnDelegate() { | 911 void URLRequest::SetUnblockedOnDelegate() { |
| 911 if (!blocked_on_delegate_) | 912 if (!blocked_on_delegate_) |
| 912 return; | 913 return; |
| 913 blocked_on_delegate_ = false; | 914 blocked_on_delegate_ = false; |
| 914 load_state_param_.clear(); | 915 load_state_param_.clear(); |
| 915 net_log_.EndEvent(NetLog::TYPE_URL_REQUEST_BLOCKED_ON_DELEGATE, NULL); | 916 net_log_.EndEvent(NetLog::TYPE_URL_REQUEST_BLOCKED_ON_DELEGATE, NULL); |
| 916 } | 917 } |
| 917 | 918 |
| 918 } // namespace net | 919 } // namespace net |
| OLD | NEW |