| Index: chrome/browser/chromeos/proxy_config_service.cc
|
| ===================================================================
|
| --- chrome/browser/chromeos/proxy_config_service.cc (revision 103881)
|
| +++ chrome/browser/chromeos/proxy_config_service.cc (working copy)
|
| @@ -4,26 +4,48 @@
|
|
|
| #include "chrome/browser/chromeos/proxy_config_service.h"
|
|
|
| +#include "chrome/browser/net/pref_proxy_config_service.h"
|
| +
|
| namespace chromeos {
|
|
|
| ProxyConfigService::ProxyConfigService(
|
| - const scoped_refptr<ProxyConfigServiceImpl>& impl)
|
| - : impl_(impl) {
|
| + const scoped_refptr<ProxyConfigServiceImpl>& impl,
|
| + PrefProxyConfigTracker* pref_config_tracker)
|
| + : impl_(impl),
|
| + pref_config_tracker_(pref_config_tracker) {
|
| }
|
|
|
| -ProxyConfigService::~ProxyConfigService() {}
|
| +ProxyConfigService::~ProxyConfigService() {
|
| + if (registered_tracker_)
|
| + pref_config_tracker_->RemoveObserver(this);
|
| +}
|
|
|
| -void ProxyConfigService::AddObserver(Observer* observer) {
|
| +void ProxyConfigService::AddObserver(
|
| + net::ProxyConfigService::Observer* observer) {
|
| impl_->AddObserver(observer);
|
| + RegisterTracker();
|
| }
|
|
|
| -void ProxyConfigService::RemoveObserver(Observer* observer) {
|
| +void ProxyConfigService::RemoveObserver(
|
| + net::ProxyConfigService::Observer* observer) {
|
| impl_->RemoveObserver(observer);
|
| }
|
|
|
| ProxyConfigService::ConfigAvailability ProxyConfigService::GetLatestProxyConfig(
|
| net::ProxyConfig* config) {
|
| + RegisterTracker();
|
| return impl_->IOGetProxyConfig(config);
|
| }
|
|
|
| +void ProxyConfigService::OnPrefProxyConfigChanged() {
|
| + impl_->OnPrefProxyConfigChanged(pref_config_tracker_);
|
| +}
|
| +
|
| +void ProxyConfigService::RegisterTracker() {
|
| + if (!registered_tracker_) {
|
| + pref_config_tracker_->AddObserver(this);
|
| + registered_tracker_ = true;
|
| + }
|
| +}
|
| +
|
| } // namespace chromeos
|
|
|