OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "net/url_request/url_request_context_builder.h" | 5 #include "net/url_request/url_request_context_builder.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 base::Thread::Options(MessageLoop::TYPE_IO, 0)); | 138 base::Thread::Options(MessageLoop::TYPE_IO, 0)); |
139 } | 139 } |
140 | 140 |
141 scoped_refptr<base::MessageLoopProxy> cache_message_loop_proxy() { | 141 scoped_refptr<base::MessageLoopProxy> cache_message_loop_proxy() { |
142 DCHECK(cache_thread_.IsRunning()); | 142 DCHECK(cache_thread_.IsRunning()); |
143 return cache_thread_.message_loop_proxy(); | 143 return cache_thread_.message_loop_proxy(); |
144 } | 144 } |
145 | 145 |
146 void StartFileThread() { | 146 void StartFileThread() { |
147 file_thread_.StartWithOptions( | 147 file_thread_.StartWithOptions( |
148 base::Thread::Options(MessageLoop::TYPE_DEFAULT, 0)); | 148 base::Thread::Options(MessageLoop::TYPE_IO, 0)); |
149 } | 149 } |
150 | 150 |
151 MessageLoop* file_message_loop() { | 151 MessageLoop* file_message_loop() { |
152 DCHECK(file_thread_.IsRunning()); | 152 DCHECK(file_thread_.IsRunning()); |
153 return file_thread_.message_loop(); | 153 return file_thread_.message_loop(); |
154 } | 154 } |
155 | 155 |
156 virtual const std::string& GetUserAgent( | 156 virtual const std::string& GetUserAgent( |
157 const GURL& /* url */) const OVERRIDE { | 157 const GURL& /* url */) const OVERRIDE { |
158 return user_agent_; | 158 return user_agent_; |
(...skipping 28 matching lines...) Expand all Loading... |
187 http_pipelining_enabled(false), | 187 http_pipelining_enabled(false), |
188 testing_fixed_http_port(0), | 188 testing_fixed_http_port(0), |
189 testing_fixed_https_port(0), | 189 testing_fixed_https_port(0), |
190 trusted_spdy_proxy() {} | 190 trusted_spdy_proxy() {} |
191 | 191 |
192 URLRequestContextBuilder::HttpNetworkSessionParams::~HttpNetworkSessionParams() | 192 URLRequestContextBuilder::HttpNetworkSessionParams::~HttpNetworkSessionParams() |
193 {} | 193 {} |
194 | 194 |
195 URLRequestContextBuilder::URLRequestContextBuilder() | 195 URLRequestContextBuilder::URLRequestContextBuilder() |
196 : ftp_enabled_(false), | 196 : ftp_enabled_(false), |
| 197 #if defined(OS_LINUX) |
| 198 glib_task_runner_(NULL), |
| 199 #endif // defined(OS_LINUX) |
197 http_cache_enabled_(true) {} | 200 http_cache_enabled_(true) {} |
| 201 |
198 URLRequestContextBuilder::~URLRequestContextBuilder() {} | 202 URLRequestContextBuilder::~URLRequestContextBuilder() {} |
199 | 203 |
200 #if defined(OS_LINUX) | 204 #if defined(OS_LINUX) |
201 void URLRequestContextBuilder::set_proxy_config_service( | 205 void URLRequestContextBuilder::set_glib_task_runner( |
202 ProxyConfigService* proxy_config_service) { | 206 base::SingleThreadTaskRunner* glib_task_runner) { |
203 proxy_config_service_.reset(proxy_config_service); | 207 glib_task_runner_ = glib_task_runner; |
204 } | 208 } |
205 #endif // defined(OS_LINUX) | 209 #endif // defined(OS_LINUX) |
206 | 210 |
207 URLRequestContext* URLRequestContextBuilder::Build() { | 211 URLRequestContext* URLRequestContextBuilder::Build() { |
208 BasicURLRequestContext* context = new BasicURLRequestContext; | 212 BasicURLRequestContext* context = new BasicURLRequestContext; |
209 URLRequestContextStorage* storage = context->storage(); | 213 URLRequestContextStorage* storage = context->storage(); |
210 | 214 |
211 context->set_user_agent(user_agent_); | 215 context->set_user_agent(user_agent_); |
212 | 216 |
213 BasicNetworkDelegate* network_delegate = new BasicNetworkDelegate; | 217 BasicNetworkDelegate* network_delegate = new BasicNetworkDelegate; |
214 storage->set_network_delegate(network_delegate); | 218 storage->set_network_delegate(network_delegate); |
215 | 219 |
216 net::HostResolver* host_resolver = net::CreateSystemHostResolver( | 220 net::HostResolver* host_resolver = net::CreateSystemHostResolver( |
217 host_resolver_params_.parallelism, | 221 host_resolver_params_.parallelism, |
218 host_resolver_params_.retry_attempts, | 222 host_resolver_params_.retry_attempts, |
219 NULL /* no NetLog */); | 223 NULL /* no NetLog */); |
220 storage->set_host_resolver(host_resolver); | 224 storage->set_host_resolver(host_resolver); |
221 | 225 |
222 if (ftp_enabled_) { | 226 if (ftp_enabled_) { |
223 storage->set_ftp_transaction_factory(new FtpNetworkLayer(host_resolver)); | 227 storage->set_ftp_transaction_factory(new FtpNetworkLayer(host_resolver)); |
224 } | 228 } |
225 | 229 |
226 context->StartFileThread(); | 230 context->StartFileThread(); |
227 | 231 |
228 // TODO(willchan): Switch to using this code when | |
229 // ProxyService::CreateSystemProxyConfigService()'s signature doesn't suck. | |
230 #if defined(OS_LINUX) | |
231 ProxyConfigService* proxy_config_service = proxy_config_service_.release(); | |
232 #else | |
233 ProxyConfigService* proxy_config_service = | |
234 ProxyService::CreateSystemProxyConfigService( | |
235 base::ThreadTaskRunnerHandle::Get(), | |
236 context->file_message_loop()); | |
237 #endif // defined(OS_LINUX) | |
238 storage->set_proxy_service( | 232 storage->set_proxy_service( |
239 ProxyService::CreateUsingSystemProxyResolver( | 233 ProxyService::CreateUsingSystemProxyResolver( |
240 proxy_config_service, | 234 ProxyService::CreateSystemProxyConfigService( |
| 235 #if defined(OS_LINUX) |
| 236 glib_task_runner_, |
| 237 #else |
| 238 NULL, |
| 239 #endif // defined(OS_LINUX) |
| 240 context->file_message_loop()), |
241 4, // TODO(willchan): Find a better constant somewhere. | 241 4, // TODO(willchan): Find a better constant somewhere. |
242 context->net_log())); | 242 context->net_log())); |
243 storage->set_ssl_config_service(new net::SSLConfigServiceDefaults); | 243 storage->set_ssl_config_service(new net::SSLConfigServiceDefaults); |
244 storage->set_http_auth_handler_factory( | 244 storage->set_http_auth_handler_factory( |
245 net::HttpAuthHandlerRegistryFactory::CreateDefault(host_resolver)); | 245 net::HttpAuthHandlerRegistryFactory::CreateDefault(host_resolver)); |
246 storage->set_cookie_store(new CookieMonster(NULL, NULL)); | 246 storage->set_cookie_store(new CookieMonster(NULL, NULL)); |
247 storage->set_transport_security_state(new net::TransportSecurityState()); | 247 storage->set_transport_security_state(new net::TransportSecurityState()); |
248 storage->set_http_server_properties(new net::HttpServerPropertiesImpl); | 248 storage->set_http_server_properties(new net::HttpServerPropertiesImpl); |
249 storage->set_cert_verifier(CertVerifier::CreateDefault()); | 249 storage->set_cert_verifier(CertVerifier::CreateDefault()); |
250 | 250 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 http_transaction_factory = new HttpNetworkLayer(network_session); | 302 http_transaction_factory = new HttpNetworkLayer(network_session); |
303 } | 303 } |
304 storage->set_http_transaction_factory(http_transaction_factory); | 304 storage->set_http_transaction_factory(http_transaction_factory); |
305 | 305 |
306 // TODO(willchan): Support sdch. | 306 // TODO(willchan): Support sdch. |
307 | 307 |
308 return context; | 308 return context; |
309 } | 309 } |
310 | 310 |
311 } // namespace net | 311 } // namespace net |
OLD | NEW |