Index: net/base/network_change_notifier.cc |
=================================================================== |
--- net/base/network_change_notifier.cc (revision 99692) |
+++ net/base/network_change_notifier.cc (working copy) |
@@ -90,6 +90,13 @@ |
} |
} |
+void NetworkChangeNotifier::AddDNSObserver(DNSObserver* observer) { |
+ if (g_network_change_notifier) { |
+ g_network_change_notifier->resolver_state_observer_list_->AddObserver( |
+ observer); |
+ } |
+} |
+ |
void NetworkChangeNotifier::RemoveIPAddressObserver( |
IPAddressObserver* observer) { |
if (g_network_change_notifier) { |
@@ -106,13 +113,23 @@ |
} |
} |
+void NetworkChangeNotifier::RemoveDNSObserver(DNSObserver* observer) { |
+ if (g_network_change_notifier) { |
+ g_network_change_notifier->resolver_state_observer_list_->RemoveObserver( |
+ observer); |
+ } |
+} |
+ |
NetworkChangeNotifier::NetworkChangeNotifier() |
: ip_address_observer_list_( |
new ObserverListThreadSafe<IPAddressObserver>( |
ObserverListBase<IPAddressObserver>::NOTIFY_EXISTING_ONLY)), |
online_state_observer_list_( |
new ObserverListThreadSafe<OnlineStateObserver>( |
- ObserverListBase<OnlineStateObserver>::NOTIFY_EXISTING_ONLY)) { |
+ ObserverListBase<OnlineStateObserver>::NOTIFY_EXISTING_ONLY)), |
+ resolver_state_observer_list_( |
+ new ObserverListThreadSafe<DNSObserver>( |
+ ObserverListBase<DNSObserver>::NOTIFY_EXISTING_ONLY)) { |
DCHECK(!g_network_change_notifier); |
g_network_change_notifier = this; |
} |
@@ -124,6 +141,13 @@ |
} |
} |
+void NetworkChangeNotifier::NotifyObserversOfDNSChange() { |
+ if (g_network_change_notifier) { |
+ g_network_change_notifier->resolver_state_observer_list_->Notify( |
+ &DNSObserver::OnDNSChanged); |
+ } |
+} |
+ |
void NetworkChangeNotifier::NotifyObserversOfOnlineStateChange() { |
if (g_network_change_notifier) { |
g_network_change_notifier->online_state_observer_list_->Notify( |