diff options
author | ygorshenin@chromium.org <ygorshenin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-29 22:50:03 +0000 |
---|---|---|
committer | ygorshenin@chromium.org <ygorshenin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-29 22:50:03 +0000 |
commit | ac08e7f6cde403d12d02d50fdfe373ff3f0e9ee3 (patch) | |
tree | bf8c44c9e1bdfc7ee6226d2f080ea8086c618d58 /chrome/browser/chromeos/proxy_config_service_impl.cc | |
parent | edd19b4363571e1e8dd3f43549c3ba369db00ad8 (diff) | |
download | chromium_src-ac08e7f6cde403d12d02d50fdfe373ff3f0e9ee3.zip chromium_src-ac08e7f6cde403d12d02d50fdfe373ff3f0e9ee3.tar.gz chromium_src-ac08e7f6cde403d12d02d50fdfe373ff3f0e9ee3.tar.bz2 |
Added NetworkPortalDetector.
BUG=134206
TEST=Manual tests on an Alex device.
Review URL: https://chromiumcodereview.appspot.com/10981067
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164756 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/proxy_config_service_impl.cc')
-rw-r--r-- | chrome/browser/chromeos/proxy_config_service_impl.cc | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/chrome/browser/chromeos/proxy_config_service_impl.cc b/chrome/browser/chromeos/proxy_config_service_impl.cc index 03228db..3b20231 100644 --- a/chrome/browser/chromeos/proxy_config_service_impl.cc +++ b/chrome/browser/chromeos/proxy_config_service_impl.cc @@ -562,6 +562,20 @@ void ProxyConfigServiceImpl::OnNetworkChanged(NetworkLibrary* network_lib, } // static +bool ProxyConfigServiceImpl::ParseProxyConfig(const Network* network, + net::ProxyConfig* proxy_config) { + if (!network || !proxy_config) + return false; + JSONStringValueSerializer serializer(network->proxy_config()); + scoped_ptr<Value> value(serializer.Deserialize(NULL, NULL)); + if (!value.get() || value->GetType() != Value::TYPE_DICTIONARY) + return false; + ProxyConfigDictionary proxy_dict(static_cast<DictionaryValue*>(value.get())); + return PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(proxy_dict, + proxy_config); +} + +// static void ProxyConfigServiceImpl::RegisterPrefs(PrefService* pref_service) { // Use shared proxies default to off. GetUseSharedProxies will return the // correct value based on pre-login and login. @@ -715,16 +729,10 @@ void ProxyConfigServiceImpl::DetermineEffectiveConfig(const Network* network, network_availability = net::ProxyConfigService::CONFIG_VALID; } else if (!network->proxy_config().empty()) { // Network is private or shared with user using shared proxies. - JSONStringValueSerializer serializer(network->proxy_config()); - scoped_ptr<Value> value(serializer.Deserialize(NULL, NULL)); - if (value.get() && value->GetType() == Value::TYPE_DICTIONARY) { - DictionaryValue* dict = static_cast<DictionaryValue*>(value.get()); - ProxyConfigDictionary proxy_dict(dict); - if (PrefConfigToNetConfig(proxy_dict, &network_config)) { - VLOG(1) << this << ": using network proxy: " - << network->proxy_config(); - network_availability = net::ProxyConfigService::CONFIG_VALID; - } + if (ParseProxyConfig(network, &network_config)) { + VLOG(1) << this << ": using network proxy: " + << network->proxy_config(); + network_availability = net::ProxyConfigService::CONFIG_VALID; } } } |