Index: net/base/network_change_notifier.cc |
diff --git a/net/base/network_change_notifier.cc b/net/base/network_change_notifier.cc |
index b797864ac80f4a74833247f97ebf97ce0a3cc89a..05c72a103b8a29a50e71cca9d849ca89896f0f90 100644 |
--- a/net/base/network_change_notifier.cc |
+++ b/net/base/network_change_notifier.cc |
@@ -688,6 +688,14 @@ void NetworkChangeNotifier::AddNetworkChangeObserver( |
} |
} |
+void NetworkChangeNotifier::AddMaxBandwidthObserver( |
+ MaxBandwidthObserver* observer) { |
+ if (g_network_change_notifier) { |
+ g_network_change_notifier->max_bandwidth_observer_list_->AddObserver( |
+ observer); |
+ } |
+} |
+ |
void NetworkChangeNotifier::RemoveIPAddressObserver( |
IPAddressObserver* observer) { |
if (g_network_change_notifier) { |
@@ -719,6 +727,14 @@ void NetworkChangeNotifier::RemoveNetworkChangeObserver( |
} |
} |
+void NetworkChangeNotifier::RemoveMaxBandwidthObserver( |
+ MaxBandwidthObserver* observer) { |
+ if (g_network_change_notifier) { |
+ g_network_change_notifier->max_bandwidth_observer_list_->RemoveObserver( |
+ observer); |
+ } |
+} |
+ |
// static |
void NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests() { |
if (g_network_change_notifier) |
@@ -747,19 +763,20 @@ void NetworkChangeNotifier::SetTestNotificationsOnly(bool test_only) { |
NetworkChangeNotifier::NetworkChangeNotifier( |
const NetworkChangeCalculatorParams& params |
- /*= NetworkChangeCalculatorParams()*/) |
- : ip_address_observer_list_( |
- new ObserverListThreadSafe<IPAddressObserver>( |
- ObserverListBase<IPAddressObserver>::NOTIFY_EXISTING_ONLY)), |
+ /*= NetworkChangeCalculatorParams()*/) |
+ : ip_address_observer_list_(new ObserverListThreadSafe<IPAddressObserver>( |
+ ObserverListBase<IPAddressObserver>::NOTIFY_EXISTING_ONLY)), |
connection_type_observer_list_( |
- new ObserverListThreadSafe<ConnectionTypeObserver>( |
- ObserverListBase<ConnectionTypeObserver>::NOTIFY_EXISTING_ONLY)), |
- resolver_state_observer_list_( |
- new ObserverListThreadSafe<DNSObserver>( |
- ObserverListBase<DNSObserver>::NOTIFY_EXISTING_ONLY)), |
+ new ObserverListThreadSafe<ConnectionTypeObserver>( |
+ ObserverListBase<ConnectionTypeObserver>::NOTIFY_EXISTING_ONLY)), |
+ resolver_state_observer_list_(new ObserverListThreadSafe<DNSObserver>( |
+ ObserverListBase<DNSObserver>::NOTIFY_EXISTING_ONLY)), |
network_change_observer_list_( |
- new ObserverListThreadSafe<NetworkChangeObserver>( |
- ObserverListBase<NetworkChangeObserver>::NOTIFY_EXISTING_ONLY)), |
+ new ObserverListThreadSafe<NetworkChangeObserver>( |
+ ObserverListBase<NetworkChangeObserver>::NOTIFY_EXISTING_ONLY)), |
+ max_bandwidth_observer_list_( |
+ new ObserverListThreadSafe<MaxBandwidthObserver>( |
+ ObserverListBase<MaxBandwidthObserver>::NOTIFY_EXISTING_ONLY)), |
network_state_(new NetworkState()), |
network_change_calculator_(new NetworkChangeCalculator(params)), |
test_notifications_only_(false) { |
@@ -886,6 +903,16 @@ void NetworkChangeNotifier::NotifyObserversOfNetworkChange( |
} |
// static |
+void NetworkChangeNotifier::NotifyObserversOfMaxBandwidthChange( |
+ double max_bandwidth_mbps) { |
+ if (g_network_change_notifier && |
+ !g_network_change_notifier->test_notifications_only_) { |
+ g_network_change_notifier->NotifyObserversOfMaxBandwidthChangeImpl( |
+ max_bandwidth_mbps); |
+ } |
+} |
+ |
+// static |
void NetworkChangeNotifier::NotifyObserversOfDNSChange() { |
if (g_network_change_notifier && |
!g_network_change_notifier->test_notifications_only_) { |
@@ -921,6 +948,12 @@ void NetworkChangeNotifier::NotifyObserversOfDNSChangeImpl() { |
resolver_state_observer_list_->Notify(&DNSObserver::OnDNSChanged); |
} |
+void NetworkChangeNotifier::NotifyObserversOfMaxBandwidthChangeImpl( |
+ double max_bandwidth_mbps) { |
+ max_bandwidth_observer_list_->Notify( |
+ &MaxBandwidthObserver::OnMaxBandwidthChanged, max_bandwidth_mbps); |
+} |
+ |
NetworkChangeNotifier::DisableForTest::DisableForTest() |
: network_change_notifier_(g_network_change_notifier) { |
DCHECK(g_network_change_notifier); |