| Index: net/test/url_request/url_request_failed_job.cc
|
| diff --git a/net/test/url_request/url_request_failed_job.cc b/net/test/url_request/url_request_failed_job.cc
|
| index d7c479b14f719842b43379380cac89f9f7fe0c90..5605751e62bbbfc9b93ba6b7a1c58d7f2c5a0517 100644
|
| --- a/net/test/url_request/url_request_failed_job.cc
|
| +++ b/net/test/url_request/url_request_failed_job.cc
|
| @@ -14,6 +14,7 @@
|
| #include "net/base/net_errors.h"
|
| #include "net/base/url_util.h"
|
| #include "net/http/http_response_headers.h"
|
| +#include "net/ssl/ssl_cert_request_info.h"
|
| #include "net/url_request/url_request.h"
|
| #include "net/url_request/url_request_filter.h"
|
| #include "net/url_request/url_request_interceptor.h"
|
| @@ -29,6 +30,7 @@ const char* kFailurePhase[]{
|
| "start", // START
|
| "readsync", // READ_SYNC
|
| "readasync", // READ_ASYNC
|
| + "certreq", // CERT_REQUESTED
|
| };
|
|
|
| static_assert(arraysize(kFailurePhase) ==
|
| @@ -69,7 +71,7 @@ GURL GetMockUrl(const std::string& scheme,
|
| URLRequestFailedJob::FailurePhase phase,
|
| int net_error) {
|
| CHECK_GE(phase, URLRequestFailedJob::FailurePhase::START);
|
| - CHECK_LE(phase, URLRequestFailedJob::FailurePhase::READ_ASYNC);
|
| + CHECK_LT(phase, URLRequestFailedJob::FailurePhase::MAX_FAILURE_PHASE);
|
| CHECK_LT(net_error, OK);
|
| return GURL(scheme + "://" + hostname + "/error?" + kFailurePhase[phase] +
|
| "=" + base::IntToString(net_error));
|
| @@ -86,7 +88,7 @@ URLRequestFailedJob::URLRequestFailedJob(URLRequest* request,
|
| net_error_(net_error),
|
| weak_factory_(this) {
|
| CHECK_GE(phase, URLRequestFailedJob::FailurePhase::START);
|
| - CHECK_LE(phase, URLRequestFailedJob::FailurePhase::READ_ASYNC);
|
| + CHECK_LT(phase, URLRequestFailedJob::FailurePhase::MAX_FAILURE_PHASE);
|
| CHECK_LT(net_error, OK);
|
| }
|
|
|
| @@ -120,6 +122,12 @@ int URLRequestFailedJob::GetResponseCode() const {
|
| return URLRequestJob::GetResponseCode();
|
| }
|
|
|
| +void URLRequestFailedJob::ContinueWithCertificate(
|
| + X509Certificate* client_cert,
|
| + SSLPrivateKey* client_private_key) {
|
| + NotifyStartError(URLRequestStatus::FromError(net_error_));
|
| +}
|
| +
|
| void URLRequestFailedJob::GetResponseInfo(HttpResponseInfo* info) {
|
| *info = response_info_;
|
| }
|
| @@ -184,6 +192,11 @@ void URLRequestFailedJob::StartAsync() {
|
| SetStatus(URLRequestStatus(URLRequestStatus::IO_PENDING, 0));
|
| return;
|
| }
|
| + if (phase_ == CERT_REQUESTED) {
|
| + scoped_refptr<SSLCertRequestInfo> request_all(new SSLCertRequestInfo());
|
| + NotifyCertificateRequested(request_all.get());
|
| + return;
|
| + }
|
| response_info_.headers = new net::HttpResponseHeaders("HTTP/1.1 200 OK");
|
| NotifyHeadersComplete();
|
| }
|
|
|