diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/proxy/proxy_config_service_linux.cc | 5 | ||||
-rw-r--r-- | net/proxy/proxy_config_service_linux_unittest.cc | 15 |
2 files changed, 19 insertions, 1 deletions
diff --git a/net/proxy/proxy_config_service_linux.cc b/net/proxy/proxy_config_service_linux.cc index fc85947..52b24e6 100644 --- a/net/proxy/proxy_config_service_linux.cc +++ b/net/proxy/proxy_config_service_linux.cc @@ -1445,11 +1445,14 @@ bool ProxyConfigServiceLinux::Delegate::GetConfigFromSettings( } if (mode == "auto") { - // automatic proxy config + // Automatic proxy config. std::string pac_url_str; if (setting_getter_->GetString(SettingGetter::PROXY_AUTOCONF_URL, &pac_url_str)) { if (!pac_url_str.empty()) { + // If the PAC URL is actually a file path, then put file:// in front. + if (pac_url_str[0] == '/') + pac_url_str = "file://" + pac_url_str; GURL pac_url(pac_url_str); if (!pac_url.is_valid()) return false; diff --git a/net/proxy/proxy_config_service_linux_unittest.cc b/net/proxy/proxy_config_service_linux_unittest.cc index 2b836e0..a0534c8 100644 --- a/net/proxy/proxy_config_service_linux_unittest.cc +++ b/net/proxy/proxy_config_service_linux_unittest.cc @@ -1098,6 +1098,21 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { }, { + TEST_DESC("Valid PAC file without file://"), + + // Input. + "[Proxy Settings]\nProxyType=2\n" + "Proxy Config Script=/wpad/wpad.dat\n", + {}, // env_values + + // Expected result. + ProxyConfigService::CONFIG_VALID, + false, // auto_detect + GURL("file:///wpad/wpad.dat"), // pac_url + ProxyRulesExpectation::Empty(), + }, + + { TEST_DESC("Per-scheme proxy rules"), // Input. |