Index: net/proxy/proxy_config_service_android.cc |
diff --git a/net/proxy/proxy_config_service_android.cc b/net/proxy/proxy_config_service_android.cc |
index 6a0be78d020561dfc193375b40c051b47eaa2008..7b8c62a9317cd079de0d4466576f7ccbf368a97f 100644 |
--- a/net/proxy/proxy_config_service_android.cc |
+++ b/net/proxy/proxy_config_service_android.cc |
@@ -161,16 +161,16 @@ class ProxyConfigServiceAndroid::Delegate |
: public base::RefCountedThreadSafe<Delegate> { |
public: |
Delegate(base::SequencedTaskRunner* network_task_runner, |
- base::SequencedTaskRunner* jni_task_runner, |
+ base::SequencedTaskRunner* main_task_runner, |
const GetPropertyCallback& get_property_callback) |
: ALLOW_THIS_IN_INITIALIZER_LIST(jni_delegate_(this)), |
network_task_runner_(network_task_runner), |
- jni_task_runner_(jni_task_runner), |
+ main_task_runner_(main_task_runner), |
get_property_callback_(get_property_callback) { |
} |
void SetupJNI() { |
- DCHECK(OnJNIThread()); |
+ DCHECK(OnNetworkThread()); |
JNIEnv* env = AttachCurrentThread(); |
if (java_proxy_change_listener_.is_null()) { |
java_proxy_change_listener_.Reset( |
@@ -185,22 +185,16 @@ class ProxyConfigServiceAndroid::Delegate |
} |
void FetchInitialConfig() { |
- DCHECK(OnJNIThread()); |
- ProxyConfig proxy_config; |
- GetLatestProxyConfigInternal(get_property_callback_, &proxy_config); |
- network_task_runner_->PostTask( |
- FROM_HERE, |
- base::Bind(&Delegate::SetNewConfigOnNetworkThread, this, proxy_config)); |
+ DCHECK(OnNetworkThread()); |
+ SetNewConfigOnNetworkThread(); |
} |
- void Shutdown() { |
- if (OnJNIThread()) { |
- ShutdownOnJNIThread(); |
- } else { |
- jni_task_runner_->PostTask( |
- FROM_HERE, |
- base::Bind(&Delegate::ShutdownOnJNIThread, this)); |
- } |
+ void StartTearDown() { |
+ DCHECK(OnMainThread()); |
+ if (java_proxy_change_listener_.is_null()) |
+ return; |
+ JNIEnv* env = AttachCurrentThread(); |
+ Java_ProxyChangeListener_stop(env, java_proxy_change_listener_.obj()); |
} |
// Called only on the network thread. |
@@ -222,15 +216,12 @@ class ProxyConfigServiceAndroid::Delegate |
return ProxyConfigService::CONFIG_VALID; |
} |
- // Called on the JNI thread. |
+ // Called on the main thread. |
void ProxySettingsChanged() { |
- DCHECK(OnJNIThread()); |
- ProxyConfig proxy_config; |
- GetLatestProxyConfigInternal(get_property_callback_, &proxy_config); |
+ DCHECK(OnMainThread()); |
network_task_runner_->PostTask( |
FROM_HERE, |
- base::Bind( |
- &Delegate::SetNewConfigOnNetworkThread, this, proxy_config)); |
+ base::Bind(&Delegate::SetNewConfigOnNetworkThread, this)); |
} |
private: |
@@ -251,24 +242,17 @@ class ProxyConfigServiceAndroid::Delegate |
virtual ~Delegate() {} |
- void ShutdownOnJNIThread() { |
- if (java_proxy_change_listener_.is_null()) |
- return; |
- JNIEnv* env = AttachCurrentThread(); |
- Java_ProxyChangeListener_stop(env, java_proxy_change_listener_.obj()); |
- } |
- |
// Called on the network thread. |
- void SetNewConfigOnNetworkThread(const ProxyConfig& proxy_config) { |
+ void SetNewConfigOnNetworkThread() { |
DCHECK(OnNetworkThread()); |
- proxy_config_ = proxy_config; |
+ GetLatestProxyConfigInternal(get_property_callback_, &proxy_config_); |
FOR_EACH_OBSERVER(Observer, observers_, |
- OnProxyConfigChanged(proxy_config, |
+ OnProxyConfigChanged(proxy_config_, |
ProxyConfigService::CONFIG_VALID)); |
} |
- bool OnJNIThread() const { |
- return jni_task_runner_->RunsTasksOnCurrentThread(); |
+ bool OnMainThread() const { |
+ return main_task_runner_->RunsTasksOnCurrentThread(); |
} |
bool OnNetworkThread() const { |
@@ -280,7 +264,7 @@ class ProxyConfigServiceAndroid::Delegate |
JNIDelegateImpl jni_delegate_; |
ObserverList<Observer> observers_; |
scoped_refptr<base::SequencedTaskRunner> network_task_runner_; |
- scoped_refptr<base::SequencedTaskRunner> jni_task_runner_; |
+ scoped_refptr<base::SequencedTaskRunner> main_task_runner_; |
GetPropertyCallback get_property_callback_; |
ProxyConfig proxy_config_; |
@@ -288,16 +272,18 @@ class ProxyConfigServiceAndroid::Delegate |
}; |
ProxyConfigServiceAndroid::ProxyConfigServiceAndroid( |
- base::SequencedTaskRunner* network_task_runner, |
- base::SequencedTaskRunner* jni_task_runner) |
+ base::SequencedTaskRunner* main_task_runner, |
+ base::SequencedTaskRunner* network_task_runner) |
: delegate_(new Delegate( |
- network_task_runner, jni_task_runner, base::Bind(&GetJavaProperty))) { |
+ network_task_runner, main_task_runner, base::Bind(&GetJavaProperty))) { |
delegate_->SetupJNI(); |
delegate_->FetchInitialConfig(); |
} |
-ProxyConfigServiceAndroid::~ProxyConfigServiceAndroid() { |
- delegate_->Shutdown(); |
+ProxyConfigServiceAndroid::~ProxyConfigServiceAndroid() {} |
+ |
+void ProxyConfigServiceAndroid::StartTearDown() { |
+ delegate_->StartTearDown(); |
} |
// static |
@@ -320,10 +306,10 @@ ProxyConfigServiceAndroid::GetLatestProxyConfig(ProxyConfig* config) { |
ProxyConfigServiceAndroid::ProxyConfigServiceAndroid( |
base::SequencedTaskRunner* network_task_runner, |
- base::SequencedTaskRunner* jni_task_runner, |
+ base::SequencedTaskRunner* main_task_runner, |
GetPropertyCallback get_property_callback) |
: delegate_(new Delegate( |
- network_task_runner, jni_task_runner, get_property_callback)) { |
+ network_task_runner, main_task_runner, get_property_callback)) { |
delegate_->FetchInitialConfig(); |
} |