This sets up API to release OutputSurface from LTHClient.
[chromium-blink-merge.git] / net / proxy / proxy_service_mojo.cc
blob0205f133491abaf48f47fc06c86f0d040d0b4e34
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/memory/scoped_ptr.h"
9 #include "base/thread_task_runner_handle.h"
10 #include "net/dns/mojo_host_resolver_impl.h"
11 #include "net/interfaces/proxy_resolver_service.mojom.h"
12 #include "net/proxy/in_process_mojo_proxy_resolver_factory.h"
13 #include "net/proxy/mojo_proxy_resolver_factory.h"
14 #include "net/proxy/mojo_proxy_resolver_impl.h"
15 #include "net/proxy/network_delegate_error_observer.h"
16 #include "net/proxy/proxy_resolver_factory.h"
17 #include "net/proxy/proxy_resolver_factory_mojo.h"
18 #include "net/proxy/proxy_resolver_v8_tracing.h"
19 #include "net/proxy/proxy_service.h"
21 namespace net {
23 scoped_ptr<ProxyService> CreateProxyServiceUsingMojoFactory(
24 MojoProxyResolverFactory* mojo_proxy_factory,
25 ProxyConfigService* proxy_config_service,
26 ProxyScriptFetcher* proxy_script_fetcher,
27 scoped_ptr<DhcpProxyScriptFetcher> dhcp_proxy_script_fetcher,
28 HostResolver* host_resolver,
29 NetLog* net_log,
30 NetworkDelegate* network_delegate) {
31 DCHECK(proxy_config_service);
32 DCHECK(proxy_script_fetcher);
33 DCHECK(dhcp_proxy_script_fetcher);
34 DCHECK(host_resolver);
36 scoped_ptr<ProxyService> proxy_service(new ProxyService(
37 proxy_config_service,
38 make_scoped_ptr(new ProxyResolverFactoryMojo(
39 mojo_proxy_factory, host_resolver,
40 base::Bind(&NetworkDelegateErrorObserver::Create, network_delegate,
41 base::ThreadTaskRunnerHandle::Get()),
42 net_log)),
43 net_log));
45 // Configure fetchers to use for PAC script downloads and auto-detect.
46 proxy_service->SetProxyScriptFetchers(proxy_script_fetcher,
47 dhcp_proxy_script_fetcher.Pass());
49 return proxy_service;
52 scoped_ptr<ProxyService> CreateProxyServiceUsingMojoInProcess(
53 ProxyConfigService* proxy_config_service,
54 ProxyScriptFetcher* proxy_script_fetcher,
55 scoped_ptr<DhcpProxyScriptFetcher> dhcp_proxy_script_fetcher,
56 HostResolver* host_resolver,
57 NetLog* net_log,
58 NetworkDelegate* network_delegate) {
59 return CreateProxyServiceUsingMojoFactory(
60 InProcessMojoProxyResolverFactory::GetInstance(), proxy_config_service,
61 proxy_script_fetcher, dhcp_proxy_script_fetcher.Pass(), host_resolver,
62 net_log, network_delegate);
65 } // namespace net