Index: net/proxy/proxy_service.cc |
diff --git a/net/proxy/proxy_service.cc b/net/proxy/proxy_service.cc |
index ca3629ebcdcdb6361921b2daf14d0b1bd7acd984..a64f2f6aaa70091f674c15d078c174ca02e80af6 100644 |
--- a/net/proxy/proxy_service.cc |
+++ b/net/proxy/proxy_service.cc |
@@ -15,6 +15,7 @@ |
#include "net/base/net_errors.h" |
#include "net/base/net_log.h" |
#include "net/base/net_util.h" |
+#include "net/proxy/dhcp_proxy_script_fetcher.h" |
#include "net/proxy/init_proxy_resolver.h" |
#include "net/proxy/multi_threaded_proxy_resolver.h" |
#include "net/proxy/proxy_config_service_fixed.h" |
@@ -394,10 +395,12 @@ ProxyService* ProxyService::CreateUsingV8ProxyResolver( |
ProxyConfigService* proxy_config_service, |
size_t num_pac_threads, |
ProxyScriptFetcher* proxy_script_fetcher, |
+ DhcpProxyScriptFetcher* dhcp_proxy_script_fetcher, |
HostResolver* host_resolver, |
NetLog* net_log) { |
DCHECK(proxy_config_service); |
DCHECK(proxy_script_fetcher); |
+ DCHECK(dhcp_proxy_script_fetcher); |
DCHECK(host_resolver); |
if (num_pac_threads == 0) |
@@ -415,8 +418,9 @@ ProxyService* ProxyService::CreateUsingV8ProxyResolver( |
ProxyService* proxy_service = |
new ProxyService(proxy_config_service, proxy_resolver, net_log); |
- // Configure PAC script downloads to be issued using |proxy_script_fetcher|. |
- proxy_service->SetProxyScriptFetcher(proxy_script_fetcher); |
+ // Configure fetchers to use for PAC script downloads and auto-detect. |
+ proxy_service->SetProxyScriptFetchers(proxy_script_fetcher, |
+ dhcp_proxy_script_fetcher); |
return proxy_service; |
} |
@@ -738,11 +742,13 @@ int ProxyService::DidFinishResolvingProxy(ProxyInfo* result, |
return result_code; |
} |
-void ProxyService::SetProxyScriptFetcher( |
- ProxyScriptFetcher* proxy_script_fetcher) { |
+void ProxyService::SetProxyScriptFetchers( |
+ ProxyScriptFetcher* proxy_script_fetcher, |
+ DhcpProxyScriptFetcher* dhcp_proxy_script_fetcher) { |
DCHECK(CalledOnValidThread()); |
State previous_state = ResetProxyConfig(false); |
proxy_script_fetcher_.reset(proxy_script_fetcher); |
+ dhcp_proxy_script_fetcher_.reset(dhcp_proxy_script_fetcher); |
if (previous_state != STATE_NONE) |
ApplyProxyConfigIfAvailable(); |
} |
@@ -752,6 +758,11 @@ ProxyScriptFetcher* ProxyService::GetProxyScriptFetcher() const { |
return proxy_script_fetcher_.get(); |
} |
+DhcpProxyScriptFetcher* ProxyService::GetDhcpProxyScriptFetcher() const { |
+ DCHECK(CalledOnValidThread()); |
+ return dhcp_proxy_script_fetcher_.get(); |
+} |
+ |
ProxyService::State ProxyService::ResetProxyConfig(bool reset_fetched_config) { |
DCHECK(CalledOnValidThread()); |
State previous_state = current_state_; |
@@ -890,7 +901,9 @@ void ProxyService::InitializeUsingLastFetchedConfig() { |
current_state_ = STATE_WAITING_FOR_INIT_PROXY_RESOLVER; |
init_proxy_resolver_.reset( |
- new InitProxyResolver(resolver_.get(), proxy_script_fetcher_.get(), |
+ new InitProxyResolver(resolver_.get(), |
+ proxy_script_fetcher_.get(), |
+ dhcp_proxy_script_fetcher_.get(), |
net_log_)); |
// If we changed networks recently, we should delay running proxy auto-config. |