Index: net/http/http_stream_factory_impl_job.cc |
diff --git a/net/http/http_stream_factory_impl_job.cc b/net/http/http_stream_factory_impl_job.cc |
index 8729dfbba293736b550fd70027c9852804520ffa..0e37a48e09226d0958a7401ced7b2f97b505a745 100644 |
--- a/net/http/http_stream_factory_impl_job.cc |
+++ b/net/http/http_stream_factory_impl_job.cc |
@@ -903,6 +903,12 @@ int HttpStreamFactoryImpl::Job::DoInitConnectionComplete(int result) { |
return OK; |
} |
+ if (proxy_info_.is_quic() && using_quic_ && |
+ result == ERR_QUIC_PROTOCOL_ERROR) { |
Ryan Hamilton
2015/02/19 17:02:25
I think you might also need to add ERR_QUIC_HANDSH
|
+ using_quic_ = false; |
+ return ReconsiderProxyAfterError(result); |
+ } |
+ |
// TODO(willchan): Make this a bit more exact. Maybe there are recoverable |
// errors, such as ignoring certificate errors for Alternate-Protocol. |
if (result < 0 && waiting_job_) { |
@@ -1313,6 +1319,7 @@ int HttpStreamFactoryImpl::Job::ReconsiderProxyAfterError(int error) { |
case ERR_PROXY_CERTIFICATE_INVALID: |
// This can happen when trying to talk SSL to a non-SSL server (Like a |
// captive portal). |
+ case ERR_QUIC_PROTOCOL_ERROR: |
case ERR_SSL_PROTOCOL_ERROR: |
break; |
case ERR_SOCKS_CONNECTION_HOST_UNREACHABLE: |