Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Side by Side Diff: headless/lib/browser/headless_url_request_context_getter.cc

Issue 2013483002: headless: Make HeadlessBrowser::Options move-only (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 } // namespace 51 } // namespace
52 52
53 HeadlessURLRequestContextGetter::HeadlessURLRequestContextGetter( 53 HeadlessURLRequestContextGetter::HeadlessURLRequestContextGetter(
54 bool ignore_certificate_errors, 54 bool ignore_certificate_errors,
55 const base::FilePath& base_path, 55 const base::FilePath& base_path,
56 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, 56 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
57 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, 57 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner,
58 content::ProtocolHandlerMap* protocol_handlers, 58 content::ProtocolHandlerMap* protocol_handlers,
59 content::URLRequestInterceptorScopedVector request_interceptors, 59 content::URLRequestInterceptorScopedVector request_interceptors,
60 net::NetLog* net_log, 60 net::NetLog* net_log,
61 const HeadlessBrowser::Options& options) 61 HeadlessBrowser::Options* options)
62 : ignore_certificate_errors_(ignore_certificate_errors), 62 : ignore_certificate_errors_(ignore_certificate_errors),
63 base_path_(base_path), 63 base_path_(base_path),
64 io_task_runner_(std::move(io_task_runner)), 64 io_task_runner_(std::move(io_task_runner)),
65 file_task_runner_(std::move(file_task_runner)), 65 file_task_runner_(std::move(file_task_runner)),
66 net_log_(net_log), 66 net_log_(net_log),
67 options_(options), 67 user_agent_(options->user_agent),
68 host_resolver_rules_(options->host_resolver_rules),
69 proxy_server_(options->proxy_server),
68 request_interceptors_(std::move(request_interceptors)) { 70 request_interceptors_(std::move(request_interceptors)) {
69 // Must first be created on the UI thread. 71 // Must first be created on the UI thread.
70 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 72 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
71 73
72 std::swap(protocol_handlers_, *protocol_handlers); 74 std::swap(protocol_handlers_, *protocol_handlers);
73 75
74 // We must create the proxy config service on the UI loop on Linux because it 76 // We must create the proxy config service on the UI loop on Linux because it
75 // must synchronously run on the glib message loop. This will be passed to 77 // must synchronously run on the glib message loop. This will be passed to
76 // the URLRequestContextStorage on the IO thread in GetURLRequestContext(). 78 // the URLRequestContextStorage on the IO thread in GetURLRequestContext().
77 if (options_.proxy_server.IsEmpty()) 79 if (proxy_server_.IsEmpty())
78 proxy_config_service_ = GetProxyConfigService(); 80 proxy_config_service_ = GetProxyConfigService();
79 } 81 }
80 82
81 HeadlessURLRequestContextGetter::~HeadlessURLRequestContextGetter() {} 83 HeadlessURLRequestContextGetter::~HeadlessURLRequestContextGetter() {}
82 84
83 std::unique_ptr<net::NetworkDelegate> 85 std::unique_ptr<net::NetworkDelegate>
84 HeadlessURLRequestContextGetter::CreateNetworkDelegate() { 86 HeadlessURLRequestContextGetter::CreateNetworkDelegate() {
85 return nullptr; 87 return nullptr;
86 } 88 }
87 89
88 std::unique_ptr<net::ProxyConfigService> 90 std::unique_ptr<net::ProxyConfigService>
89 HeadlessURLRequestContextGetter::GetProxyConfigService() { 91 HeadlessURLRequestContextGetter::GetProxyConfigService() {
90 return net::ProxyService::CreateSystemProxyConfigService(io_task_runner_, 92 return net::ProxyService::CreateSystemProxyConfigService(io_task_runner_,
91 file_task_runner_); 93 file_task_runner_);
92 } 94 }
93 95
94 std::unique_ptr<net::ProxyService> 96 std::unique_ptr<net::ProxyService>
95 HeadlessURLRequestContextGetter::GetProxyService() { 97 HeadlessURLRequestContextGetter::GetProxyService() {
96 if (!options_.proxy_server.IsEmpty()) 98 if (!proxy_server_.IsEmpty())
97 return net::ProxyService::CreateFixed(options_.proxy_server.ToString()); 99 return net::ProxyService::CreateFixed(proxy_server_.ToString());
98 return net::ProxyService::CreateUsingSystemProxyResolver( 100 return net::ProxyService::CreateUsingSystemProxyResolver(
99 std::move(proxy_config_service_), 0, url_request_context_->net_log()); 101 std::move(proxy_config_service_), 0, url_request_context_->net_log());
100 } 102 }
101 103
102 net::URLRequestContext* 104 net::URLRequestContext*
103 HeadlessURLRequestContextGetter::GetURLRequestContext() { 105 HeadlessURLRequestContextGetter::GetURLRequestContext() {
104 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); 106 DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
105 107
106 if (!url_request_context_) { 108 if (!url_request_context_) {
107 url_request_context_.reset(new net::URLRequestContext()); 109 url_request_context_.reset(new net::URLRequestContext());
108 url_request_context_->set_net_log(net_log_); 110 url_request_context_->set_net_log(net_log_);
109 network_delegate_ = CreateNetworkDelegate(); 111 network_delegate_ = CreateNetworkDelegate();
110 url_request_context_->set_network_delegate(network_delegate_.get()); 112 url_request_context_->set_network_delegate(network_delegate_.get());
111 storage_.reset( 113 storage_.reset(
112 new net::URLRequestContextStorage(url_request_context_.get())); 114 new net::URLRequestContextStorage(url_request_context_.get()));
113 storage_->set_cookie_store( 115 storage_->set_cookie_store(
114 content::CreateCookieStore(content::CookieStoreConfig())); 116 content::CreateCookieStore(content::CookieStoreConfig()));
115 storage_->set_channel_id_service(base::WrapUnique( 117 storage_->set_channel_id_service(base::WrapUnique(
116 new net::ChannelIDService(new net::DefaultChannelIDStore(nullptr), 118 new net::ChannelIDService(new net::DefaultChannelIDStore(nullptr),
117 base::WorkerPool::GetTaskRunner(true)))); 119 base::WorkerPool::GetTaskRunner(true))));
118 // TODO(skyostil): Make language settings configurable. 120 // TODO(skyostil): Make language settings configurable.
119 storage_->set_http_user_agent_settings(base::WrapUnique( 121 storage_->set_http_user_agent_settings(base::WrapUnique(
120 new net::StaticHttpUserAgentSettings("en-us,en", options_.user_agent))); 122 new net::StaticHttpUserAgentSettings("en-us,en", user_agent_)));
121 123
122 std::unique_ptr<net::HostResolver> host_resolver( 124 std::unique_ptr<net::HostResolver> host_resolver(
123 net::HostResolver::CreateDefaultResolver( 125 net::HostResolver::CreateDefaultResolver(
124 url_request_context_->net_log())); 126 url_request_context_->net_log()));
125 127
126 storage_->set_cert_verifier(net::CertVerifier::CreateDefault()); 128 storage_->set_cert_verifier(net::CertVerifier::CreateDefault());
127 storage_->set_transport_security_state( 129 storage_->set_transport_security_state(
128 base::WrapUnique(new net::TransportSecurityState)); 130 base::WrapUnique(new net::TransportSecurityState));
129 storage_->set_proxy_service(GetProxyService()); 131 storage_->set_proxy_service(GetProxyService());
130 storage_->set_ssl_config_service(new net::SSLConfigServiceDefaults); 132 storage_->set_ssl_config_service(new net::SSLConfigServiceDefaults);
(...skipping 20 matching lines...) Expand all
151 url_request_context_->proxy_service(); 153 url_request_context_->proxy_service();
152 network_session_params.ssl_config_service = 154 network_session_params.ssl_config_service =
153 url_request_context_->ssl_config_service(); 155 url_request_context_->ssl_config_service();
154 network_session_params.http_auth_handler_factory = 156 network_session_params.http_auth_handler_factory =
155 url_request_context_->http_auth_handler_factory(); 157 url_request_context_->http_auth_handler_factory();
156 network_session_params.http_server_properties = 158 network_session_params.http_server_properties =
157 url_request_context_->http_server_properties(); 159 url_request_context_->http_server_properties();
158 network_session_params.net_log = url_request_context_->net_log(); 160 network_session_params.net_log = url_request_context_->net_log();
159 network_session_params.ignore_certificate_errors = 161 network_session_params.ignore_certificate_errors =
160 ignore_certificate_errors_; 162 ignore_certificate_errors_;
161 if (!options_.host_resolver_rules.empty()) { 163 if (!host_resolver_rules_.empty()) {
162 std::unique_ptr<net::MappedHostResolver> mapped_host_resolver( 164 std::unique_ptr<net::MappedHostResolver> mapped_host_resolver(
163 new net::MappedHostResolver(std::move(host_resolver))); 165 new net::MappedHostResolver(std::move(host_resolver)));
164 mapped_host_resolver->SetRulesFromString(options_.host_resolver_rules); 166 mapped_host_resolver->SetRulesFromString(host_resolver_rules_);
165 host_resolver = std::move(mapped_host_resolver); 167 host_resolver = std::move(mapped_host_resolver);
166 } 168 }
167 169
168 // Give |storage_| ownership at the end in case it's |mapped_host_resolver|. 170 // Give |storage_| ownership at the end in case it's |mapped_host_resolver|.
169 storage_->set_host_resolver(std::move(host_resolver)); 171 storage_->set_host_resolver(std::move(host_resolver));
170 network_session_params.host_resolver = 172 network_session_params.host_resolver =
171 url_request_context_->host_resolver(); 173 url_request_context_->host_resolver();
172 174
173 storage_->set_http_network_session( 175 storage_->set_http_network_session(
174 base::WrapUnique(new net::HttpNetworkSession(network_session_params))); 176 base::WrapUnique(new net::HttpNetworkSession(network_session_params)));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 HeadlessURLRequestContextGetter::GetNetworkTaskRunner() const { 214 HeadlessURLRequestContextGetter::GetNetworkTaskRunner() const {
213 return content::BrowserThread::GetMessageLoopProxyForThread( 215 return content::BrowserThread::GetMessageLoopProxyForThread(
214 content::BrowserThread::IO); 216 content::BrowserThread::IO);
215 } 217 }
216 218
217 net::HostResolver* HeadlessURLRequestContextGetter::host_resolver() const { 219 net::HostResolver* HeadlessURLRequestContextGetter::host_resolver() const {
218 return url_request_context_->host_resolver(); 220 return url_request_context_->host_resolver();
219 } 221 }
220 222
221 } // namespace headless 223 } // namespace headless
OLDNEW
« no previous file with comments | « headless/lib/browser/headless_url_request_context_getter.h ('k') | headless/lib/headless_content_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698