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

Unified Diff: components/proxy_config/pref_proxy_config_tracker_impl.cc

Issue 1296663003: Componentize proxy code from chrome/browser/net (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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: components/proxy_config/pref_proxy_config_tracker_impl.cc
diff --git a/chrome/browser/net/pref_proxy_config_tracker_impl.cc b/components/proxy_config/pref_proxy_config_tracker_impl.cc
similarity index 87%
rename from chrome/browser/net/pref_proxy_config_tracker_impl.cc
rename to components/proxy_config/pref_proxy_config_tracker_impl.cc
index 6de119ea7f9ca9223fe181e13166b5775ee8dceb..13176a00dc120eb6d866390feb61394b74695c29 100644
--- a/chrome/browser/net/pref_proxy_config_tracker_impl.cc
+++ b/components/proxy_config/pref_proxy_config_tracker_impl.cc
@@ -2,26 +2,21 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/net/pref_proxy_config_tracker_impl.h"
+#include "components/proxy_config/pref_proxy_config_tracker_impl.h"
#include "base/bind.h"
+#include "base/location.h"
#include "base/metrics/histogram_macros.h"
#include "base/prefs/pref_registry_simple.h"
#include "base/prefs/pref_service.h"
+#include "base/single_thread_task_runner.h"
#include "base/strings/string_util.h"
#include "base/values.h"
-#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/common/pref_names.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "components/proxy_config/proxy_config_dictionary.h"
-#include "content/public/browser/browser_thread.h"
-#include "content/public/browser/notification_details.h"
-#include "content/public/browser/notification_source.h"
#include "net/proxy/proxy_list.h"
#include "net/proxy/proxy_server.h"
-using content::BrowserThread;
-
namespace {
// Determine if |proxy| is of the form "*.googlezip.net".
@@ -93,8 +88,7 @@ ChromeProxyConfigService::ChromeProxyConfigService(
: base_service_(base_service),
pref_config_state_(ProxyPrefs::CONFIG_UNSET),
pref_config_read_pending_(true),
- registered_observer_(false) {
-}
+ registered_observer_(false) {}
ChromeProxyConfigService::~ChromeProxyConfigService() {
if (registered_observer_ && base_service_.get())
@@ -113,7 +107,7 @@ void ChromeProxyConfigService::RemoveObserver(
}
net::ProxyConfigService::ConfigAvailability
- ChromeProxyConfigService::GetLatestProxyConfig(net::ProxyConfig* config) {
+ChromeProxyConfigService::GetLatestProxyConfig(net::ProxyConfig* config) {
RegisterObserver();
if (pref_config_read_pending_)
@@ -128,9 +122,8 @@ net::ProxyConfigService::ConfigAvailability
ProxyPrefs::ConfigState config_state;
return PrefProxyConfigTrackerImpl::GetEffectiveProxyConfig(
- pref_config_state_, pref_config_,
- system_availability, system_config, false,
- &config_state, config);
+ pref_config_state_, pref_config_, system_availability, system_config,
+ false, &config_state, config);
}
void ChromeProxyConfigService::OnLazyPoll() {
@@ -141,7 +134,7 @@ void ChromeProxyConfigService::OnLazyPoll() {
void ChromeProxyConfigService::UpdateProxyConfig(
ProxyPrefs::ConfigState config_state,
const net::ProxyConfig& config) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
pref_config_read_pending_ = false;
pref_config_state_ = config_state;
@@ -169,7 +162,7 @@ void ChromeProxyConfigService::UpdateProxyConfig(
void ChromeProxyConfigService::OnProxyConfigChanged(
const net::ProxyConfig& config,
ConfigAvailability availability) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
// Check whether there is a proxy configuration defined by preferences. In
// this case that proxy configuration takes precedence and the change event
@@ -183,7 +176,7 @@ void ChromeProxyConfigService::OnProxyConfigChanged(
}
void ChromeProxyConfigService::RegisterObserver() {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
if (!registered_observer_ && base_service_.get()) {
base_service_->AddObserver(this);
registered_observer_ = true;
@@ -193,13 +186,15 @@ void ChromeProxyConfigService::RegisterObserver() {
//========================= PrefProxyConfigTrackerImpl =========================
PrefProxyConfigTrackerImpl::PrefProxyConfigTrackerImpl(
- PrefService* pref_service)
+ PrefService* pref_service,
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner)
: pref_service_(pref_service),
chrome_proxy_config_service_(NULL),
- update_pending_(true) {
+ update_pending_(true),
+ task_runner_(task_runner) {
config_state_ = ReadPrefConfig(pref_service_, &pref_config_);
proxy_prefs_.Init(pref_service);
- proxy_prefs_.Add(prefs::kProxy,
+ proxy_prefs_.Add(ProxyPrefs::kProxy,
base::Bind(&PrefProxyConfigTrackerImpl::OnProxyPrefChanged,
base::Unretained(this)));
}
@@ -222,7 +217,7 @@ PrefProxyConfigTrackerImpl::CreateTrackingProxyConfigService(
}
void PrefProxyConfigTrackerImpl::DetachFromPrefService() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
// Stop notifications.
proxy_prefs_.RemoveAll();
pref_service_ = NULL;
@@ -239,14 +234,14 @@ bool PrefProxyConfigTrackerImpl::PrefPrecedes(
// static
net::ProxyConfigService::ConfigAvailability
- PrefProxyConfigTrackerImpl::GetEffectiveProxyConfig(
- ProxyPrefs::ConfigState pref_state,
- const net::ProxyConfig& pref_config,
- net::ProxyConfigService::ConfigAvailability system_availability,
- const net::ProxyConfig& system_config,
- bool ignore_fallback_config,
- ProxyPrefs::ConfigState* effective_config_state,
- net::ProxyConfig* effective_config) {
+PrefProxyConfigTrackerImpl::GetEffectiveProxyConfig(
+ ProxyPrefs::ConfigState pref_state,
+ const net::ProxyConfig& pref_config,
+ net::ProxyConfigService::ConfigAvailability system_availability,
+ const net::ProxyConfig& system_config,
+ bool ignore_fallback_config,
+ ProxyPrefs::ConfigState* effective_config_state,
+ net::ProxyConfig* effective_config) {
net::ProxyConfigService::ConfigAvailability rv;
*effective_config_state = pref_state;
@@ -284,7 +279,7 @@ net::ProxyConfigService::ConfigAvailability
void PrefProxyConfigTrackerImpl::RegisterPrefs(PrefRegistrySimple* registry) {
base::DictionaryValue* default_settings =
ProxyConfigDictionary::CreateSystem();
- registry->RegisterDictionaryPref(prefs::kProxy, default_settings);
+ registry->RegisterDictionaryPref(ProxyPrefs::kProxy, default_settings);
}
// static
@@ -292,25 +287,23 @@ void PrefProxyConfigTrackerImpl::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* pref_service) {
base::DictionaryValue* default_settings =
ProxyConfigDictionary::CreateSystem();
- pref_service->RegisterDictionaryPref(prefs::kProxy, default_settings);
+ pref_service->RegisterDictionaryPref(ProxyPrefs::kProxy, default_settings);
}
// static
ProxyPrefs::ConfigState PrefProxyConfigTrackerImpl::ReadPrefConfig(
const PrefService* pref_service,
net::ProxyConfig* config) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
// Clear the configuration and source.
*config = net::ProxyConfig();
ProxyPrefs::ConfigState config_state = ProxyPrefs::CONFIG_UNSET;
const PrefService::Preference* pref =
- pref_service->FindPreference(prefs::kProxy);
+ pref_service->FindPreference(ProxyPrefs::kProxy);
DCHECK(pref);
const base::DictionaryValue* dict =
- pref_service->GetDictionary(prefs::kProxy);
+ pref_service->GetDictionary(ProxyPrefs::kProxy);
DCHECK(dict);
ProxyConfigDictionary proxy_dict(dict);
@@ -322,7 +315,7 @@ ProxyPrefs::ConfigState PrefProxyConfigTrackerImpl::ReadPrefConfig(
config_state = ProxyPrefs::CONFIG_EXTENSION;
else
config_state = ProxyPrefs::CONFIG_OTHER_PRECEDE;
- } else {
+ } else {
config_state = ProxyPrefs::CONFIG_FALLBACK;
}
}
@@ -332,7 +325,7 @@ ProxyPrefs::ConfigState PrefProxyConfigTrackerImpl::ReadPrefConfig(
ProxyPrefs::ConfigState PrefProxyConfigTrackerImpl::GetProxyConfig(
net::ProxyConfig* config) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
if (config_state_ != ProxyPrefs::CONFIG_UNSET)
*config = pref_config_;
return config_state_;
@@ -346,11 +339,10 @@ void PrefProxyConfigTrackerImpl::OnProxyConfigChanged(
update_pending_ = true;
return;
}
- update_pending_ = !BrowserThread::PostTask(
- BrowserThread::IO, FROM_HERE,
- base::Bind(&ChromeProxyConfigService::UpdateProxyConfig,
- base::Unretained(chrome_proxy_config_service_),
- config_state, config));
+ update_pending_ = !task_runner_->PostTask(
+ FROM_HERE, base::Bind(&ChromeProxyConfigService::UpdateProxyConfig,
+ base::Unretained(chrome_proxy_config_service_),
+ config_state, config));
VLOG(1) << this << (update_pending_ ? ": Error" : ": Done")
<< " pushing proxy to UpdateProxyConfig";
}
@@ -417,10 +409,10 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(
}
void PrefProxyConfigTrackerImpl::OnProxyPrefChanged() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
net::ProxyConfig new_config;
- ProxyPrefs::ConfigState config_state = ReadPrefConfig(pref_service_,
- &new_config);
+ ProxyPrefs::ConfigState config_state =
+ ReadPrefConfig(pref_service_, &new_config);
if (config_state_ != config_state ||
(config_state_ != ProxyPrefs::CONFIG_UNSET &&
!pref_config_.Equals(new_config))) {

Powered by Google App Engine
This is Rietveld 408576698