| Index: net/socket/client_socket_pool_base.cc
 | 
| diff --git a/net/socket/client_socket_pool_base.cc b/net/socket/client_socket_pool_base.cc
 | 
| index eb1cd5134c2ca190cf65e3bf2a4388f8e9e0c262..4b6cff0820b55697dca63d1916a2477b1af1a3b2 100644
 | 
| --- a/net/socket/client_socket_pool_base.cc
 | 
| +++ b/net/socket/client_socket_pool_base.cc
 | 
| @@ -110,7 +110,8 @@ ClientSocketPoolBaseHelper::ClientSocketPoolBaseHelper(
 | 
|      int max_sockets_per_group,
 | 
|      base::TimeDelta unused_idle_socket_timeout,
 | 
|      base::TimeDelta used_idle_socket_timeout,
 | 
| -    ConnectJobFactory* connect_job_factory)
 | 
| +    ConnectJobFactory* connect_job_factory,
 | 
| +    NetworkChangeNotifier* network_change_notifier)
 | 
|      : idle_socket_count_(0),
 | 
|        connecting_socket_count_(0),
 | 
|        handed_out_socket_count_(0),
 | 
| @@ -120,10 +121,14 @@ ClientSocketPoolBaseHelper::ClientSocketPoolBaseHelper(
 | 
|        used_idle_socket_timeout_(used_idle_socket_timeout),
 | 
|        may_have_stalled_group_(false),
 | 
|        connect_job_factory_(connect_job_factory),
 | 
| +      network_change_notifier_(network_change_notifier),
 | 
|        backup_jobs_enabled_(false),
 | 
|        ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {
 | 
|    DCHECK_LE(0, max_sockets_per_group);
 | 
|    DCHECK_LE(max_sockets_per_group, max_sockets);
 | 
| +
 | 
| +  if (network_change_notifier_)
 | 
| +    network_change_notifier_->AddObserver(this);
 | 
|  }
 | 
|  
 | 
|  ClientSocketPoolBaseHelper::~ClientSocketPoolBaseHelper() {
 | 
| @@ -135,6 +140,9 @@ ClientSocketPoolBaseHelper::~ClientSocketPoolBaseHelper() {
 | 
|    CloseIdleSockets();
 | 
|    CHECK(group_map_.empty());
 | 
|    DCHECK_EQ(0, connecting_socket_count_);
 | 
| +
 | 
| +  if (network_change_notifier_)
 | 
| +    network_change_notifier_->RemoveObserver(this);
 | 
|  }
 | 
|  
 | 
|  // InsertRequestIntoQueue inserts the request into the queue based on
 | 
| @@ -583,6 +591,10 @@ void ClientSocketPoolBaseHelper::OnConnectJobComplete(
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +void ClientSocketPoolBaseHelper::OnIPAddressChanged() {
 | 
| +  CloseIdleSockets();
 | 
| +}
 | 
| +
 | 
|  void ClientSocketPoolBaseHelper::RemoveConnectJob(const ConnectJob *job,
 | 
|                                                    Group* group) {
 | 
|    CHECK_GT(connecting_socket_count_, 0);
 | 
| 
 |