diff options
author | pauljensen@chromium.org <pauljensen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-08 02:46:41 +0000 |
---|---|---|
committer | pauljensen@chromium.org <pauljensen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-08 02:46:41 +0000 |
commit | 03848873c71fa2092017260d0234461efd300a79 (patch) | |
tree | 48cfacc64925b6e4b011db3ba5fa6aa1a58c6600 /net/android | |
parent | f89842386a4f5ba78e6816739584107d1cbe6964 (diff) | |
download | chromium_src-03848873c71fa2092017260d0234461efd300a79.zip chromium_src-03848873c71fa2092017260d0234461efd300a79.tar.gz chromium_src-03848873c71fa2092017260d0234461efd300a79.tar.bz2 |
Start calculating new combined NetworkChangeNotifier signal from previous OnIPAddressChanged and OnConnectionTypeChanged signals. For now it uses delay constants chosen by experimentation but this commit includes histograms to tune the constants.
Review URL: https://chromiumcodereview.appspot.com/11360108
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171920 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/android')
-rw-r--r-- | net/android/network_change_notifier_android.cc | 17 | ||||
-rw-r--r-- | net/android/network_change_notifier_android.h | 2 |
2 files changed, 18 insertions, 1 deletions
diff --git a/net/android/network_change_notifier_android.cc b/net/android/network_change_notifier_android.cc index b765c85..6dce669 100644 --- a/net/android/network_change_notifier_android.cc +++ b/net/android/network_change_notifier_android.cc @@ -85,11 +85,26 @@ bool NetworkChangeNotifierAndroid::Register(JNIEnv* env) { NetworkChangeNotifierAndroid::NetworkChangeNotifierAndroid( NetworkChangeNotifierDelegateAndroid* delegate) - : delegate_(delegate) { + : NetworkChangeNotifier(NetworkChangeCalculatorParamsAndroid()), + delegate_(delegate) { SetConnectionType(NetworkChangeNotifier::CONNECTION_UNKNOWN); delegate_->AddObserver(this); } +// static +NetworkChangeNotifier::NetworkChangeCalculatorParams +NetworkChangeNotifierAndroid::NetworkChangeCalculatorParamsAndroid() { + NetworkChangeCalculatorParams params; + // IPAddressChanged is produced immediately prior to ConnectionTypeChanged + // so delay IPAddressChanged so they get merged with the following + // ConnectionTypeChanged signal. + params.ip_address_offline_delay_ = base::TimeDelta::FromSeconds(1); + params.ip_address_online_delay_ = base::TimeDelta::FromSeconds(1); + params.connection_type_offline_delay_ = base::TimeDelta::FromSeconds(0); + params.connection_type_online_delay_ = base::TimeDelta::FromSeconds(0); + return params; +} + void NetworkChangeNotifierAndroid::SetConnectionType( ConnectionType new_connection_type) { base::AutoLock auto_lock(connection_type_lock_); diff --git a/net/android/network_change_notifier_android.h b/net/android/network_change_notifier_android.h index 35c9b46..4f6180f 100644 --- a/net/android/network_change_notifier_android.h +++ b/net/android/network_change_notifier_android.h @@ -63,6 +63,8 @@ class NET_EXPORT_PRIVATE NetworkChangeNotifierAndroid void SetConnectionType(ConnectionType new_connection_type); + static NetworkChangeCalculatorParams NetworkChangeCalculatorParamsAndroid(); + NetworkChangeNotifierDelegateAndroid* const delegate_; mutable base::Lock connection_type_lock_; // Protects the state below. ConnectionType connection_type_; |