Index: net/base/network_change_notifier_win.cc |
diff --git a/net/base/network_change_notifier_win.cc b/net/base/network_change_notifier_win.cc |
index a32a84dd31e1afaabc6a1ca31e176697a2ec5225..d891ecceb829845d37a9cc7defc04422726d16c7 100644 |
--- a/net/base/network_change_notifier_win.cc |
+++ b/net/base/network_change_notifier_win.cc |
@@ -52,7 +52,8 @@ class NetworkChangeNotifierWin::DnsConfigServiceThread : public base::Thread { |
}; |
NetworkChangeNotifierWin::NetworkChangeNotifierWin() |
- : is_watching_(false), |
+ : NetworkChangeNotifier(NetworkChangeCalculatorParamsWin()), |
+ is_watching_(false), |
sequential_failures_(0), |
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)), |
dns_config_service_thread_(new DnsConfigServiceThread()), |
@@ -71,6 +72,20 @@ NetworkChangeNotifierWin::~NetworkChangeNotifierWin() { |
WSACloseEvent(addr_overlapped_.hEvent); |
} |
+// static |
+NetworkChangeNotifier::NetworkChangeCalculatorParams |
+NetworkChangeNotifierWin::NetworkChangeCalculatorParamsWin() { |
+ NetworkChangeCalculatorParams params; |
+ // Delay values arrived at by simple experimentation and adjusted so as to |
+ // produce a single signal when switching between network connections. |
+ params.ip_address_offline_delay_ = base::TimeDelta::FromMilliseconds(1500); |
+ params.ip_address_online_delay_ = base::TimeDelta::FromMilliseconds(1500); |
+ params.connection_type_offline_delay_ = |
+ base::TimeDelta::FromMilliseconds(1500); |
+ params.connection_type_online_delay_ = base::TimeDelta::FromMilliseconds(500); |
+ return params; |
+} |
+ |
// This implementation does not return the actual connection type but merely |
// determines if the user is "online" (in which case it returns |
// CONNECTION_UNKNOWN) or "offline" (and then it returns CONNECTION_NONE). |