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 {
class ProxyConfigServiceAndroid::Delegate
: public base::RefCountedThreadSafe<Delegate> {
public:
- Delegate(base::SequencedTaskRunner* network_task_runner,
- base::SequencedTaskRunner* jni_task_runner,
+ Delegate(const scoped_refptr<base::SequencedTaskRunner>& network_task_runner,
+ const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner,
const GetPropertyCallback& get_property_callback)
: jni_delegate_(this),
network_task_runner_(network_task_runner),
}
// 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(
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 {
};
ProxyConfigServiceAndroid::ProxyConfigServiceAndroid(
- base::SequencedTaskRunner* network_task_runner,
- base::SequencedTaskRunner* jni_task_runner)
+ const scoped_refptr<base::SequencedTaskRunner>& network_task_runner,
+ const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner)
: delegate_(new Delegate(
network_task_runner, jni_task_runner, base::Bind(&GetJavaProperty))) {
delegate_->SetupJNI();
}
ProxyConfigServiceAndroid::ProxyConfigServiceAndroid(
- base::SequencedTaskRunner* network_task_runner,
- base::SequencedTaskRunner* jni_task_runner,
+ const scoped_refptr<base::SequencedTaskRunner>& network_task_runner,
+ const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner,
GetPropertyCallback get_property_callback)
: delegate_(new Delegate(
network_task_runner, jni_task_runner, get_property_callback)) {