Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(663)

Unified Diff: net/base/network_change_notifier.h

Issue 780293003: [NetInfo] Add MaxBandwidthChanged notification and implement on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@maxbandwidth_android
Patch Set: Don't monitor RSSI if there is no permission to act on it Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/base/network_change_notifier.h
diff --git a/net/base/network_change_notifier.h b/net/base/network_change_notifier.h
index 285c52b8e6e2fcb52b76d28342749029adc464ff..0ea2f54c5138c192f2f9429bd77cda03312ee410 100644
--- a/net/base/network_change_notifier.h
+++ b/net/base/network_change_notifier.h
@@ -174,6 +174,25 @@ class NET_EXPORT NetworkChangeNotifier {
DISALLOW_COPY_AND_ASSIGN(NetworkChangeObserver);
};
+ class NET_EXPORT MaxBandwidthChangeObserver {
pauljensen 2014/12/11 16:13:57 Can we remove the "Change" from this name...and ev
jkarlin 2014/12/15 19:43:55 I've renamed the observer, but not "NotifyMaxBandw
+ public:
+ // Will be called when a change occurs to the network's maximum bandwidth as
+ // defined in http://w3c.github.io/netinfo/. Generally this will only be
+ // called on bandwidth changing network connection/disconnection events.
+ // Some platforms may call it more frequently, such as when WiFi signal
+ // strength changes.
+ // TODO(jkarlin): This is currently only implemented for Android. Implement
+ // on every platform.
+ virtual void OnMaxBandwidthChanged(double max_bandwidth_mbps) = 0;
+
+ protected:
+ MaxBandwidthChangeObserver() {}
+ virtual ~MaxBandwidthChangeObserver() {}
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(MaxBandwidthChangeObserver);
+ };
+
virtual ~NetworkChangeNotifier();
// See the description of NetworkChangeNotifier::GetConnectionType().
@@ -252,6 +271,8 @@ class NET_EXPORT NetworkChangeNotifier {
static void AddConnectionTypeObserver(ConnectionTypeObserver* observer);
static void AddDNSObserver(DNSObserver* observer);
static void AddNetworkChangeObserver(NetworkChangeObserver* observer);
+ static void AddMaxBandwidthChangeObserver(
+ MaxBandwidthChangeObserver* observer);
// Unregisters |observer| from receiving notifications. This must be called
// on the same thread on which AddObserver() was called. Like AddObserver(),
@@ -264,6 +285,8 @@ class NET_EXPORT NetworkChangeNotifier {
static void RemoveConnectionTypeObserver(ConnectionTypeObserver* observer);
static void RemoveDNSObserver(DNSObserver* observer);
static void RemoveNetworkChangeObserver(NetworkChangeObserver* observer);
+ static void RemoveMaxBandwidthChangeObserver(
+ MaxBandwidthChangeObserver* observer);
// Allow unit tests to trigger notifications.
static void NotifyObserversOfIPAddressChangeForTests();
@@ -366,6 +389,7 @@ class NET_EXPORT NetworkChangeNotifier {
static void NotifyObserversOfConnectionTypeChange();
static void NotifyObserversOfDNSChange();
static void NotifyObserversOfNetworkChange(ConnectionType type);
+ static void NotifyObserversOfMaxBandwidthChange(double max_bandwidth_mbps);
// Stores |config| in NetworkState and notifies observers.
static void SetDnsConfig(const DnsConfig& config);
@@ -383,15 +407,18 @@ class NET_EXPORT NetworkChangeNotifier {
void NotifyObserversOfConnectionTypeChangeImpl(ConnectionType type);
void NotifyObserversOfDNSChangeImpl();
void NotifyObserversOfNetworkChangeImpl(ConnectionType type);
+ void NotifyObserversOfMaxBandwidthChangeImpl(double max_bandwidth_mbps);
- const scoped_refptr<ObserverListThreadSafe<IPAddressObserver> >
+ const scoped_refptr<ObserverListThreadSafe<IPAddressObserver>>
ip_address_observer_list_;
- const scoped_refptr<ObserverListThreadSafe<ConnectionTypeObserver> >
+ const scoped_refptr<ObserverListThreadSafe<ConnectionTypeObserver>>
connection_type_observer_list_;
- const scoped_refptr<ObserverListThreadSafe<DNSObserver> >
+ const scoped_refptr<ObserverListThreadSafe<DNSObserver>>
resolver_state_observer_list_;
- const scoped_refptr<ObserverListThreadSafe<NetworkChangeObserver> >
+ const scoped_refptr<ObserverListThreadSafe<NetworkChangeObserver>>
network_change_observer_list_;
+ const scoped_refptr<ObserverListThreadSafe<MaxBandwidthChangeObserver>>
+ max_bandwidth_change_observer_list_;
// The current network state. Hosts DnsConfig, exposed via GetDnsConfig.
scoped_ptr<NetworkState> network_state_;

Powered by Google App Engine
This is Rietveld 408576698