1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "net/proxy/proxy_service_v8.h"
7 #include "base/logging.h"
8 #include "base/thread_task_runner_handle.h"
9 #include "base/threading/thread_checker.h"
10 #include "net/proxy/network_delegate_error_observer.h"
11 #include "net/proxy/proxy_resolver.h"
12 #include "net/proxy/proxy_resolver_factory.h"
13 #include "net/proxy/proxy_resolver_v8_tracing.h"
14 #include "net/proxy/proxy_service.h"
19 ProxyService
* CreateProxyServiceUsingV8ProxyResolver(
20 ProxyConfigService
* proxy_config_service
,
21 ProxyScriptFetcher
* proxy_script_fetcher
,
22 DhcpProxyScriptFetcher
* dhcp_proxy_script_fetcher
,
23 HostResolver
* host_resolver
,
25 NetworkDelegate
* network_delegate
) {
26 DCHECK(proxy_config_service
);
27 DCHECK(proxy_script_fetcher
);
28 DCHECK(dhcp_proxy_script_fetcher
);
29 DCHECK(host_resolver
);
31 ProxyService
* proxy_service
= new ProxyService(
33 make_scoped_ptr(new ProxyResolverFactoryV8Tracing(
34 host_resolver
, net_log
, ProxyResolver::LoadStateChangedCallback(),
35 base::Bind(&NetworkDelegateErrorObserver::Create
, network_delegate
,
36 base::ThreadTaskRunnerHandle::Get()))),
39 // Configure fetchers to use for PAC script downloads and auto-detect.
40 proxy_service
->SetProxyScriptFetchers(proxy_script_fetcher
,
41 dhcp_proxy_script_fetcher
);