| Index: net/base/host_resolver_impl.cc
 | 
| diff --git a/net/base/host_resolver_impl.cc b/net/base/host_resolver_impl.cc
 | 
| index 1f43c606b2b329115e19ead6a447bcc548525e89..df5bc7905b2f8acb3ef67c8fb5d70a416795fdbc 100644
 | 
| --- a/net/base/host_resolver_impl.cc
 | 
| +++ b/net/base/host_resolver_impl.cc
 | 
| @@ -683,6 +683,8 @@ HostResolverImpl::HostResolverImpl(
 | 
|  #if defined(OS_WIN)
 | 
|    EnsureWinsockInit();
 | 
|  #endif
 | 
| +  if (network_change_notifier_)
 | 
| +    network_change_notifier_->AddObserver(this);
 | 
|  }
 | 
|  
 | 
|  HostResolverImpl::~HostResolverImpl() {
 | 
| @@ -697,6 +699,9 @@ HostResolverImpl::~HostResolverImpl() {
 | 
|    if (cur_completing_job_)
 | 
|      cur_completing_job_->Cancel();
 | 
|  
 | 
| +  if (network_change_notifier_)
 | 
| +    network_change_notifier_->RemoveObserver(this);
 | 
| +
 | 
|    // Delete the job pools.
 | 
|    for (size_t i = 0u; i < arraysize(job_pools_); ++i)
 | 
|      delete job_pools_[i];
 | 
| @@ -841,7 +846,7 @@ void HostResolverImpl::SetDefaultAddressFamily(AddressFamily address_family) {
 | 
|  void HostResolverImpl::ProbeIPv6Support() {
 | 
|    DCHECK(!ipv6_probe_monitoring_);
 | 
|    ipv6_probe_monitoring_ = true;
 | 
| -  Flush();  // Give initial setup call.
 | 
| +  OnIPAddressChanged();  // Give initial setup call.
 | 
|  }
 | 
|  
 | 
|  void HostResolverImpl::Shutdown() {
 | 
| @@ -1074,7 +1079,7 @@ void HostResolverImpl::OnCancelRequest(const BoundNetLog& net_log,
 | 
|    net_log.EndEvent(NetLog::TYPE_HOST_RESOLVER_IMPL);
 | 
|  }
 | 
|  
 | 
| -void HostResolverImpl::Flush() {
 | 
| +void HostResolverImpl::OnIPAddressChanged() {
 | 
|    if (cache_.get())
 | 
|      cache_->clear();
 | 
|    if (ipv6_probe_monitoring_) {
 | 
| 
 |