| Index: net/http/http_proxy_client_socket_pool.cc
|
| diff --git a/net/http/http_proxy_client_socket_pool.cc b/net/http/http_proxy_client_socket_pool.cc
|
| index d4c080ff3e95d1ee8e91d0dbf9662e2a7d4ac091..f7d320697a7aeb3753dc63251ae7ee88fd1a1415 100644
|
| --- a/net/http/http_proxy_client_socket_pool.cc
|
| +++ b/net/http/http_proxy_client_socket_pool.cc
|
| @@ -391,9 +391,21 @@ HttpProxyClientSocketPool::HttpProxyClientSocketPool(
|
| new HttpProxyConnectJobFactory(transport_pool,
|
| ssl_pool,
|
| host_resolver,
|
| - net_log)) {}
|
| + net_log)) {
|
| + // We should always have a |transport_pool_| except in unit tests.
|
| + if (transport_pool_)
|
| + transport_pool_->AddLayeredPool(this);
|
| + if (ssl_pool_)
|
| + ssl_pool_->AddLayeredPool(this);
|
| +}
|
|
|
| -HttpProxyClientSocketPool::~HttpProxyClientSocketPool() {}
|
| +HttpProxyClientSocketPool::~HttpProxyClientSocketPool() {
|
| + if (ssl_pool_)
|
| + ssl_pool_->RemoveLayeredPool(this);
|
| + // We should always have a |transport_pool_| except in unit tests.
|
| + if (transport_pool_)
|
| + transport_pool_->RemoveLayeredPool(this);
|
| +}
|
|
|
| int HttpProxyClientSocketPool::RequestSocket(const std::string& group_name,
|
| const void* socket_params,
|
| @@ -434,6 +446,12 @@ void HttpProxyClientSocketPool::Flush() {
|
| base_.Flush();
|
| }
|
|
|
| +bool HttpProxyClientSocketPool::IsStalled() const {
|
| + return base_.IsStalled() ||
|
| + (transport_pool_ && transport_pool_->IsStalled()) ||
|
| + (ssl_pool_ && ssl_pool_->IsStalled());
|
| +}
|
| +
|
| void HttpProxyClientSocketPool::CloseIdleSockets() {
|
| base_.CloseIdleSockets();
|
| }
|
| @@ -452,6 +470,14 @@ LoadState HttpProxyClientSocketPool::GetLoadState(
|
| return base_.GetLoadState(group_name, handle);
|
| }
|
|
|
| +void HttpProxyClientSocketPool::AddLayeredPool(LayeredPool* layered_pool) {
|
| + base_.AddLayeredPool(layered_pool);
|
| +}
|
| +
|
| +void HttpProxyClientSocketPool::RemoveLayeredPool(LayeredPool* layered_pool) {
|
| + base_.RemoveLayeredPool(layered_pool);
|
| +}
|
| +
|
| DictionaryValue* HttpProxyClientSocketPool::GetInfoAsValue(
|
| const std::string& name,
|
| const std::string& type,
|
| @@ -482,4 +508,10 @@ ClientSocketPoolHistograms* HttpProxyClientSocketPool::histograms() const {
|
| return base_.histograms();
|
| }
|
|
|
| +bool HttpProxyClientSocketPool::CloseOneIdleConnection() {
|
| + if (base_.CloseOneIdleSocket())
|
| + return true;
|
| + return base_.CloseOneIdleConnectionInLayeredPool();
|
| +}
|
| +
|
| } // namespace net
|
|
|