diff options
author | pneubeck@chromium.org <pneubeck@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-10 15:09:58 +0000 |
---|---|---|
committer | pneubeck@chromium.org <pneubeck@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-10 15:09:58 +0000 |
commit | 9da3e45a10115c7593b53ed27069387209f9fe28 (patch) | |
tree | 7d49ad6e8a3bfd0c4c03f48df8b5e5ccbcc31329 /chrome/browser/chromeos/proxy_config_service_impl.cc | |
parent | c14c2ace8823c52b65f4a698428407e3e7cd9283 (diff) | |
download | chromium_src-9da3e45a10115c7593b53ed27069387209f9fe28.zip chromium_src-9da3e45a10115c7593b53ed27069387209f9fe28.tar.gz chromium_src-9da3e45a10115c7593b53ed27069387209f9fe28.tar.bz2 |
Extract common per-network proxy configuration functions.
- Extracted functions to get and set per-network proxy configuration from ProxyConfigServiceImpl, UIProxyConfigService and NetworkStateInformer, and moved them to a common place (chrome/browser/chromeos/net/proxy_config_handler.h).
- The previous SetProxyConfig call to NetworkLibrary was extracted and instead ShillServiceClient is called directly.
- Now uses NetworkStateHandler and NetworkState instead of NetworkLibrary to get the current proxy config.
- This removed any dependency of proxy UI on NetworkLibrary.
BUG=234982
R=mnissler@chromium.org, nkostylev@chromium.org, stevenjb@chromium.org
Review URL: https://codereview.chromium.org/16398005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205214 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 | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/chrome/browser/chromeos/proxy_config_service_impl.cc b/chrome/browser/chromeos/proxy_config_service_impl.cc index de8684c..41a2737 100644 --- a/chrome/browser/chromeos/proxy_config_service_impl.cc +++ b/chrome/browser/chromeos/proxy_config_service_impl.cc @@ -11,6 +11,7 @@ #include "base/values.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/login/user_manager.h" +#include "chrome/browser/chromeos/net/proxy_config_handler.h" #include "chrome/browser/policy/browser_policy_connector.h" #include "chrome/browser/policy/cloud/cloud_policy_constants.h" #include "chrome/browser/prefs/proxy_config_dictionary.h" @@ -27,15 +28,15 @@ namespace chromeos { namespace { -// Convert and store the proxy config of |pref_proxy_config| of -// ProxyConfigDictionary format to |proxy_config|. Returns true if -// |pref_proxy_config| was not empty and if it was successfully converted. -bool ParseProxyConfig(const base::DictionaryValue& pref_proxy_config, - net::ProxyConfig* proxy_config) { - if (pref_proxy_config.empty()) +// Writes the proxy config of |network| to |proxy_config|. Returns false if no +// proxy was configured for this network. +bool GetProxyConfig(const NetworkState& network, + net::ProxyConfig* proxy_config) { + scoped_ptr<ProxyConfigDictionary> proxy_dict = + proxy_config::GetProxyConfigForNetwork(network); + if (!proxy_dict) return false; - ProxyConfigDictionary proxy_dict(&pref_proxy_config); - return PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(proxy_dict, + return PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(*proxy_dict, proxy_config); } @@ -186,7 +187,7 @@ void ProxyConfigServiceImpl::DetermineEffectiveConfigFromDefaultNetwork() { if (ignore_proxy) { VLOG(1) << "Shared network && !use-shared-proxies, use direct"; network_availability = net::ProxyConfigService::CONFIG_VALID; - } else if (ParseProxyConfig(network->proxy_config(), &network_config)) { + } else if (chromeos::GetProxyConfig(*network, &network_config)) { // Network is private or shared with user using shared proxies. VLOG(1) << this << ": using network proxy: " << network->proxy_config(); |