Index: net/android/network_change_notifier_delegate_android.h |
diff --git a/net/android/network_change_notifier_delegate_android.h b/net/android/network_change_notifier_delegate_android.h |
index 9f5caa44167656ac279c519a50a69e46f4d0263f..f93c30b0b25c62706da744e2737f16d997d2cee1 100644 |
--- a/net/android/network_change_notifier_delegate_android.h |
+++ b/net/android/network_change_notifier_delegate_android.h |
@@ -9,6 +9,7 @@ |
#include "base/basictypes.h" |
#include "base/memory/ref_counted.h" |
#include "base/observer_list_threadsafe.h" |
+#include "base/synchronization/lock.h" |
#include "base/threading/thread_checker.h" |
#include "net/base/network_change_notifier.h" |
@@ -21,10 +22,7 @@ namespace net { |
// unless otherwise stated (e.g. AddObserver()/RemoveObserver()). |
class NET_EXPORT_PRIVATE NetworkChangeNotifierDelegateAndroid { |
public: |
- enum ConnectivityState { |
- OFFLINE, |
- ONLINE, |
- }; |
+ typedef NetworkChangeNotifier::ConnectionType ConnectionType; |
// Observer interface implemented by NetworkChangeNotifierAndroid which |
// subscribes to network change notifications fired by the delegate (and |
@@ -34,8 +32,7 @@ class NET_EXPORT_PRIVATE NetworkChangeNotifierDelegateAndroid { |
virtual ~Observer() {} |
// Updates the current connection type. |
- virtual void OnConnectionTypeChanged( |
- NetworkChangeNotifier::ConnectionType new_connection_type) = 0; |
+ virtual void OnConnectionTypeChanged() = 0; |
}; |
NetworkChangeNotifierDelegateAndroid(); |
@@ -55,21 +52,26 @@ class NET_EXPORT_PRIVATE NetworkChangeNotifierDelegateAndroid { |
void AddObserver(Observer* observer); |
void RemoveObserver(Observer* observer); |
- // Exposed for testing. |
- void ForceConnectivityState(ConnectivityState state); |
+ // Can be called from any thread. |
+ ConnectionType GetCurrentConnectionType() const; |
// Initializes JNI bindings. |
static bool Register(JNIEnv* env); |
private: |
- friend class NetworkChangeNotifierDelegateAndroidTest; |
+ friend class BaseNetworkChangeNotifierAndroidTest; |
- typedef NetworkChangeNotifier::ConnectionType ConnectionType; |
+ void SetCurrentConnectionType(ConnectionType connection_type); |
+ |
+ // Methods calling the Java side exposed for testing. |
+ void SetOnline(); |
+ void SetOffline(); |
base::ThreadChecker thread_checker_; |
scoped_refptr<ObserverListThreadSafe<Observer> > observers_; |
scoped_refptr<base::SingleThreadTaskRunner> jni_task_runner_; |
base::android::ScopedJavaGlobalRef<jobject> java_network_change_notifier_; |
+ mutable base::Lock connection_type_lock_; // Protects the state below. |
ConnectionType connection_type_; |
DISALLOW_COPY_AND_ASSIGN(NetworkChangeNotifierDelegateAndroid); |