| Index: net/http/http_network_layer.cc
|
| ===================================================================
|
| --- net/http/http_network_layer.cc (revision 3703)
|
| +++ net/http/http_network_layer.cc (working copy)
|
| @@ -46,18 +46,16 @@
|
|
|
| HttpNetworkLayer::HttpNetworkLayer(const ProxyInfo* pi)
|
| : suspended_(false) {
|
| - ProxyResolver* proxy_resolver;
|
| if (pi) {
|
| - proxy_resolver = new ProxyResolverFixed(*pi);
|
| + proxy_resolver_.reset(new ProxyResolverFixed(*pi));
|
| } else {
|
| #if defined(OS_WIN)
|
| - proxy_resolver = new ProxyResolverWinHttp();
|
| + proxy_resolver_.reset(new ProxyResolverWinHttp());
|
| #else
|
| NOTIMPLEMENTED();
|
| - proxy_resolver = new ProxyResolverNull();
|
| + proxy_resolver_.reset(new ProxyResolverNull());
|
| #endif
|
| }
|
| - session_ = new HttpNetworkSession(proxy_resolver);
|
| }
|
|
|
| HttpNetworkLayer::~HttpNetworkLayer() {
|
| @@ -67,6 +65,9 @@
|
| if (suspended_)
|
| return NULL;
|
|
|
| + if (!session_)
|
| + session_ = new HttpNetworkSession(proxy_resolver_.release());
|
| +
|
| return new HttpNetworkTransaction(
|
| session_, ClientSocketFactory::GetDefaultFactory());
|
| }
|
| @@ -82,7 +83,7 @@
|
| void HttpNetworkLayer::Suspend(bool suspend) {
|
| suspended_ = suspend;
|
|
|
| - if (suspend)
|
| + if (suspend && session_)
|
| session_->connection_pool()->CloseIdleSockets();
|
| }
|
|
|
|
|