Index: net/url_request/url_request.cc |
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc |
index fef10fbdb0b4bd2bea18f1c0f110eff6f0ed8c60..85fcbdfd0f2ffa71e87147837aa05f9d1556089e 100644 |
--- a/net/url_request/url_request.cc |
+++ b/net/url_request/url_request.cc |
@@ -478,30 +478,38 @@ void URLRequest::RestartWithJob(URLRequestJob *job) { |
} |
void URLRequest::Cancel() { |
- DoCancel(ERR_ABORTED, SSLInfo()); |
+ DoCancel(URLRequestStatus(URLRequestStatus::CANCELED, ERR_ABORTED), |
+ SSLInfo()); |
} |
void URLRequest::CancelWithError(int error) { |
- DoCancel(error, SSLInfo()); |
+ DCHECK(error < 0); |
+ DoCancel(URLRequestStatus(URLRequestStatus::CANCELED, error), |
+ SSLInfo()); |
} |
void URLRequest::CancelWithSSLError(int error, const SSLInfo& ssl_info) { |
+ DCHECK(error < 0); |
// This should only be called on a started request. |
if (!is_pending_ || !job_ || job_->has_response_started()) { |
NOTREACHED(); |
return; |
} |
- DoCancel(error, ssl_info); |
+ DoCancel(URLRequestStatus(URLRequestStatus::CANCELED, error), |
+ SSLInfo()); |
} |
-void URLRequest::DoCancel(int error, const SSLInfo& ssl_info) { |
- DCHECK(error < 0); |
+void URLRequest::CancelWithHandledExternallyStatus() { |
+ DoCancel(URLRequestStatus(URLRequestStatus::HANDLED_EXTERNALLY, OK), |
+ SSLInfo()); |
+} |
+void URLRequest::DoCancel(const URLRequestStatus& status, |
+ const SSLInfo& ssl_info) { |
// If the URL request already has an error status, then canceling is a no-op. |
// Plus, we don't want to change the error status once it has been set. |
if (status_.is_success()) { |
- status_.set_status(URLRequestStatus::CANCELED); |
- status_.set_error(error); |
+ status_ = status; |
response_info_.ssl_info = ssl_info; |
} |