| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "headless/lib/browser/headless_url_request_context_getter.h" | 5 #include "headless/lib/browser/headless_url_request_context_getter.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/command_line.h" | |
| 10 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
| 11 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
| 12 #include "base/threading/worker_pool.h" | 11 #include "base/threading/worker_pool.h" |
| 13 #include "content/public/browser/browser_thread.h" | 12 #include "content/public/browser/browser_thread.h" |
| 14 #include "content/public/browser/cookie_store_factory.h" | 13 #include "content/public/browser/cookie_store_factory.h" |
| 15 #include "content/public/common/content_switches.h" | 14 #include "content/public/common/content_switches.h" |
| 16 #include "net/cert/cert_verifier.h" | 15 #include "net/cert/cert_verifier.h" |
| 17 #include "net/cookies/cookie_store.h" | 16 #include "net/cookies/cookie_store.h" |
| 18 #include "net/dns/host_resolver.h" | 17 #include "net/dns/host_resolver.h" |
| 19 #include "net/dns/mapped_host_resolver.h" | 18 #include "net/dns/mapped_host_resolver.h" |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 return net::ProxyService::CreateFixed(options_.proxy_server.ToString()); | 97 return net::ProxyService::CreateFixed(options_.proxy_server.ToString()); |
| 99 return net::ProxyService::CreateUsingSystemProxyResolver( | 98 return net::ProxyService::CreateUsingSystemProxyResolver( |
| 100 std::move(proxy_config_service_), 0, url_request_context_->net_log()); | 99 std::move(proxy_config_service_), 0, url_request_context_->net_log()); |
| 101 } | 100 } |
| 102 | 101 |
| 103 net::URLRequestContext* | 102 net::URLRequestContext* |
| 104 HeadlessURLRequestContextGetter::GetURLRequestContext() { | 103 HeadlessURLRequestContextGetter::GetURLRequestContext() { |
| 105 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); | 104 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
| 106 | 105 |
| 107 if (!url_request_context_) { | 106 if (!url_request_context_) { |
| 108 const base::CommandLine& command_line = | |
| 109 *base::CommandLine::ForCurrentProcess(); | |
| 110 | |
| 111 url_request_context_.reset(new net::URLRequestContext()); | 107 url_request_context_.reset(new net::URLRequestContext()); |
| 112 url_request_context_->set_net_log(net_log_); | 108 url_request_context_->set_net_log(net_log_); |
| 113 network_delegate_ = CreateNetworkDelegate(); | 109 network_delegate_ = CreateNetworkDelegate(); |
| 114 url_request_context_->set_network_delegate(network_delegate_.get()); | 110 url_request_context_->set_network_delegate(network_delegate_.get()); |
| 115 storage_.reset( | 111 storage_.reset( |
| 116 new net::URLRequestContextStorage(url_request_context_.get())); | 112 new net::URLRequestContextStorage(url_request_context_.get())); |
| 117 storage_->set_cookie_store( | 113 storage_->set_cookie_store( |
| 118 content::CreateCookieStore(content::CookieStoreConfig())); | 114 content::CreateCookieStore(content::CookieStoreConfig())); |
| 119 storage_->set_channel_id_service(base::WrapUnique( | 115 storage_->set_channel_id_service(base::WrapUnique( |
| 120 new net::ChannelIDService(new net::DefaultChannelIDStore(nullptr), | 116 new net::ChannelIDService(new net::DefaultChannelIDStore(nullptr), |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 url_request_context_->proxy_service(); | 151 url_request_context_->proxy_service(); |
| 156 network_session_params.ssl_config_service = | 152 network_session_params.ssl_config_service = |
| 157 url_request_context_->ssl_config_service(); | 153 url_request_context_->ssl_config_service(); |
| 158 network_session_params.http_auth_handler_factory = | 154 network_session_params.http_auth_handler_factory = |
| 159 url_request_context_->http_auth_handler_factory(); | 155 url_request_context_->http_auth_handler_factory(); |
| 160 network_session_params.http_server_properties = | 156 network_session_params.http_server_properties = |
| 161 url_request_context_->http_server_properties(); | 157 url_request_context_->http_server_properties(); |
| 162 network_session_params.net_log = url_request_context_->net_log(); | 158 network_session_params.net_log = url_request_context_->net_log(); |
| 163 network_session_params.ignore_certificate_errors = | 159 network_session_params.ignore_certificate_errors = |
| 164 ignore_certificate_errors_; | 160 ignore_certificate_errors_; |
| 165 if (command_line.HasSwitch(switches::kHostResolverRules)) { | 161 if (!options_.host_resolver_rules.empty()) { |
| 166 std::unique_ptr<net::MappedHostResolver> mapped_host_resolver( | 162 std::unique_ptr<net::MappedHostResolver> mapped_host_resolver( |
| 167 new net::MappedHostResolver(std::move(host_resolver))); | 163 new net::MappedHostResolver(std::move(host_resolver))); |
| 168 mapped_host_resolver->SetRulesFromString( | 164 mapped_host_resolver->SetRulesFromString(options_.host_resolver_rules); |
| 169 command_line.GetSwitchValueASCII(switches::kHostResolverRules)); | |
| 170 host_resolver = std::move(mapped_host_resolver); | 165 host_resolver = std::move(mapped_host_resolver); |
| 171 } | 166 } |
| 172 | 167 |
| 173 // Give |storage_| ownership at the end in case it's |mapped_host_resolver|. | 168 // Give |storage_| ownership at the end in case it's |mapped_host_resolver|. |
| 174 storage_->set_host_resolver(std::move(host_resolver)); | 169 storage_->set_host_resolver(std::move(host_resolver)); |
| 175 network_session_params.host_resolver = | 170 network_session_params.host_resolver = |
| 176 url_request_context_->host_resolver(); | 171 url_request_context_->host_resolver(); |
| 177 | 172 |
| 178 storage_->set_http_network_session( | 173 storage_->set_http_network_session( |
| 179 base::WrapUnique(new net::HttpNetworkSession(network_session_params))); | 174 base::WrapUnique(new net::HttpNetworkSession(network_session_params))); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 HeadlessURLRequestContextGetter::GetNetworkTaskRunner() const { | 212 HeadlessURLRequestContextGetter::GetNetworkTaskRunner() const { |
| 218 return content::BrowserThread::GetMessageLoopProxyForThread( | 213 return content::BrowserThread::GetMessageLoopProxyForThread( |
| 219 content::BrowserThread::IO); | 214 content::BrowserThread::IO); |
| 220 } | 215 } |
| 221 | 216 |
| 222 net::HostResolver* HeadlessURLRequestContextGetter::host_resolver() const { | 217 net::HostResolver* HeadlessURLRequestContextGetter::host_resolver() const { |
| 223 return url_request_context_->host_resolver(); | 218 return url_request_context_->host_resolver(); |
| 224 } | 219 } |
| 225 | 220 |
| 226 } // namespace headless | 221 } // namespace headless |
| OLD | NEW |