diff options
Diffstat (limited to 'net/http/http_network_layer.cc')
-rw-r--r-- | net/http/http_network_layer.cc | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/net/http/http_network_layer.cc b/net/http/http_network_layer.cc index 65d2aa3..a883db2 100644 --- a/net/http/http_network_layer.cc +++ b/net/http/http_network_layer.cc @@ -94,7 +94,7 @@ HttpNetworkLayer::HttpNetworkLayer(HttpNetworkSession* session) : socket_factory_(ClientSocketFactory::GetDefaultFactory()), ssl_config_service_(NULL), session_(session), - spdy_session_pool_(session->spdy_session_pool()), + spdy_session_pool_(NULL), http_auth_handler_factory_(NULL), network_delegate_(NULL), net_log_(NULL), @@ -127,10 +127,17 @@ void HttpNetworkLayer::Suspend(bool suspend) { HttpNetworkSession* HttpNetworkLayer::GetSession() { if (!session_) { DCHECK(proxy_service_); - SpdySessionPool* spdy_pool = new SpdySessionPool(ssl_config_service_); - session_ = new HttpNetworkSession(host_resolver_, proxy_service_, - socket_factory_, ssl_config_service_, spdy_pool, - http_auth_handler_factory_, network_delegate_, net_log_); + if (!spdy_session_pool_.get()) + spdy_session_pool_.reset(new SpdySessionPool(ssl_config_service_)); + session_ = new HttpNetworkSession( + host_resolver_, + proxy_service_, + socket_factory_, + ssl_config_service_, + spdy_session_pool_.release(), + http_auth_handler_factory_, + network_delegate_, + net_log_); // These were just temps for lazy-initializing HttpNetworkSession. host_resolver_ = NULL; proxy_service_ = NULL; |