Chromium Code Reviews| Index: net/base/network_change_notifier.h |
| diff --git a/net/base/network_change_notifier.h b/net/base/network_change_notifier.h |
| index 124e0849d28d0f5ead52a591e338bc3a85fe1616..0f32f96424f4f57446ef54e1442d00726c69011b 100644 |
| --- a/net/base/network_change_notifier.h |
| +++ b/net/base/network_change_notifier.h |
| @@ -9,13 +9,21 @@ |
| #include "base/observer_list_threadsafe.h" |
| #include "base/time.h" |
| #include "net/base/net_export.h" |
| +#if defined(OS_WIN) |
| +#include "net/dns/dns_config_service_win.h" |
| +#endif |
| class GURL; |
| +// Temporary layering violation to allow existing users of a deprecated |
| +// interface. |
| +class IOThreadLoggingNetworkChangeObserver; |
| + |
| +class NetWatcher; |
| + |
| namespace net { |
| struct DnsConfig; |
| -class HistogramWatcher; |
| class NetworkChangeNotifierFactory; |
| #if defined(OS_LINUX) |
| @@ -43,6 +51,9 @@ class NET_EXPORT NetworkChangeNotifier { |
| CONNECTION_NONE = 6 // No connection. |
| }; |
| + class HistogramWatcher; |
| + class NetworkChangeCalculator; |
| + |
| class NET_EXPORT IPAddressObserver { |
| public: |
| // Will be called when the IP address of the primary interface changes. |
| @@ -190,10 +201,31 @@ class NET_EXPORT NetworkChangeNotifier { |
| // called back with notifications. This is safe to call if Create() has not |
| // been called (as long as it doesn't race the Create() call on another |
| // thread), in which case it will simply do nothing. |
| - static void AddIPAddressObserver(IPAddressObserver* observer); |
| - static void AddConnectionTypeObserver(ConnectionTypeObserver* observer); |
| static void AddDNSObserver(DNSObserver* observer); |
| static void AddNetworkChangeObserver(NetworkChangeObserver* observer); |
| + // IPAddress and ConnectionType notifications are now only used for logging |
| + // and calculation of NetworkChanged signal. Users are explicitly friended. |
| + class NET_EXPORT Deprecated { |
| + private: |
| + // TODO(pauljensen): Delete these 6-12 months after transition to |
| + // NetworkChange signal when they are no longer needed. |
| + friend class HistogramWatcher; |
| + friend class ::IOThreadLoggingNetworkChangeObserver; |
| + friend class ::NetWatcher; |
| + // TODO(pauljensen): Change this to a direct call instead of Observer once |
| + // it's the only remaining Deprecated user. |
| + friend class NetworkChangeCalculator; |
| + // TODO(pauljensen): This should either become a direct call from |
| + // NetworkChangeNotifierWin or use NotifyAddrChange() itself. |
|
szym
2013/01/20 06:52:08
I suggest you file a bug specifically for that. Yo
|
| +#if defined(OS_WIN) |
| + friend class internal::DnsConfigServiceWin::Watcher; |
| +#endif |
| + |
| + static void AddIPAddressObserver(IPAddressObserver* observer); |
| + static void AddConnectionTypeObserver(ConnectionTypeObserver* observer); |
| + |
| + DISALLOW_IMPLICIT_CONSTRUCTORS(Deprecated); |
| + }; |
| // Unregisters |observer| from receiving notifications. This must be called |
| // on the same thread on which AddObserver() was called. Like AddObserver(), |
| @@ -277,7 +309,6 @@ class NET_EXPORT NetworkChangeNotifier { |
| friend class URLFetcherMockDnsTest; |
| class NetworkState; |
| - class NetworkChangeCalculator; |
| // Allows a second NetworkChangeNotifier to be created for unit testing, so |
| // the test suite can create a MockNetworkChangeNotifier, but platform |
| @@ -296,6 +327,10 @@ class NET_EXPORT NetworkChangeNotifier { |
| NetworkChangeNotifier* network_change_notifier_; |
| }; |
| + // Allow unit tests to reset parameters for NetworkChangeCalculator. |
| + void ResetNetworkChangeCalculatorParamsForTest( |
| + NetworkChangeCalculatorParams params); |
| + |
| const scoped_refptr<ObserverListThreadSafe<IPAddressObserver> > |
| ip_address_observer_list_; |
| const scoped_refptr<ObserverListThreadSafe<ConnectionTypeObserver> > |