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

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

Issue 754433003: Update from https://crrev.com/305340 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: 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') | net/proxy/proxy_resolver_v8.cc » ('j') | 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 exclude_pac_url_(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 (exclude_pac_url_) {
276 CreateStaticProxyConfig(host, port, "", exclusion_list, &proxy_config);
277 } else {
278 CreateStaticProxyConfig(host, port, pac_url, exclusion_list,
279 &proxy_config);
280 }
275 network_task_runner_->PostTask( 281 network_task_runner_->PostTask(
276 FROM_HERE, 282 FROM_HERE,
277 base::Bind( 283 base::Bind(
278 &Delegate::SetNewConfigOnNetworkThread, this, proxy_config)); 284 &Delegate::SetNewConfigOnNetworkThread, this, proxy_config));
279 } 285 }
280 286
287 void set_exclude_pac_url(bool enabled) {
288 exclude_pac_url_ = enabled;
289 }
290
281 private: 291 private:
282 friend class base::RefCountedThreadSafe<Delegate>; 292 friend class base::RefCountedThreadSafe<Delegate>;
283 293
284 class JNIDelegateImpl : public ProxyConfigServiceAndroid::JNIDelegate { 294 class JNIDelegateImpl : public ProxyConfigServiceAndroid::JNIDelegate {
285 public: 295 public:
286 explicit JNIDelegateImpl(Delegate* delegate) : delegate_(delegate) {} 296 explicit JNIDelegateImpl(Delegate* delegate) : delegate_(delegate) {}
287 297
288 // ProxyConfigServiceAndroid::JNIDelegate overrides. 298 // ProxyConfigServiceAndroid::JNIDelegate overrides.
289 virtual void ProxySettingsChangedTo(JNIEnv* env, 299 virtual void ProxySettingsChangedTo(JNIEnv* env,
290 jobject jself, 300 jobject jself,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 } 347 }
338 348
339 ScopedJavaGlobalRef<jobject> java_proxy_change_listener_; 349 ScopedJavaGlobalRef<jobject> java_proxy_change_listener_;
340 350
341 JNIDelegateImpl jni_delegate_; 351 JNIDelegateImpl jni_delegate_;
342 ObserverList<Observer> observers_; 352 ObserverList<Observer> observers_;
343 scoped_refptr<base::SequencedTaskRunner> network_task_runner_; 353 scoped_refptr<base::SequencedTaskRunner> network_task_runner_;
344 scoped_refptr<base::SequencedTaskRunner> jni_task_runner_; 354 scoped_refptr<base::SequencedTaskRunner> jni_task_runner_;
345 GetPropertyCallback get_property_callback_; 355 GetPropertyCallback get_property_callback_;
346 ProxyConfig proxy_config_; 356 ProxyConfig proxy_config_;
357 bool exclude_pac_url_;
347 358
348 DISALLOW_COPY_AND_ASSIGN(Delegate); 359 DISALLOW_COPY_AND_ASSIGN(Delegate);
349 }; 360 };
350 361
351 ProxyConfigServiceAndroid::ProxyConfigServiceAndroid( 362 ProxyConfigServiceAndroid::ProxyConfigServiceAndroid(
352 const scoped_refptr<base::SequencedTaskRunner>& network_task_runner, 363 const scoped_refptr<base::SequencedTaskRunner>& network_task_runner,
353 const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner) 364 const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner)
354 : delegate_(new Delegate( 365 : delegate_(new Delegate(
355 network_task_runner, jni_task_runner, base::Bind(&GetJavaProperty))) { 366 network_task_runner, jni_task_runner, base::Bind(&GetJavaProperty))) {
356 delegate_->SetupJNI(); 367 delegate_->SetupJNI();
357 delegate_->FetchInitialConfig(); 368 delegate_->FetchInitialConfig();
358 } 369 }
359 370
360 ProxyConfigServiceAndroid::~ProxyConfigServiceAndroid() { 371 ProxyConfigServiceAndroid::~ProxyConfigServiceAndroid() {
361 delegate_->Shutdown(); 372 delegate_->Shutdown();
362 } 373 }
363 374
364 // static 375 // static
365 bool ProxyConfigServiceAndroid::Register(JNIEnv* env) { 376 bool ProxyConfigServiceAndroid::Register(JNIEnv* env) {
366 return RegisterNativesImpl(env); 377 return RegisterNativesImpl(env);
367 } 378 }
368 379
380 void ProxyConfigServiceAndroid::set_exclude_pac_url(bool enabled) {
381 delegate_->set_exclude_pac_url(enabled);
382 }
383
369 void ProxyConfigServiceAndroid::AddObserver(Observer* observer) { 384 void ProxyConfigServiceAndroid::AddObserver(Observer* observer) {
370 delegate_->AddObserver(observer); 385 delegate_->AddObserver(observer);
371 } 386 }
372 387
373 void ProxyConfigServiceAndroid::RemoveObserver(Observer* observer) { 388 void ProxyConfigServiceAndroid::RemoveObserver(Observer* observer) {
374 delegate_->RemoveObserver(observer); 389 delegate_->RemoveObserver(observer);
375 } 390 }
376 391
377 ProxyConfigService::ConfigAvailability 392 ProxyConfigService::ConfigAvailability
378 ProxyConfigServiceAndroid::GetLatestProxyConfig(ProxyConfig* config) { 393 ProxyConfigServiceAndroid::GetLatestProxyConfig(ProxyConfig* config) {
379 return delegate_->GetLatestProxyConfig(config); 394 return delegate_->GetLatestProxyConfig(config);
380 } 395 }
381 396
382 ProxyConfigServiceAndroid::ProxyConfigServiceAndroid( 397 ProxyConfigServiceAndroid::ProxyConfigServiceAndroid(
383 const scoped_refptr<base::SequencedTaskRunner>& network_task_runner, 398 const scoped_refptr<base::SequencedTaskRunner>& network_task_runner,
384 const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner, 399 const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner,
385 GetPropertyCallback get_property_callback) 400 GetPropertyCallback get_property_callback)
386 : delegate_(new Delegate( 401 : delegate_(new Delegate(
387 network_task_runner, jni_task_runner, get_property_callback)) { 402 network_task_runner, jni_task_runner, get_property_callback)) {
388 delegate_->SetupJNI(); 403 delegate_->SetupJNI();
389 delegate_->FetchInitialConfig(); 404 delegate_->FetchInitialConfig();
390 } 405 }
391 406
392 void ProxyConfigServiceAndroid::ProxySettingsChanged() { 407 void ProxyConfigServiceAndroid::ProxySettingsChanged() {
393 delegate_->ProxySettingsChanged(); 408 delegate_->ProxySettingsChanged();
394 } 409 }
395 410
396 } // namespace net 411 } // namespace net
OLDNEW
« no previous file with comments | « net/proxy/proxy_config_service_android.h ('k') | net/proxy/proxy_resolver_v8.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698