summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/proxy_config_service_impl.cc
diff options
context:
space:
mode:
authorpneubeck@chromium.org <pneubeck@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-10 15:09:58 +0000
committerpneubeck@chromium.org <pneubeck@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-10 15:09:58 +0000
commit9da3e45a10115c7593b53ed27069387209f9fe28 (patch)
tree7d49ad6e8a3bfd0c4c03f48df8b5e5ccbcc31329 /chrome/browser/chromeos/proxy_config_service_impl.cc
parentc14c2ace8823c52b65f4a698428407e3e7cd9283 (diff)
downloadchromium_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.cc19
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();