From 9da3e45a10115c7593b53ed27069387209f9fe28 Mon Sep 17 00:00:00 2001 From: "pneubeck@chromium.org" Date: Mon, 10 Jun 2013 15:09:58 +0000 Subject: 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 --- chrome/browser/chromeos/proxy_config_service_impl.cc | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'chrome/browser/chromeos/proxy_config_service_impl.cc') 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 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(); -- cgit v1.1