| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "remoting/base/url_request_context.h" | 5 #include "remoting/base/url_request_context_getter.h" |
| 6 | 6 |
| 7 #include "base/message_loop/message_loop_proxy.h" | 7 #include "base/message_loop/message_loop_proxy.h" |
| 8 #include "net/cert/cert_verifier.h" | |
| 9 #include "net/dns/host_resolver.h" | |
| 10 #include "net/http/http_auth_handler_factory.h" | |
| 11 #include "net/http/http_network_layer.h" | |
| 12 #include "net/http/http_network_session.h" | |
| 13 #include "net/http/http_server_properties_impl.h" | |
| 14 #include "net/http/transport_security_state.h" | |
| 15 #include "net/proxy/proxy_config_service.h" | 8 #include "net/proxy/proxy_config_service.h" |
| 16 #include "net/proxy/proxy_service.h" | 9 #include "net/url_request/url_request_context_builder.h" |
| 17 #include "net/ssl/ssl_config_service_defaults.h" | |
| 18 #include "net/url_request/url_request_job_factory_impl.h" | |
| 19 #include "remoting/base/vlog_net_log.h" | 10 #include "remoting/base/vlog_net_log.h" |
| 20 | 11 |
| 21 #if defined(OS_WIN) | 12 #if defined(OS_WIN) |
| 22 #include "net/proxy/proxy_config_service_win.h" | 13 #include "net/proxy/proxy_config_service_win.h" |
| 23 #elif defined(OS_IOS) | 14 #elif defined(OS_IOS) |
| 24 #include "net/proxy/proxy_config_service_ios.h" | 15 #include "net/proxy/proxy_config_service_ios.h" |
| 25 #elif defined(OS_MACOSX) | 16 #elif defined(OS_MACOSX) |
| 26 #include "net/proxy/proxy_config_service_mac.h" | 17 #include "net/proxy/proxy_config_service_mac.h" |
| 27 #elif defined(OS_LINUX) && !defined(OS_CHROMEOS) | 18 #elif defined(OS_LINUX) && !defined(OS_CHROMEOS) |
| 28 #include "net/proxy/proxy_config_service_linux.h" | 19 #include "net/proxy/proxy_config_service_linux.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 return new ProxyConfigServiceDirect(); | 62 return new ProxyConfigServiceDirect(); |
| 72 #else | 63 #else |
| 73 LOG(WARNING) << "Failed to choose a system proxy settings fetcher " | 64 LOG(WARNING) << "Failed to choose a system proxy settings fetcher " |
| 74 "for this platform."; | 65 "for this platform."; |
| 75 return new ProxyConfigServiceDirect(); | 66 return new ProxyConfigServiceDirect(); |
| 76 #endif | 67 #endif |
| 77 } | 68 } |
| 78 | 69 |
| 79 } // namespace | 70 } // namespace |
| 80 | 71 |
| 81 // TODO(willchan): This is largely copied from service_url_request_context.cc, | |
| 82 // which is in turn copied from some test code. Move it somewhere reusable. | |
| 83 URLRequestContext::URLRequestContext( | |
| 84 scoped_ptr<net::ProxyConfigService> proxy_config_service) | |
| 85 : storage_(this) { | |
| 86 scoped_ptr<VlogNetLog> net_log(new VlogNetLog()); | |
| 87 storage_.set_host_resolver( | |
| 88 net::HostResolver::CreateDefaultResolver(net_log.get())); | |
| 89 storage_.set_proxy_service(net::ProxyService::CreateUsingSystemProxyResolver( | |
| 90 proxy_config_service.release(), 0u, net_log.get())); | |
| 91 storage_.set_cert_verifier(net::CertVerifier::CreateDefault()); | |
| 92 storage_.set_ssl_config_service(new net::SSLConfigServiceDefaults); | |
| 93 storage_.set_http_auth_handler_factory( | |
| 94 net::HttpAuthHandlerFactory::CreateDefault(host_resolver())); | |
| 95 storage_.set_http_server_properties( | |
| 96 scoped_ptr<net::HttpServerProperties>( | |
| 97 new net::HttpServerPropertiesImpl())); | |
| 98 storage_.set_transport_security_state(new net::TransportSecurityState); | |
| 99 storage_.set_job_factory(new net::URLRequestJobFactoryImpl()); | |
| 100 | |
| 101 net::HttpNetworkSession::Params session_params; | |
| 102 session_params.host_resolver = host_resolver(); | |
| 103 session_params.cert_verifier = cert_verifier(); | |
| 104 session_params.transport_security_state = transport_security_state(); | |
| 105 session_params.proxy_service = proxy_service(); | |
| 106 session_params.ssl_config_service = ssl_config_service(); | |
| 107 session_params.http_auth_handler_factory = http_auth_handler_factory(); | |
| 108 session_params.http_server_properties = http_server_properties(); | |
| 109 session_params.net_log = net_log.get(); | |
| 110 scoped_refptr<net::HttpNetworkSession> network_session( | |
| 111 new net::HttpNetworkSession(session_params)); | |
| 112 storage_.set_http_transaction_factory( | |
| 113 new net::HttpNetworkLayer(network_session.get())); | |
| 114 storage_.set_net_log(net_log.release()); | |
| 115 } | |
| 116 | |
| 117 URLRequestContext::~URLRequestContext() { | |
| 118 } | |
| 119 | |
| 120 URLRequestContextGetter::URLRequestContextGetter( | 72 URLRequestContextGetter::URLRequestContextGetter( |
| 121 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner) | 73 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner) |
| 122 : network_task_runner_(network_task_runner) { | 74 : network_task_runner_(network_task_runner) { |
| 123 proxy_config_service_.reset(CreateSystemProxyConfigService( | 75 proxy_config_service_.reset(CreateSystemProxyConfigService( |
| 124 network_task_runner_.get())); | 76 network_task_runner_.get())); |
| 125 } | 77 } |
| 126 | 78 |
| 127 net::URLRequestContext* URLRequestContextGetter::GetURLRequestContext() { | 79 net::URLRequestContext* URLRequestContextGetter::GetURLRequestContext() { |
| 128 if (!url_request_context_.get()) { | 80 if (!url_request_context_.get()) { |
| 129 url_request_context_.reset( | 81 net::URLRequestContextBuilder builder; |
| 130 new URLRequestContext(proxy_config_service_.Pass())); | 82 builder.set_net_log(new VlogNetLog()); |
| 83 builder.DisableHttpCache(); |
| 84 builder.set_proxy_config_service(proxy_config_service_.release()); |
| 85 url_request_context_.reset(builder.Build()); |
| 131 } | 86 } |
| 132 return url_request_context_.get(); | 87 return url_request_context_.get(); |
| 133 } | 88 } |
| 134 | 89 |
| 135 scoped_refptr<base::SingleThreadTaskRunner> | 90 scoped_refptr<base::SingleThreadTaskRunner> |
| 136 URLRequestContextGetter::GetNetworkTaskRunner() const { | 91 URLRequestContextGetter::GetNetworkTaskRunner() const { |
| 137 return network_task_runner_; | 92 return network_task_runner_; |
| 138 } | 93 } |
| 139 | 94 |
| 140 URLRequestContextGetter::~URLRequestContextGetter() { | 95 URLRequestContextGetter::~URLRequestContextGetter() { |
| 141 } | 96 } |
| 142 | 97 |
| 143 } // namespace remoting | 98 } // namespace remoting |
| OLD | NEW |