1 // Copyright 2015 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_mojo.h"
7 #include "base/logging.h"
8 #include "base/thread_task_runner_handle.h"
9 #include "net/dns/mojo_host_resolver_impl.h"
10 #include "net/interfaces/proxy_resolver_service.mojom.h"
11 #include "net/proxy/in_process_mojo_proxy_resolver_factory.h"
12 #include "net/proxy/mojo_proxy_resolver_factory.h"
13 #include "net/proxy/mojo_proxy_resolver_impl.h"
14 #include "net/proxy/network_delegate_error_observer.h"
15 #include "net/proxy/proxy_resolver_factory.h"
16 #include "net/proxy/proxy_resolver_factory_mojo.h"
17 #include "net/proxy/proxy_resolver_v8_tracing.h"
18 #include "net/proxy/proxy_service.h"
22 ProxyService
* CreateProxyServiceUsingMojoFactory(
23 MojoProxyResolverFactory
* mojo_proxy_factory
,
24 ProxyConfigService
* proxy_config_service
,
25 ProxyScriptFetcher
* proxy_script_fetcher
,
26 DhcpProxyScriptFetcher
* dhcp_proxy_script_fetcher
,
27 HostResolver
* host_resolver
,
29 NetworkDelegate
* network_delegate
) {
30 DCHECK(proxy_config_service
);
31 DCHECK(proxy_script_fetcher
);
32 DCHECK(dhcp_proxy_script_fetcher
);
33 DCHECK(host_resolver
);
35 ProxyService
* proxy_service
= new ProxyService(
37 make_scoped_ptr(new ProxyResolverFactoryMojo(
38 mojo_proxy_factory
, host_resolver
,
39 base::Bind(&NetworkDelegateErrorObserver::Create
, network_delegate
,
40 base::ThreadTaskRunnerHandle::Get()))),
43 // Configure fetchers to use for PAC script downloads and auto-detect.
44 proxy_service
->SetProxyScriptFetchers(proxy_script_fetcher
,
45 dhcp_proxy_script_fetcher
);
50 ProxyService
* CreateProxyServiceUsingMojoInProcess(
51 ProxyConfigService
* proxy_config_service
,
52 ProxyScriptFetcher
* proxy_script_fetcher
,
53 DhcpProxyScriptFetcher
* dhcp_proxy_script_fetcher
,
54 HostResolver
* host_resolver
,
56 NetworkDelegate
* network_delegate
) {
57 return CreateProxyServiceUsingMojoFactory(
58 InProcessMojoProxyResolverFactory::GetInstance(), proxy_config_service
,
59 proxy_script_fetcher
, dhcp_proxy_script_fetcher
, host_resolver
, net_log
,