| 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.
|
|
|