| Index: net/socket/client_socket_pool_base.h
|
| diff --git a/net/socket/client_socket_pool_base.h b/net/socket/client_socket_pool_base.h
|
| index 9e46e5eabd885c7f9c541b7b5b8b760ad2ddecf8..2438082fe1c6568d46b1e0e6bf845ba9c7f801b6 100644
|
| --- a/net/socket/client_socket_pool_base.h
|
| +++ b/net/socket/client_socket_pool_base.h
|
| @@ -293,6 +293,14 @@ class NET_EXPORT_PRIVATE ClientSocketPoolBaseHelper
|
|
|
| bool HasGroup(const std::string& group_name) const;
|
|
|
| + // Called to enable/disable cleaning up idle sockets. When enabled,
|
| + // idle sockets that have been around for longer than a period defined
|
| + // by kCleanupInterval are cleaned up using a timer. Otherwise they are
|
| + // closed next time client makes a request. This may reduce network
|
| + // activity and power consumption.
|
| + bool cleanup_timer_enabled() const { return use_cleanup_timer_; }
|
| + void SetCleanupTimerEnabled(bool enabled);
|
| +
|
| // Closes all idle sockets if |force| is true. Else, only closes idle
|
| // sockets that timed out or can't be reused. Made public for testing.
|
| void CleanupIdleSockets(bool force);
|
| @@ -442,6 +450,9 @@ class NET_EXPORT_PRIVATE ClientSocketPoolBaseHelper
|
| void IncrementIdleCount();
|
| void DecrementIdleCount();
|
|
|
| + // Start cleanup timer for idle sockets.
|
| + void StartIdleSocketTimer();
|
| +
|
| // Scans the group map for groups which have an available socket slot and
|
| // at least one pending request. Returns true if any groups are stalled, and
|
| // if so, fills |group| and |group_name| with data of the stalled group
|
| @@ -552,6 +563,9 @@ class NET_EXPORT_PRIVATE ClientSocketPoolBaseHelper
|
| // The maximum number of sockets kept per group.
|
| const int max_sockets_per_group_;
|
|
|
| + // Whether to use timer to cleanup idle sockets.
|
| + bool use_cleanup_timer_;
|
| +
|
| // The time to wait until closing idle sockets.
|
| const base::TimeDelta unused_idle_socket_timeout_;
|
| const base::TimeDelta used_idle_socket_timeout_;
|
| @@ -705,6 +719,14 @@ class ClientSocketPoolBase {
|
| return helper_.HasGroup(group_name);
|
| }
|
|
|
| + bool cleanup_timer_enabled() const {
|
| + return helper_.cleanup_timer_enabled();
|
| + }
|
| +
|
| + void SetCleanupTimerEnabled(bool enabled) {
|
| + return helper_.SetCleanupTimerEnabled(enabled);
|
| + }
|
| +
|
| void CleanupIdleSockets(bool force) {
|
| return helper_.CleanupIdleSockets(force);
|
| }
|
|
|