| Index: net/base/network_change_notifier.cc
|
| diff --git a/net/base/network_change_notifier.cc b/net/base/network_change_notifier.cc
|
| index 8c61ac63737949638397a34418bd3d7bb846798d..1ac14bfbe19a05603e8240b816b115f1ee5b477e 100644
|
| --- a/net/base/network_change_notifier.cc
|
| +++ b/net/base/network_change_notifier.cc
|
| @@ -58,28 +58,57 @@ NetworkChangeNotifier* NetworkChangeNotifier::CreateMock() {
|
| return new MockNetworkChangeNotifier();
|
| }
|
|
|
| -void NetworkChangeNotifier::AddObserver(Observer* observer) {
|
| +void NetworkChangeNotifier::AddIPAddressObserver(IPAddressObserver* observer) {
|
| if (g_network_change_notifier)
|
| - g_network_change_notifier->observer_list_->AddObserver(observer);
|
| + g_network_change_notifier->ip_address_observer_list_->AddObserver(observer);
|
| }
|
|
|
| -void NetworkChangeNotifier::RemoveObserver(Observer* observer) {
|
| - if (g_network_change_notifier)
|
| - g_network_change_notifier->observer_list_->RemoveObserver(observer);
|
| +void NetworkChangeNotifier::AddOnlineStateObserver(
|
| + OnlineStateObserver* observer) {
|
| + if (g_network_change_notifier) {
|
| + g_network_change_notifier->online_state_observer_list_->AddObserver(
|
| + observer);
|
| + }
|
| +}
|
| +
|
| +void NetworkChangeNotifier::RemoveIPAddressObserver(
|
| + IPAddressObserver* observer) {
|
| + if (g_network_change_notifier) {
|
| + g_network_change_notifier->ip_address_observer_list_->RemoveObserver(
|
| + observer);
|
| + }
|
| +}
|
| +
|
| +void NetworkChangeNotifier::RemoveOnlineStateObserver(
|
| + OnlineStateObserver* observer) {
|
| + if (g_network_change_notifier) {
|
| + g_network_change_notifier->online_state_observer_list_->RemoveObserver(
|
| + observer);
|
| + }
|
| }
|
|
|
| NetworkChangeNotifier::NetworkChangeNotifier()
|
| - : observer_list_(
|
| - new ObserverListThreadSafe<Observer>(
|
| - ObserverListBase<Observer>::NOTIFY_EXISTING_ONLY)) {
|
| + : ip_address_observer_list_(
|
| + new ObserverListThreadSafe<IPAddressObserver>(
|
| + ObserverListBase<IPAddressObserver>::NOTIFY_EXISTING_ONLY)),
|
| + online_state_observer_list_(
|
| + new ObserverListThreadSafe<OnlineStateObserver>(
|
| + ObserverListBase<OnlineStateObserver>::NOTIFY_EXISTING_ONLY)) {
|
| DCHECK(!g_network_change_notifier);
|
| g_network_change_notifier = this;
|
| }
|
|
|
| void NetworkChangeNotifier::NotifyObserversOfIPAddressChange() {
|
| if (g_network_change_notifier) {
|
| - g_network_change_notifier->observer_list_->Notify(
|
| - &Observer::OnIPAddressChanged);
|
| + g_network_change_notifier->ip_address_observer_list_->Notify(
|
| + &IPAddressObserver::OnIPAddressChanged);
|
| + }
|
| +}
|
| +
|
| +void NetworkChangeNotifier::NotifyObserversOfOnlineStateChange() {
|
| + if (g_network_change_notifier) {
|
| + g_network_change_notifier->online_state_observer_list_->Notify(
|
| + &OnlineStateObserver::OnOnlineStateChanged, !IsOffline());
|
| }
|
| }
|
|
|
|
|