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 f9f6e39883934a6fea57ac53b78702783f21fc26..b33f31e6d9635646dcf4bd5437eead77a2d821c7 100644 |
--- a/net/http/http_stream_factory_impl_job.cc |
+++ b/net/http/http_stream_factory_impl_job.cc |
@@ -707,19 +707,22 @@ int HttpStreamFactoryImpl::Job::DoResolveProxyComplete(int result) { |
bool HttpStreamFactoryImpl::Job::ShouldForceSpdySSL() const { |
bool rv = session_->params().force_spdy_always && |
session_->params().force_spdy_over_ssl; |
- return rv && !session_->HasSpdyExclusion(origin_); |
+ return rv && !session_->HasSpdyExclusion(origin_) && |
+ (request_info_.load_flags & LOAD_UNENCRYPTED_HTTP11) == 0; |
} |
bool HttpStreamFactoryImpl::Job::ShouldForceSpdyWithoutSSL() const { |
bool rv = session_->params().force_spdy_always && |
!session_->params().force_spdy_over_ssl; |
- return rv && !session_->HasSpdyExclusion(origin_); |
+ return rv && !session_->HasSpdyExclusion(origin_) && |
+ (request_info_.load_flags & LOAD_UNENCRYPTED_HTTP11) == 0; |
} |
bool HttpStreamFactoryImpl::Job::ShouldForceQuic() const { |
return session_->params().enable_quic && |
- session_->params().origin_to_force_quic_on.Equals(origin_) && |
- proxy_info_.is_direct(); |
+ session_->params().origin_to_force_quic_on.Equals(origin_) && |
+ proxy_info_.is_direct() && |
+ (request_info_.load_flags & LOAD_UNENCRYPTED_HTTP11) == 0; |
} |
int HttpStreamFactoryImpl::Job::DoWaitForJob() { |
@@ -745,10 +748,17 @@ int HttpStreamFactoryImpl::Job::DoInitConnection() { |
DCHECK(proxy_info_.proxy_server().is_valid()); |
next_state_ = STATE_INIT_CONNECTION_COMPLETE; |
- using_ssl_ = request_info_.url.SchemeIs("https") || |
- request_info_.url.SchemeIs("wss") || ShouldForceSpdySSL(); |
+ using_ssl_ = (request_info_.load_flags & LOAD_UNENCRYPTED_HTTP11) == 0 && |
sclittle
2015/03/04 21:35:23
What happens if the load flag is set for a https U
tbansal1
2015/03/06 19:57:40
Done.
|
+ (request_info_.url.SchemeIs("https") || |
+ request_info_.url.SchemeIs("wss") || ShouldForceSpdySSL()); |
Ryan Hamilton
2015/03/05 01:43:57
This definitely seems wrong. If HTTP11 is required
tbansal1
2015/03/06 19:57:40
Done.
|
using_spdy_ = false; |
+ base::WeakPtr<HttpServerProperties> http_server_properties = |
+ session_->http_server_properties(); |
+ if (http_server_properties) |
+ if ((request_info_.load_flags & LOAD_UNENCRYPTED_HTTP11) != 0) |
+ http_server_properties->SetHTTP11Required(origin_); |
sclittle
2015/03/04 21:35:23
Won't this also force all future requests to this
tbansal1
2015/03/06 19:57:40
Done.
|
+ |
if (ShouldForceQuic()) |
using_quic_ = true; |
@@ -832,8 +842,6 @@ int HttpStreamFactoryImpl::Job::DoInitConnection() { |
false /* not a proxy server */); |
} |
- base::WeakPtr<HttpServerProperties> http_server_properties = |
- session_->http_server_properties(); |
if (http_server_properties) { |
http_server_properties->MaybeForceHTTP11(origin_, &server_ssl_config_); |
if (proxy_info_.is_http() || proxy_info_.is_https()) { |