diff options
author | szym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-21 03:46:22 +0000 |
---|---|---|
committer | szym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-21 03:46:22 +0000 |
commit | c735a406043176fbe4d63d0b3d0b4e6494d84059 (patch) | |
tree | 5b6d6e434ae1841c4f5d201e050220e0449ffcf3 | |
parent | d47aeb51a8aae8600d5114d7810bf69ee3267dee (diff) | |
download | chromium_src-c735a406043176fbe4d63d0b3d0b4e6494d84059.zip chromium_src-c735a406043176fbe4d63d0b3d0b4e6494d84059.tar.gz chromium_src-c735a406043176fbe4d63d0b3d0b4e6494d84059.tar.bz2 |
[net] Connect DNS signals to re-fetching PAC script.
BUG=128620
Review URL: https://chromiumcodereview.appspot.com/10534102
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157916 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | net/proxy/proxy_service.cc | 6 | ||||
-rw-r--r-- | net/proxy/proxy_service.h | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/net/proxy/proxy_service.cc b/net/proxy/proxy_service.cc index d5c7787..9989b82 100644 --- a/net/proxy/proxy_service.cc +++ b/net/proxy/proxy_service.cc @@ -867,6 +867,7 @@ ProxyService::ProxyService(ProxyConfigService* config_service, stall_proxy_auto_config_delay_(TimeDelta::FromMilliseconds( kDelayAfterNetworkChangesMs)) { NetworkChangeNotifier::AddIPAddressObserver(this); + NetworkChangeNotifier::AddDNSObserver(this); ResetConfigService(config_service); } @@ -1022,6 +1023,7 @@ int ProxyService::TryToCompleteSynchronously(const GURL& url, ProxyService::~ProxyService() { NetworkChangeNotifier::RemoveIPAddressObserver(this); + NetworkChangeNotifier::RemoveDNSObserver(this); config_service_->RemoveObserver(this); // Cancel any inprogress requests. @@ -1481,6 +1483,10 @@ void ProxyService::OnIPAddressChanged() { ApplyProxyConfigIfAvailable(); } +void ProxyService::OnDNSChanged() { + OnIPAddressChanged(); +} + SyncProxyServiceHelper::SyncProxyServiceHelper(MessageLoop* io_message_loop, ProxyService* proxy_service) : io_message_loop_(io_message_loop), diff --git a/net/proxy/proxy_service.h b/net/proxy/proxy_service.h index 25b2548..3d89420 100644 --- a/net/proxy/proxy_service.h +++ b/net/proxy/proxy_service.h @@ -43,6 +43,7 @@ class ProxyScriptFetcher; // HTTP(S) URL. It uses the given ProxyResolver to handle the actual proxy // resolution. See ProxyResolverV8 for example. class NET_EXPORT ProxyService : public NetworkChangeNotifier::IPAddressObserver, + public NetworkChangeNotifier::DNSObserver, public ProxyConfigService::Observer, NON_EXPORTED_BASE(public base::NonThreadSafe) { public: @@ -325,6 +326,10 @@ class NET_EXPORT ProxyService : public NetworkChangeNotifier::IPAddressObserver, // When this is called, we re-fetch PAC scripts and re-run WPAD. virtual void OnIPAddressChanged() OVERRIDE; + // NetworkChangeNotifier::DNSObserver + // We respond as above. + virtual void OnDNSChanged() OVERRIDE; + // ProxyConfigService::Observer virtual void OnProxyConfigChanged( const ProxyConfig& config, |