[Cronet] Delay StartNetLog and StopNetLog until native request context is initialized
[chromium-blink-merge.git] / net / proxy / proxy_service_mojo.cc
blob5f7fb1fbad5b81f4e4619494f70f35d7ade51387
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 "net/dns/host_resolver_mojo.h"
9 #include "net/interfaces/proxy_resolver_service.mojom.h"
10 #include "net/proxy/in_process_mojo_proxy_resolver_factory.h"
11 #include "net/proxy/mojo_proxy_resolver_impl.h"
12 #include "net/proxy/proxy_resolver_mojo.h"
13 #include "net/proxy/proxy_resolver_v8_tracing.h"
14 #include "net/proxy/proxy_service.h"
16 namespace net {
18 ProxyService* CreateProxyServiceUsingMojoFactory(
19 MojoProxyResolverFactory* mojo_proxy_factory,
20 ProxyConfigService* proxy_config_service,
21 ProxyScriptFetcher* proxy_script_fetcher,
22 DhcpProxyScriptFetcher* dhcp_proxy_script_fetcher,
23 HostResolver* host_resolver,
24 NetLog* net_log,
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 ProxyResolverMojo* proxy_resolver =
32 new ProxyResolverMojo(mojo_proxy_factory, host_resolver);
34 ProxyService* proxy_service =
35 new ProxyService(proxy_config_service, proxy_resolver, net_log);
37 // Configure fetchers to use for PAC script downloads and auto-detect.
38 proxy_service->SetProxyScriptFetchers(proxy_script_fetcher,
39 dhcp_proxy_script_fetcher);
41 return proxy_service;
44 ProxyService* CreateProxyServiceUsingMojoInProcess(
45 ProxyConfigService* proxy_config_service,
46 ProxyScriptFetcher* proxy_script_fetcher,
47 DhcpProxyScriptFetcher* dhcp_proxy_script_fetcher,
48 HostResolver* host_resolver,
49 NetLog* net_log,
50 NetworkDelegate* network_delegate) {
51 return CreateProxyServiceUsingMojoFactory(
52 InProcessMojoProxyResolverFactory::GetInstance(), proxy_config_service,
53 proxy_script_fetcher, dhcp_proxy_script_fetcher, host_resolver, net_log,
54 network_delegate);
57 } // namespace net