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

Unified Diff: net/proxy/proxy_config_service_android.cc

Issue 573013002: Detect whether a PAC url is present on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months 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 side-by-side diff with in-line comments
Download patch
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 4f52aed82350248d7c8797179ecd740f0b68d91b..d27bc5ac548df2cbb9aafb9232fe3134bdbe4855 100644
--- a/net/proxy/proxy_config_service_android.cc
+++ b/net/proxy/proxy_config_service_android.cc
@@ -159,9 +159,14 @@ std::string GetJavaProperty(const std::string& property) {
std::string() : ConvertJavaStringToUTF8(env, result.obj());
}
-void CreateStaticProxyConfig(const std::string& host, int port,
+void CreateStaticProxyConfig(const std::string& host,
+ int port,
+ const std::string& pac_url,
ProxyConfig* config) {
- if (port != 0) {
+ if (!pac_url.empty()) {
+ config->set_pac_url(GURL(pac_url));
+ config->set_pac_mandatory(false);
+ } else if (port != 0) {
std::string rules = base::StringPrintf("%s:%d", host.c_str(), port);
config->proxy_rules().ParseFromString(rules);
} else {
@@ -248,10 +253,12 @@ class ProxyConfigServiceAndroid::Delegate
}
// Called on the JNI thread.
- void ProxySettingsChangedTo(const std::string& host, int port) {
+ void ProxySettingsChangedTo(const std::string& host,
+ int port,
+ const std::string& pac_url) {
DCHECK(OnJNIThread());
ProxyConfig proxy_config;
- CreateStaticProxyConfig(host, port, &proxy_config);
+ CreateStaticProxyConfig(host, port, pac_url, &proxy_config);
network_task_runner_->PostTask(
FROM_HERE,
base::Bind(
@@ -266,10 +273,16 @@ class ProxyConfigServiceAndroid::Delegate
explicit JNIDelegateImpl(Delegate* delegate) : delegate_(delegate) {}
// ProxyConfigServiceAndroid::JNIDelegate overrides.
- virtual void ProxySettingsChangedTo(JNIEnv* env, jobject jself,
- jstring jhost, jint jport) OVERRIDE {
+ virtual void ProxySettingsChangedTo(JNIEnv* env,
+ jobject jself,
+ jstring jhost,
+ jint jport,
+ jstring jpac_url) OVERRIDE {
std::string host = ConvertJavaStringToUTF8(env, jhost);
- delegate_->ProxySettingsChangedTo(host, jport);
+ std::string pac_url;
+ if (jpac_url)
+ ConvertJavaStringToUTF8(env, jpac_url, &pac_url);
+ delegate_->ProxySettingsChangedTo(host, jport, pac_url);
}
virtual void ProxySettingsChanged(JNIEnv* env, jobject self) OVERRIDE {
« net/proxy/proxy_config_service_android.h ('K') | « 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