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 |