| Index: net/base/network_change_notifier.cc
|
| diff --git a/net/base/network_change_notifier.cc b/net/base/network_change_notifier.cc
|
| index 2eb59ade76a77ae1dbc46134aa6cda564073cb3b..29b983ea3b2a57a9638f7ce8c1f265bdd1c06984 100644
|
| --- a/net/base/network_change_notifier.cc
|
| +++ b/net/base/network_change_notifier.cc
|
| @@ -90,6 +90,13 @@ void NetworkChangeNotifier::AddOnlineStateObserver(
|
| }
|
| }
|
|
|
| +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::RemoveOnlineStateObserver(
|
| }
|
| }
|
|
|
| +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::NotifyObserversOfIPAddressChange() {
|
| }
|
| }
|
|
|
| +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(
|
|
|