| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/proxy/proxy_config_service_android.h" | 5 #include "net/proxy/proxy_config_service_android.h" |
| 6 | 6 |
| 7 #include <sys/system_properties.h> | 7 #include <sys/system_properties.h> |
| 8 | 8 |
| 9 #include "base/android/jni_string.h" | 9 #include "base/android/jni_string.h" |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 } else { | 167 } else { |
| 168 *config = ProxyConfig::CreateDirect(); | 168 *config = ProxyConfig::CreateDirect(); |
| 169 } | 169 } |
| 170 } | 170 } |
| 171 | 171 |
| 172 } // namespace | 172 } // namespace |
| 173 | 173 |
| 174 class ProxyConfigServiceAndroid::Delegate | 174 class ProxyConfigServiceAndroid::Delegate |
| 175 : public base::RefCountedThreadSafe<Delegate> { | 175 : public base::RefCountedThreadSafe<Delegate> { |
| 176 public: | 176 public: |
| 177 Delegate(base::SequencedTaskRunner* network_task_runner, | 177 Delegate(const scoped_refptr<base::SequencedTaskRunner>& network_task_runner, |
| 178 base::SequencedTaskRunner* jni_task_runner, | 178 const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner, |
| 179 const GetPropertyCallback& get_property_callback) | 179 const GetPropertyCallback& get_property_callback) |
| 180 : jni_delegate_(this), | 180 : jni_delegate_(this), |
| 181 network_task_runner_(network_task_runner), | 181 network_task_runner_(network_task_runner), |
| 182 jni_task_runner_(jni_task_runner), | 182 jni_task_runner_(jni_task_runner), |
| 183 get_property_callback_(get_property_callback) { | 183 get_property_callback_(get_property_callback) { |
| 184 } | 184 } |
| 185 | 185 |
| 186 void SetupJNI() { | 186 void SetupJNI() { |
| 187 DCHECK(OnJNIThread()); | 187 DCHECK(OnJNIThread()); |
| 188 JNIEnv* env = AttachCurrentThread(); | 188 JNIEnv* env = AttachCurrentThread(); |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 ObserverList<Observer> observers_; | 312 ObserverList<Observer> observers_; |
| 313 scoped_refptr<base::SequencedTaskRunner> network_task_runner_; | 313 scoped_refptr<base::SequencedTaskRunner> network_task_runner_; |
| 314 scoped_refptr<base::SequencedTaskRunner> jni_task_runner_; | 314 scoped_refptr<base::SequencedTaskRunner> jni_task_runner_; |
| 315 GetPropertyCallback get_property_callback_; | 315 GetPropertyCallback get_property_callback_; |
| 316 ProxyConfig proxy_config_; | 316 ProxyConfig proxy_config_; |
| 317 | 317 |
| 318 DISALLOW_COPY_AND_ASSIGN(Delegate); | 318 DISALLOW_COPY_AND_ASSIGN(Delegate); |
| 319 }; | 319 }; |
| 320 | 320 |
| 321 ProxyConfigServiceAndroid::ProxyConfigServiceAndroid( | 321 ProxyConfigServiceAndroid::ProxyConfigServiceAndroid( |
| 322 base::SequencedTaskRunner* network_task_runner, | 322 const scoped_refptr<base::SequencedTaskRunner>& network_task_runner, |
| 323 base::SequencedTaskRunner* jni_task_runner) | 323 const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner) |
| 324 : delegate_(new Delegate( | 324 : delegate_(new Delegate( |
| 325 network_task_runner, jni_task_runner, base::Bind(&GetJavaProperty))) { | 325 network_task_runner, jni_task_runner, base::Bind(&GetJavaProperty))) { |
| 326 delegate_->SetupJNI(); | 326 delegate_->SetupJNI(); |
| 327 delegate_->FetchInitialConfig(); | 327 delegate_->FetchInitialConfig(); |
| 328 } | 328 } |
| 329 | 329 |
| 330 ProxyConfigServiceAndroid::~ProxyConfigServiceAndroid() { | 330 ProxyConfigServiceAndroid::~ProxyConfigServiceAndroid() { |
| 331 delegate_->Shutdown(); | 331 delegate_->Shutdown(); |
| 332 } | 332 } |
| 333 | 333 |
| 334 // static | 334 // static |
| 335 bool ProxyConfigServiceAndroid::Register(JNIEnv* env) { | 335 bool ProxyConfigServiceAndroid::Register(JNIEnv* env) { |
| 336 return RegisterNativesImpl(env); | 336 return RegisterNativesImpl(env); |
| 337 } | 337 } |
| 338 | 338 |
| 339 void ProxyConfigServiceAndroid::AddObserver(Observer* observer) { | 339 void ProxyConfigServiceAndroid::AddObserver(Observer* observer) { |
| 340 delegate_->AddObserver(observer); | 340 delegate_->AddObserver(observer); |
| 341 } | 341 } |
| 342 | 342 |
| 343 void ProxyConfigServiceAndroid::RemoveObserver(Observer* observer) { | 343 void ProxyConfigServiceAndroid::RemoveObserver(Observer* observer) { |
| 344 delegate_->RemoveObserver(observer); | 344 delegate_->RemoveObserver(observer); |
| 345 } | 345 } |
| 346 | 346 |
| 347 ProxyConfigService::ConfigAvailability | 347 ProxyConfigService::ConfigAvailability |
| 348 ProxyConfigServiceAndroid::GetLatestProxyConfig(ProxyConfig* config) { | 348 ProxyConfigServiceAndroid::GetLatestProxyConfig(ProxyConfig* config) { |
| 349 return delegate_->GetLatestProxyConfig(config); | 349 return delegate_->GetLatestProxyConfig(config); |
| 350 } | 350 } |
| 351 | 351 |
| 352 ProxyConfigServiceAndroid::ProxyConfigServiceAndroid( | 352 ProxyConfigServiceAndroid::ProxyConfigServiceAndroid( |
| 353 base::SequencedTaskRunner* network_task_runner, | 353 const scoped_refptr<base::SequencedTaskRunner>& network_task_runner, |
| 354 base::SequencedTaskRunner* jni_task_runner, | 354 const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner, |
| 355 GetPropertyCallback get_property_callback) | 355 GetPropertyCallback get_property_callback) |
| 356 : delegate_(new Delegate( | 356 : delegate_(new Delegate( |
| 357 network_task_runner, jni_task_runner, get_property_callback)) { | 357 network_task_runner, jni_task_runner, get_property_callback)) { |
| 358 delegate_->SetupJNI(); | 358 delegate_->SetupJNI(); |
| 359 delegate_->FetchInitialConfig(); | 359 delegate_->FetchInitialConfig(); |
| 360 } | 360 } |
| 361 | 361 |
| 362 void ProxyConfigServiceAndroid::ProxySettingsChanged() { | 362 void ProxyConfigServiceAndroid::ProxySettingsChanged() { |
| 363 delegate_->ProxySettingsChanged(); | 363 delegate_->ProxySettingsChanged(); |
| 364 } | 364 } |
| 365 | 365 |
| 366 } // namespace net | 366 } // namespace net |
| OLD | NEW |