Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1017)

Unified Diff: chrome/browser/chromeos/ui_proxy_config_service.cc

Issue 2442313003: Move some proxy config code out of src/chrome (Closed)
Patch Set: Fix DEPS Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/chromeos/ui_proxy_config_service.h ('k') | chrome/browser/net/proxy_service_factory.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/ui_proxy_config_service.cc
diff --git a/chrome/browser/chromeos/ui_proxy_config_service.cc b/chrome/browser/chromeos/ui_proxy_config_service.cc
deleted file mode 100644
index 5f9b6f1cea5dd39d28a61ff61d9f5c58392afe4e..0000000000000000000000000000000000000000
--- a/chrome/browser/chromeos/ui_proxy_config_service.cc
+++ /dev/null
@@ -1,186 +0,0 @@
-// Copyright 2013 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.
-
-#include "chrome/browser/chromeos/ui_proxy_config_service.h"
-
-#include <memory>
-
-#include "base/logging.h"
-#include "base/values.h"
-#include "chrome/browser/chromeos/net/proxy_config_handler.h"
-#include "chrome/browser/chromeos/proxy_config_service_impl.h"
-#include "chromeos/network/network_state.h"
-#include "chromeos/network/network_state_handler.h"
-#include "components/device_event_log/device_event_log.h"
-#include "components/proxy_config/pref_proxy_config_tracker_impl.h"
-#include "net/proxy/proxy_config.h"
-
-namespace chromeos {
-
-namespace {
-
-const char* ModeToString(UIProxyConfig::Mode mode) {
- switch (mode) {
- case UIProxyConfig::MODE_DIRECT:
- return "direct";
- case UIProxyConfig::MODE_AUTO_DETECT:
- return "auto-detect";
- case UIProxyConfig::MODE_PAC_SCRIPT:
- return "pacurl";
- case UIProxyConfig::MODE_SINGLE_PROXY:
- return "single-proxy";
- case UIProxyConfig::MODE_PROXY_PER_SCHEME:
- return "proxy-per-scheme";
- }
- NOTREACHED() << "Unrecognized mode type";
- return "";
-}
-
-// Writes the proxy config of |network| to |proxy_config|. Sets |onc_source| to
-// the source of this configuration. Returns false if no proxy was configured
-// for this network.
-bool GetProxyConfig(const PrefService* profile_prefs,
- const PrefService* local_state_prefs,
- const NetworkState& network,
- net::ProxyConfig* proxy_config,
- onc::ONCSource* onc_source) {
- std::unique_ptr<ProxyConfigDictionary> proxy_dict =
- proxy_config::GetProxyConfigForNetwork(profile_prefs, local_state_prefs,
- network, onc_source);
- if (!proxy_dict)
- return false;
- return PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(*proxy_dict,
- proxy_config);
-}
-
-// Returns true if proxy settings from |onc_source| are editable.
-bool IsNetworkProxySettingsEditable(const onc::ONCSource onc_source) {
- return onc_source != onc::ONC_SOURCE_DEVICE_POLICY &&
- onc_source != onc::ONC_SOURCE_USER_POLICY;
-}
-
-} // namespace
-
-UIProxyConfigService::UIProxyConfigService()
- : profile_prefs_(nullptr), local_state_prefs_(nullptr) {
-}
-
-UIProxyConfigService::~UIProxyConfigService() {
-}
-
-void UIProxyConfigService::SetPrefs(PrefService* profile_prefs,
- PrefService* local_state_prefs) {
- profile_prefs_ = profile_prefs;
- local_state_prefs_ = local_state_prefs;
-}
-
-void UIProxyConfigService::SetCurrentNetworkGuid(
- const std::string& current_guid) {
- current_ui_network_guid_ = current_guid;
-}
-
-void UIProxyConfigService::UpdateFromPrefs() {
- const NetworkState* network = nullptr;
- if (!current_ui_network_guid_.empty()) {
- network =
- NetworkHandler::Get()->network_state_handler()->GetNetworkStateFromGuid(
- current_ui_network_guid_);
- }
- if (!network || !network->IsInProfile()) {
- NET_LOG(ERROR) << "No configured NetworkState for guid: "
- << current_ui_network_guid_;
- current_ui_network_guid_.clear();
- current_ui_config_ = UIProxyConfig();
- return;
- }
-
- DetermineEffectiveConfig(*network);
- VLOG(1) << "Current ui network: " << network->name() << ", "
- << ModeToString(current_ui_config_.mode) << ", "
- << ProxyPrefs::ConfigStateToDebugString(current_ui_config_.state)
- << ", modifiable:" << current_ui_config_.user_modifiable;
-}
-
-void UIProxyConfigService::GetProxyConfig(UIProxyConfig* config) const {
- *config = current_ui_config_;
-}
-
-void UIProxyConfigService::SetProxyConfig(const UIProxyConfig& config) {
- current_ui_config_ = config;
- if (current_ui_network_guid_.empty())
- return;
-
- const NetworkState* network =
- NetworkHandler::Get()->network_state_handler()->GetNetworkStateFromGuid(
- current_ui_network_guid_);
- if (!network || !network->IsInProfile()) {
- NET_LOG(ERROR) << "No configured NetworkState for guid: "
- << current_ui_network_guid_;
- return;
- }
-
- // Store config for this network.
- std::unique_ptr<base::DictionaryValue> proxy_config_value(
- config.ToPrefProxyConfig());
- ProxyConfigDictionary proxy_config_dict(proxy_config_value.get());
-
- VLOG(1) << "Set proxy for " << current_ui_network_guid_ << " to "
- << *proxy_config_value;
-
- proxy_config::SetProxyConfigForNetwork(proxy_config_dict, *network);
- current_ui_config_.state = ProxyPrefs::CONFIG_SYSTEM;
-}
-
-void UIProxyConfigService::DetermineEffectiveConfig(
- const NetworkState& network) {
- DCHECK(local_state_prefs_);
-
- // The pref service to read proxy settings that apply to all networks.
- // Settings from the profile overrule local state.
- PrefService* top_pref_service =
- profile_prefs_ ? profile_prefs_ : local_state_prefs_;
-
- // Get prefs proxy config if available.
- net::ProxyConfig pref_config;
- ProxyPrefs::ConfigState pref_state = ProxyConfigServiceImpl::ReadPrefConfig(
- top_pref_service, &pref_config);
-
- // Get network proxy config if available.
- net::ProxyConfig network_config;
- net::ProxyConfigService::ConfigAvailability network_availability =
- net::ProxyConfigService::CONFIG_UNSET;
- onc::ONCSource onc_source = onc::ONC_SOURCE_NONE;
- if (chromeos::GetProxyConfig(profile_prefs_,
- local_state_prefs_,
- network,
- &network_config,
- &onc_source)) {
- // Network is private or shared with user using shared proxies.
- VLOG(1) << this << ": using proxy of network: " << network.path();
- network_availability = net::ProxyConfigService::CONFIG_VALID;
- }
-
- // Determine effective proxy config, either from prefs or network.
- ProxyPrefs::ConfigState effective_config_state;
- net::ProxyConfig effective_config;
- ProxyConfigServiceImpl::GetEffectiveProxyConfig(
- pref_state, pref_config,
- network_availability, network_config, false,
- &effective_config_state, &effective_config);
-
- // Store effective proxy into |current_ui_config_|.
- current_ui_config_.FromNetProxyConfig(effective_config);
- current_ui_config_.state = effective_config_state;
- if (ProxyConfigServiceImpl::PrefPrecedes(effective_config_state)) {
- current_ui_config_.user_modifiable = false;
- } else if (!IsNetworkProxySettingsEditable(onc_source)) {
- current_ui_config_.state = ProxyPrefs::CONFIG_POLICY;
- current_ui_config_.user_modifiable = false;
- } else {
- current_ui_config_.user_modifiable = !ProxyConfigServiceImpl::IgnoreProxy(
- profile_prefs_, network.profile_path(), onc_source);
- }
-}
-
-} // namespace chromeos
« no previous file with comments | « chrome/browser/chromeos/ui_proxy_config_service.h ('k') | chrome/browser/net/proxy_service_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698