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

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

Issue 18112018: Cleanup the UseSharedProxies preference. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 7 years, 5 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
Index: 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 f9cceacae7c759da9c5ba08eb14cf9337e90af01..95f4f19a65bde303cd414b0866635f3be36df85b 100644
--- a/chrome/browser/chromeos/proxy_config_service_impl.cc
+++ b/chrome/browser/chromeos/proxy_config_service_impl.cc
@@ -7,7 +7,6 @@
#include "base/bind.h"
#include "base/location.h"
#include "base/logging.h"
-#include "base/prefs/pref_registry_simple.h"
#include "base/prefs/pref_service.h"
#include "base/values.h"
#include "chrome/browser/browser_process.h"
@@ -23,7 +22,6 @@
#include "chromeos/network/network_state.h"
#include "chromeos/network/network_state_handler.h"
#include "chromeos/network/onc/onc_utils.h"
-#include "components/user_prefs/pref_registry_syncable.h"
namespace chromeos {
@@ -43,15 +41,19 @@ bool GetProxyConfig(const NetworkState& network,
} // namespace
-ProxyConfigServiceImpl::ProxyConfigServiceImpl(PrefService* pref_service)
- : PrefProxyConfigTrackerImpl(pref_service),
+ProxyConfigServiceImpl::ProxyConfigServiceImpl(PrefService* profile_prefs,
+ PrefService* local_state_prefs)
+ : PrefProxyConfigTrackerImpl(profile_prefs ? profile_prefs
+ : local_state_prefs),
active_config_state_(ProxyPrefs::CONFIG_UNSET),
+ profile_prefs_(profile_prefs),
pointer_factory_(this) {
-
// Register for notifications of UseSharedProxies user preference.
- if (pref_service->FindPreference(prefs::kUseSharedProxies)) {
+ if (profile_prefs) {
+ DCHECK(profile_prefs->FindPreference(prefs::kUseSharedProxies));
use_shared_proxies_.Init(
- prefs::kUseSharedProxies, pref_service,
+ prefs::kUseSharedProxies,
+ profile_prefs,
base::Bind(&ProxyConfigServiceImpl::OnUseSharedProxiesChanged,
base::Unretained(this)));
}
@@ -79,24 +81,8 @@ void ProxyConfigServiceImpl::OnProxyConfigChanged(
DetermineEffectiveConfigFromDefaultNetwork();
}
-// static
-void ProxyConfigServiceImpl::RegisterPrefs(PrefRegistrySimple* registry) {
- // Use shared proxies default to off. GetUseSharedProxies will return the
- // correct value based on pre-login and login.
- registry->RegisterBooleanPref(prefs::kUseSharedProxies, true);
-}
-
-// static
-void ProxyConfigServiceImpl::RegisterProfilePrefs(
- user_prefs::PrefRegistrySyncable* registry) {
- registry->RegisterBooleanPref(
- prefs::kUseSharedProxies,
- true,
- user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
-}
-
void ProxyConfigServiceImpl::OnUseSharedProxiesChanged() {
- VLOG(1) << "New use-shared-proxies = " << GetUseSharedProxies(prefs());
+ VLOG(1) << "use-shared-proxies pref changed.";
DetermineEffectiveConfigFromDefaultNetwork();
}
@@ -119,43 +105,30 @@ void ProxyConfigServiceImpl::DefaultNetworkChanged(
}
// static
-bool ProxyConfigServiceImpl::GetUseSharedProxies(
- const PrefService* pref_service) {
- const PrefService::Preference* use_shared_proxies_pref =
- pref_service->FindPreference(prefs::kUseSharedProxies);
- if (!use_shared_proxies_pref || !use_shared_proxies_pref->GetValue()) {
- if (UserManager::Get()->IsUserLoggedIn()) {
- VLOG(1) << "use-shared-proxies not set, defaulting to false/IgnoreProxy.";
- return false;
- } else {
- // Make sure that proxies are always enabled at sign in screen.
- VLOG(1) << "Use proxy on login screen.";
- return true;
- }
- }
- bool use_shared_proxies = false;
- use_shared_proxies_pref->GetValue()->GetAsBoolean(&use_shared_proxies);
- return use_shared_proxies;
-}
-
-// static
-bool ProxyConfigServiceImpl::IgnoreProxy(const PrefService* pref_service,
+bool ProxyConfigServiceImpl::IgnoreProxy(const PrefService* profile_prefs,
const std::string network_profile_path,
onc::ONCSource onc_source) {
+ if (!profile_prefs) {
+ // If the profile preference are not available, this must be the object
+ // associated to local state used for system requests or login-profile. Make
+ // sure that proxies are enabled.
+ VLOG(1) << "Use proxy for system requests and sign-in screen.";
+ return false;
+ }
+
const NetworkProfile* profile =
NetworkHandler::Get()->network_profile_handler()->
GetProfileForPath(network_profile_path);
if (!profile) {
- LOG(WARNING) << "Unknown profile_path " << network_profile_path;
+ LOG(WARNING) << "Unknown profile_path '" << network_profile_path
+ << "'. Ignoring proxy.";
return true;
}
if (profile->type() == NetworkProfile::TYPE_USER) {
VLOG(1) << "Respect proxy of not-shared networks.";
return false;
}
-
- if (onc_source == onc::ONC_SOURCE_DEVICE_POLICY &&
- UserManager::Get()->IsUserLoggedIn()) {
+ if (onc_source == onc::ONC_SOURCE_DEVICE_POLICY) {
policy::BrowserPolicyConnector* connector =
g_browser_process->browser_policy_connector();
const User* logged_in_user = UserManager::Get()->GetLoggedInUser();
@@ -167,7 +140,10 @@ bool ProxyConfigServiceImpl::IgnoreProxy(const PrefService* pref_service,
}
}
- return !GetUseSharedProxies(pref_service);
+ // This network is shared and not managed by the user's domain.
+ bool use_shared_proxies = profile_prefs->GetBoolean(prefs::kUseSharedProxies);
+ VLOG(1) << "Use proxy of shared network: " << use_shared_proxies;
+ return !use_shared_proxies;
}
void ProxyConfigServiceImpl::DetermineEffectiveConfigFromDefaultNetwork() {
@@ -184,8 +160,8 @@ void ProxyConfigServiceImpl::DetermineEffectiveConfigFromDefaultNetwork() {
net::ProxyConfigService::CONFIG_UNSET;
bool ignore_proxy = true;
if (network) {
- ignore_proxy =
- IgnoreProxy(prefs(), network->profile_path(), network->onc_source());
+ ignore_proxy = IgnoreProxy(
+ profile_prefs_, network->profile_path(), network->onc_source());
// If network is shared but use-shared-proxies is off, use direct mode.
if (ignore_proxy) {
VLOG(1) << "Shared network && !use-shared-proxies, use direct";
« no previous file with comments | « chrome/browser/chromeos/proxy_config_service_impl.h ('k') | chrome/browser/chromeos/proxy_config_service_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698