diff options
author | jcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-08 07:41:31 +0000 |
---|---|---|
committer | jcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-08 07:41:31 +0000 |
commit | c4891b363f7d9ca534880d25524adeb810ff3ff0 (patch) | |
tree | 8af2885644966f047a688b66cd2d16f9db1afd9c /net/url_request/url_request.cc | |
parent | b0c819facfd2222853b1fe69a2e0891e17db6791 (diff) | |
download | chromium_src-c4891b363f7d9ca534880d25524adeb810ff3ff0.zip chromium_src-c4891b363f7d9ca534880d25524adeb810ff3ff0.tar.gz chromium_src-c4891b363f7d9ca534880d25524adeb810ff3ff0.tar.bz2 |
Landing again the CL that adds security info to canceled requests (last time it was causing sync XMLHttpRequests to hang, breaking many layout tests).
TBR=darin
Review URL: http://codereview.chromium.org/39321
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11221 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/url_request/url_request.cc')
-rw-r--r-- | net/url_request/url_request.cc | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc index fefd24c..3de8439 100644 --- a/net/url_request/url_request.cc +++ b/net/url_request/url_request.cc @@ -260,10 +260,23 @@ void URLRequest::Start() { } void URLRequest::Cancel() { - CancelWithError(net::ERR_ABORTED); + DoCancel(net::ERR_ABORTED, net::SSLInfo()); } -void URLRequest::CancelWithError(int os_error) { +void URLRequest::SimulateError(int os_error) { + DoCancel(os_error, net::SSLInfo()); +} + +void URLRequest::SimulateSSLError(int os_error, const net::SSLInfo& ssl_info) { + // This should only be called on a started request. + if (!is_pending_ || !job_ || job_->has_response_started()) { + NOTREACHED(); + return; + } + DoCancel(os_error, ssl_info); +} + +void URLRequest::DoCancel(int os_error, const net::SSLInfo& ssl_info) { DCHECK(os_error < 0); // If the URL request already has an error status, then canceling is a no-op. @@ -271,6 +284,7 @@ void URLRequest::CancelWithError(int os_error) { if (status_.is_success()) { status_.set_status(URLRequestStatus::CANCELED); status_.set_os_error(os_error); + response_info_.ssl_info = ssl_info; } // There's nothing to do if we are not waiting on a Job. |