#include "components/proxy_config/pref_proxy_config_tracker_impl.h"
#include <stddef.h>
#include <memory>
#include <utility>
#include "base/functional/bind.h"
#include "base/location.h"
#include "base/logging.h"
#include "base/observer_list.h"
#include "base/task/single_thread_task_runner.h"
#include "base/values.h"
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
#include "components/proxy_config/proxy_config_dictionary.h"
#include "components/proxy_config/proxy_config_pref_names.h"
#include "net/base/proxy_server.h"
#include "url/gurl.h"
namespace {
constexpr net::NetworkTrafficAnnotationTag
kSettingsProxyConfigTrafficAnnotation = …;
}
ProxyConfigServiceImpl::ProxyConfigServiceImpl(
std::unique_ptr<net::ProxyConfigService> base_service,
ProxyPrefs::ConfigState initial_config_state,
const net::ProxyConfigWithAnnotation& initial_config)
: … { … }
ProxyConfigServiceImpl::~ProxyConfigServiceImpl() { … }
void ProxyConfigServiceImpl::AddObserver(
net::ProxyConfigService::Observer* observer) { … }
void ProxyConfigServiceImpl::RemoveObserver(
net::ProxyConfigService::Observer* observer) { … }
net::ProxyConfigService::ConfigAvailability
ProxyConfigServiceImpl::GetLatestProxyConfig(
net::ProxyConfigWithAnnotation* config) { … }
void ProxyConfigServiceImpl::OnLazyPoll() { … }
bool ProxyConfigServiceImpl::UsesPolling() { … }
void ProxyConfigServiceImpl::UpdateProxyConfig(
ProxyPrefs::ConfigState config_state,
const net::ProxyConfigWithAnnotation& config) { … }
void ProxyConfigServiceImpl::OnProxyConfigChanged(
const net::ProxyConfigWithAnnotation& config,
ConfigAvailability availability) { … }
void ProxyConfigServiceImpl::RegisterObserver() { … }
PrefProxyConfigTrackerImpl::PrefProxyConfigTrackerImpl(
PrefService* pref_service,
scoped_refptr<base::SingleThreadTaskRunner>
proxy_config_service_task_runner)
: … { … }
PrefProxyConfigTrackerImpl::~PrefProxyConfigTrackerImpl() { … }
std::unique_ptr<net::ProxyConfigService>
PrefProxyConfigTrackerImpl::CreateTrackingProxyConfigService(
std::unique_ptr<net::ProxyConfigService> base_service) { … }
void PrefProxyConfigTrackerImpl::DetachFromPrefService() { … }
bool PrefProxyConfigTrackerImpl::PrefPrecedes(
ProxyPrefs::ConfigState config_state) { … }
net::ProxyConfigService::ConfigAvailability
PrefProxyConfigTrackerImpl::GetEffectiveProxyConfig(
ProxyPrefs::ConfigState pref_state,
const net::ProxyConfigWithAnnotation& pref_config,
net::ProxyConfigService::ConfigAvailability system_availability,
const net::ProxyConfigWithAnnotation& system_config,
bool ignore_fallback_config,
ProxyPrefs::ConfigState* effective_config_state,
net::ProxyConfigWithAnnotation* effective_config) { … }
void PrefProxyConfigTrackerImpl::RegisterPrefs(PrefRegistrySimple* registry) { … }
void PrefProxyConfigTrackerImpl::RegisterProfilePrefs(
PrefRegistrySimple* registry) { … }
ProxyPrefs::ConfigState PrefProxyConfigTrackerImpl::ReadPrefConfig(
const PrefService* pref_service,
net::ProxyConfigWithAnnotation* config) { … }
ProxyPrefs::ConfigState PrefProxyConfigTrackerImpl::GetProxyConfig(
net::ProxyConfigWithAnnotation* config) { … }
void PrefProxyConfigTrackerImpl::OnProxyConfigChanged(
ProxyPrefs::ConfigState config_state,
const net::ProxyConfigWithAnnotation& config) { … }
bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(
const ProxyConfigDictionary& proxy_dict,
net::ProxyConfigWithAnnotation* config) { … }
void PrefProxyConfigTrackerImpl::OnProxyPrefChanged() { … }