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 7d677f295ae62f9096523f2e996e79585be3c612..0f6c500f7f0112ac086174f578bcaee7e5d9ba11 100644 |
--- a/net/http/http_stream_factory_impl_job.cc |
+++ b/net/http/http_stream_factory_impl_job.cc |
@@ -863,7 +863,8 @@ |
replacements.ClearRef(); |
url = url.ReplaceComponents(replacements); |
- if (session_->quic_stream_factory()->IsQuicDisabled()) |
+ // If QUIC is disabled on the destination port, return error. |
+ if (session_->quic_stream_factory()->IsQuicDisabled(destination.port())) |
return ERR_QUIC_PROTOCOL_ERROR; |
} else { |
DCHECK(using_ssl_); |
@@ -992,10 +993,10 @@ |
} |
if (proxy_info_.is_quic() && using_quic_) { |
- // Mark QUIC proxy as bad if QUIC got disabled. |
+ // Mark QUIC proxy as bad if QUIC got disabled on the destination port. |
// Underlying QUIC layer would have closed the connection. |
HostPortPair destination = proxy_info_.proxy_server().host_port_pair(); |
- if (session_->quic_stream_factory()->IsQuicDisabled()) { |
+ if (session_->quic_stream_factory()->IsQuicDisabled(destination.port())) { |
using_quic_ = false; |
return ReconsiderProxyAfterError(ERR_QUIC_PROTOCOL_ERROR); |
} |