Index: net/http/http_proxy_client_socket_pool.cc |
=================================================================== |
--- net/http/http_proxy_client_socket_pool.cc (revision 113254) |
+++ net/http/http_proxy_client_socket_pool.cc (working copy) |
@@ -391,9 +391,21 @@ |
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 @@ |
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 @@ |
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 @@ |
return base_.histograms(); |
} |
+bool HttpProxyClientSocketPool::CloseOneIdleConnection() { |
+ if (base_.CloseOneIdleSocket()) |
+ return true; |
+ return base_.CloseOneIdleConnectionInLayeredPool(); |
+} |
+ |
} // namespace net |