summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/chromeos/cros/network_library.cc2
-rw-r--r--chrome/browser/chromeos/proxy_config_service_impl.cc19
2 files changed, 16 insertions, 5 deletions
diff --git a/chrome/browser/chromeos/cros/network_library.cc b/chrome/browser/chromeos/cros/network_library.cc
index 03aca4c..e770515 100644
--- a/chrome/browser/chromeos/cros/network_library.cc
+++ b/chrome/browser/chromeos/cros/network_library.cc
@@ -677,7 +677,7 @@ std::string Network::GetErrorString() const {
}
void Network::SetProxyConfig(const std::string& proxy_config) {
- SetStringProperty(
+ SetOrClearStringProperty(
flimflam::kProxyConfigProperty, proxy_config, &proxy_config_);
}
diff --git a/chrome/browser/chromeos/proxy_config_service_impl.cc b/chrome/browser/chromeos/proxy_config_service_impl.cc
index 8480d30..f4039284 100644
--- a/chrome/browser/chromeos/proxy_config_service_impl.cc
+++ b/chrome/browser/chromeos/proxy_config_service_impl.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -323,11 +323,22 @@ bool ProxyConfigServiceImpl::ProxyConfig::DeserializeForDevice(
bool ProxyConfigServiceImpl::ProxyConfig::SerializeForNetwork(
std::string* output) {
- scoped_ptr<DictionaryValue> proxy_dict(ToPrefProxyConfig());
- if (!proxy_dict.get())
+ scoped_ptr<DictionaryValue> proxy_dict_ptr(ToPrefProxyConfig());
+ if (!proxy_dict_ptr.get())
return false;
+
+ // Return empty string for direct mode for portal check to work correctly.
+ DictionaryValue *dict = proxy_dict_ptr.get();
+ ProxyConfigDictionary proxy_dict(dict);
+ ProxyPrefs::ProxyMode mode;
+ if (proxy_dict.GetMode(&mode)) {
+ if (mode == ProxyPrefs::MODE_DIRECT) {
+ output->clear();
+ return true;
+ }
+ }
JSONStringValueSerializer serializer(output);
- return serializer.Serialize(*proxy_dict.get());
+ return serializer.Serialize(*dict);
}
//----------- ProxyConfigServiceImpl::ProxyConfig: private methods -------------