summaryrefslogtreecommitdiffstats
path: root/net/android
diff options
context:
space:
mode:
authorpauljensen@chromium.org <pauljensen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-08 02:46:41 +0000
committerpauljensen@chromium.org <pauljensen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-08 02:46:41 +0000
commit03848873c71fa2092017260d0234461efd300a79 (patch)
tree48cfacc64925b6e4b011db3ba5fa6aa1a58c6600 /net/android
parentf89842386a4f5ba78e6816739584107d1cbe6964 (diff)
downloadchromium_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.cc17
-rw-r--r--net/android/network_change_notifier_android.h2
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_;