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

Unified Diff: net/base/network_change_notifier.h

Issue 11620007: Switch from OnIPAddressChanged and OnConnectionTypeChange to OnNetworkChanged Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 months 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 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> >

Powered by Google App Engine
This is Rietveld 408576698