Index: net/http/http_stream_factory_impl_job.cc |
=================================================================== |
--- net/http/http_stream_factory_impl_job.cc (revision 104227) |
+++ net/http/http_stream_factory_impl_job.cc (working copy) |
@@ -19,6 +19,7 @@ |
#include "net/http/http_proxy_client_socket.h" |
#include "net/http/http_proxy_client_socket_pool.h" |
#include "net/http/http_request_info.h" |
+#include "net/http/http_server_properties.h" |
#include "net/http/http_stream_factory_impl_request.h" |
#include "net/socket/client_socket_handle.h" |
#include "net/socket/client_socket_pool.h" |
@@ -119,7 +120,17 @@ |
int HttpStreamFactoryImpl::Job::Preconnect(int num_streams) { |
DCHECK_GT(num_streams, 0); |
- num_streams_ = num_streams; |
+ HostPortPair origin_server = |
+ HostPortPair(request_info_.url.HostNoBrackets(), |
+ request_info_.url.EffectiveIntPort()); |
+ HttpServerProperties* http_server_properties = |
+ session_->http_server_properties(); |
+ if (http_server_properties && |
+ http_server_properties->SupportsSpdy(origin_server)) { |
+ num_streams_ = 1; |
+ } else { |
+ num_streams_ = num_streams; |
+ } |
return StartInternal(); |
} |
@@ -821,6 +832,11 @@ |
&new_spdy_session_, using_ssl_); |
if (error != OK) |
return error; |
+ const HostPortPair& host_port_pair = pair.first; |
+ HttpServerProperties* http_server_properties = |
+ session_->http_server_properties(); |
+ if (http_server_properties) |
+ http_server_properties->SetSupportsSpdy(host_port_pair, true); |
spdy_session_direct_ = direct; |
return OK; |
} |