Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(450)

Side by Side Diff: net/proxy/proxy_config_service_android.cc

Issue 742023003: Enable using system proxy resolver for android webview. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: cleanup Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/proxy/proxy_config_service_android.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_array.h" 9 #include "base/android/jni_array.h"
10 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 190
191 class ProxyConfigServiceAndroid::Delegate 191 class ProxyConfigServiceAndroid::Delegate
192 : public base::RefCountedThreadSafe<Delegate> { 192 : public base::RefCountedThreadSafe<Delegate> {
193 public: 193 public:
194 Delegate(const scoped_refptr<base::SequencedTaskRunner>& network_task_runner, 194 Delegate(const scoped_refptr<base::SequencedTaskRunner>& network_task_runner,
195 const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner, 195 const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner,
196 const GetPropertyCallback& get_property_callback) 196 const GetPropertyCallback& get_property_callback)
197 : jni_delegate_(this), 197 : jni_delegate_(this),
198 network_task_runner_(network_task_runner), 198 network_task_runner_(network_task_runner),
199 jni_task_runner_(jni_task_runner), 199 jni_task_runner_(jni_task_runner),
200 get_property_callback_(get_property_callback) { 200 get_property_callback_(get_property_callback),
201 use_local_proxy_(false) {
201 } 202 }
202 203
203 void SetupJNI() { 204 void SetupJNI() {
204 DCHECK(OnJNIThread()); 205 DCHECK(OnJNIThread());
205 JNIEnv* env = AttachCurrentThread(); 206 JNIEnv* env = AttachCurrentThread();
206 if (java_proxy_change_listener_.is_null()) { 207 if (java_proxy_change_listener_.is_null()) {
207 java_proxy_change_listener_.Reset( 208 java_proxy_change_listener_.Reset(
208 Java_ProxyChangeListener_create( 209 Java_ProxyChangeListener_create(
209 env, base::android::GetApplicationContext())); 210 env, base::android::GetApplicationContext()));
210 CHECK(!java_proxy_change_listener_.is_null()); 211 CHECK(!java_proxy_change_listener_.is_null());
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 &Delegate::SetNewConfigOnNetworkThread, this, proxy_config)); 265 &Delegate::SetNewConfigOnNetworkThread, this, proxy_config));
265 } 266 }
266 267
267 // Called on the JNI thread. 268 // Called on the JNI thread.
268 void ProxySettingsChangedTo(const std::string& host, 269 void ProxySettingsChangedTo(const std::string& host,
269 int port, 270 int port,
270 const std::string& pac_url, 271 const std::string& pac_url,
271 const std::vector<std::string>& exclusion_list) { 272 const std::vector<std::string>& exclusion_list) {
272 DCHECK(OnJNIThread()); 273 DCHECK(OnJNIThread());
273 ProxyConfig proxy_config; 274 ProxyConfig proxy_config;
274 CreateStaticProxyConfig(host, port, pac_url, exclusion_list, &proxy_config); 275 if (use_local_proxy_)
mnaganov (inactive) 2014/11/20 21:58:35 nit: I think this "if" statement deserves braces f
sgurun-gerrit only 2014/11/20 23:38:19 Done.
276 CreateStaticProxyConfig(host, port, "", exclusion_list, &proxy_config);
277 else
278 CreateStaticProxyConfig(host, port, pac_url, exclusion_list,
279 &proxy_config);
275 network_task_runner_->PostTask( 280 network_task_runner_->PostTask(
276 FROM_HERE, 281 FROM_HERE,
277 base::Bind( 282 base::Bind(
278 &Delegate::SetNewConfigOnNetworkThread, this, proxy_config)); 283 &Delegate::SetNewConfigOnNetworkThread, this, proxy_config));
279 } 284 }
280 285
286 void set_use_local_proxy(bool enabled) {
287 use_local_proxy_ = enabled;
288 }
289
281 private: 290 private:
282 friend class base::RefCountedThreadSafe<Delegate>; 291 friend class base::RefCountedThreadSafe<Delegate>;
283 292
284 class JNIDelegateImpl : public ProxyConfigServiceAndroid::JNIDelegate { 293 class JNIDelegateImpl : public ProxyConfigServiceAndroid::JNIDelegate {
285 public: 294 public:
286 explicit JNIDelegateImpl(Delegate* delegate) : delegate_(delegate) {} 295 explicit JNIDelegateImpl(Delegate* delegate) : delegate_(delegate) {}
287 296
288 // ProxyConfigServiceAndroid::JNIDelegate overrides. 297 // ProxyConfigServiceAndroid::JNIDelegate overrides.
289 virtual void ProxySettingsChangedTo(JNIEnv* env, 298 virtual void ProxySettingsChangedTo(JNIEnv* env,
290 jobject jself, 299 jobject jself,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 } 346 }
338 347
339 ScopedJavaGlobalRef<jobject> java_proxy_change_listener_; 348 ScopedJavaGlobalRef<jobject> java_proxy_change_listener_;
340 349
341 JNIDelegateImpl jni_delegate_; 350 JNIDelegateImpl jni_delegate_;
342 ObserverList<Observer> observers_; 351 ObserverList<Observer> observers_;
343 scoped_refptr<base::SequencedTaskRunner> network_task_runner_; 352 scoped_refptr<base::SequencedTaskRunner> network_task_runner_;
344 scoped_refptr<base::SequencedTaskRunner> jni_task_runner_; 353 scoped_refptr<base::SequencedTaskRunner> jni_task_runner_;
345 GetPropertyCallback get_property_callback_; 354 GetPropertyCallback get_property_callback_;
346 ProxyConfig proxy_config_; 355 ProxyConfig proxy_config_;
356 bool use_local_proxy_;
347 357
348 DISALLOW_COPY_AND_ASSIGN(Delegate); 358 DISALLOW_COPY_AND_ASSIGN(Delegate);
349 }; 359 };
350 360
351 ProxyConfigServiceAndroid::ProxyConfigServiceAndroid( 361 ProxyConfigServiceAndroid::ProxyConfigServiceAndroid(
352 const scoped_refptr<base::SequencedTaskRunner>& network_task_runner, 362 const scoped_refptr<base::SequencedTaskRunner>& network_task_runner,
353 const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner) 363 const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner)
354 : delegate_(new Delegate( 364 : delegate_(new Delegate(
355 network_task_runner, jni_task_runner, base::Bind(&GetJavaProperty))) { 365 network_task_runner, jni_task_runner, base::Bind(&GetJavaProperty))) {
356 delegate_->SetupJNI(); 366 delegate_->SetupJNI();
357 delegate_->FetchInitialConfig(); 367 delegate_->FetchInitialConfig();
358 } 368 }
359 369
360 ProxyConfigServiceAndroid::~ProxyConfigServiceAndroid() { 370 ProxyConfigServiceAndroid::~ProxyConfigServiceAndroid() {
361 delegate_->Shutdown(); 371 delegate_->Shutdown();
362 } 372 }
363 373
364 // static 374 // static
365 bool ProxyConfigServiceAndroid::Register(JNIEnv* env) { 375 bool ProxyConfigServiceAndroid::Register(JNIEnv* env) {
366 return RegisterNativesImpl(env); 376 return RegisterNativesImpl(env);
367 } 377 }
368 378
379 void ProxyConfigServiceAndroid::set_use_local_proxy(bool enabled) {
380 delegate_->set_use_local_proxy(enabled);
381 }
382
369 void ProxyConfigServiceAndroid::AddObserver(Observer* observer) { 383 void ProxyConfigServiceAndroid::AddObserver(Observer* observer) {
370 delegate_->AddObserver(observer); 384 delegate_->AddObserver(observer);
371 } 385 }
372 386
373 void ProxyConfigServiceAndroid::RemoveObserver(Observer* observer) { 387 void ProxyConfigServiceAndroid::RemoveObserver(Observer* observer) {
374 delegate_->RemoveObserver(observer); 388 delegate_->RemoveObserver(observer);
375 } 389 }
376 390
377 ProxyConfigService::ConfigAvailability 391 ProxyConfigService::ConfigAvailability
378 ProxyConfigServiceAndroid::GetLatestProxyConfig(ProxyConfig* config) { 392 ProxyConfigServiceAndroid::GetLatestProxyConfig(ProxyConfig* config) {
379 return delegate_->GetLatestProxyConfig(config); 393 return delegate_->GetLatestProxyConfig(config);
380 } 394 }
381 395
382 ProxyConfigServiceAndroid::ProxyConfigServiceAndroid( 396 ProxyConfigServiceAndroid::ProxyConfigServiceAndroid(
383 const scoped_refptr<base::SequencedTaskRunner>& network_task_runner, 397 const scoped_refptr<base::SequencedTaskRunner>& network_task_runner,
384 const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner, 398 const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner,
385 GetPropertyCallback get_property_callback) 399 GetPropertyCallback get_property_callback)
386 : delegate_(new Delegate( 400 : delegate_(new Delegate(
387 network_task_runner, jni_task_runner, get_property_callback)) { 401 network_task_runner, jni_task_runner, get_property_callback)) {
388 delegate_->SetupJNI(); 402 delegate_->SetupJNI();
389 delegate_->FetchInitialConfig(); 403 delegate_->FetchInitialConfig();
390 } 404 }
391 405
392 void ProxyConfigServiceAndroid::ProxySettingsChanged() { 406 void ProxyConfigServiceAndroid::ProxySettingsChanged() {
393 delegate_->ProxySettingsChanged(); 407 delegate_->ProxySettingsChanged();
394 } 408 }
395 409
396 } // namespace net 410 } // namespace net
OLDNEW
« no previous file with comments | « net/proxy/proxy_config_service_android.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698