summaryrefslogtreecommitdiffstats
path: root/chrome/browser/net
diff options
context:
space:
mode:
authorbattre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-31 22:29:01 +0000
committerbattre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-31 22:29:01 +0000
commita216179bced5da1d8f534fe256e9b02173607559 (patch)
tree82120a15151bf09ef083d90c289923b9e75eab24 /chrome/browser/net
parentdfb03af1c83b0b1ee40b60adfef0db582b260c0f (diff)
downloadchromium_src-a216179bced5da1d8f534fe256e9b02173607559.zip
chromium_src-a216179bced5da1d8f534fe256e9b02173607559.tar.gz
chromium_src-a216179bced5da1d8f534fe256e9b02173607559.tar.bz2
Fall back to system settings if pref proxy setting is MODE_SYSTEM.
BUG=84220 TEST=See bug Review URL: http://codereview.chromium.org/7084027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87379 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/net')
-rw-r--r--chrome/browser/net/pref_proxy_config_service.cc2
-rw-r--r--chrome/browser/net/pref_proxy_config_service_unittest.cc16
2 files changed, 17 insertions, 1 deletions
diff --git a/chrome/browser/net/pref_proxy_config_service.cc b/chrome/browser/net/pref_proxy_config_service.cc
index a07a340..6fafc36 100644
--- a/chrome/browser/net/pref_proxy_config_service.cc
+++ b/chrome/browser/net/pref_proxy_config_service.cc
@@ -116,7 +116,7 @@ bool PrefProxyConfigTracker::PrefConfigToNetConfig(
switch (mode) {
case ProxyPrefs::MODE_SYSTEM:
// Use system settings.
- return true;
+ return false;
case ProxyPrefs::MODE_DIRECT:
// Ignore all the other proxy config preferences if the use of a proxy
// has been explicitly disabled.
diff --git a/chrome/browser/net/pref_proxy_config_service_unittest.cc b/chrome/browser/net/pref_proxy_config_service_unittest.cc
index 6d959a3..d350829 100644
--- a/chrome/browser/net/pref_proxy_config_service_unittest.cc
+++ b/chrome/browser/net/pref_proxy_config_service_unittest.cc
@@ -263,6 +263,22 @@ TEST_F(PrefProxyConfigServiceTest, Fallback) {
proxy_config_service_->RemoveObserver(&observer);
}
+TEST_F(PrefProxyConfigServiceTest, ExplicitSystemSettings) {
+ pref_service_->SetRecommendedPref(
+ prefs::kProxy,
+ ProxyConfigDictionary::CreateAutoDetect());
+ pref_service_->SetUserPref(
+ prefs::kProxy,
+ ProxyConfigDictionary::CreateSystem());
+ loop_.RunAllPending();
+
+ // Test if we actually use the system setting, which is |kFixedPacUrl|.
+ net::ProxyConfig actual_config;
+ EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID,
+ proxy_config_service_->GetLatestProxyConfig(&actual_config));
+ EXPECT_EQ(GURL(kFixedPacUrl), actual_config.pac_url());
+}
+
// Test parameter object for testing command line proxy configuration.
struct CommandLineTestParams {
// Explicit assignment operator, so testing::TestWithParam works with MSVC.