summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/proxy/proxy_config_service_linux.cc5
-rw-r--r--net/proxy/proxy_config_service_linux_unittest.cc15
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.