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 |