| 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" |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 #include "base/threading/thread.h" | 12 #include "base/threading/thread.h" |
| 13 #include "base/threading/worker_pool.h" |
| 13 #include "base/thread_task_runner_handle.h" | 14 #include "base/thread_task_runner_handle.h" |
| 14 #include "net/base/cert_verifier.h" | 15 #include "net/base/cert_verifier.h" |
| 16 #include "net/base/default_server_bound_cert_store.h" |
| 15 #include "net/base/host_resolver.h" | 17 #include "net/base/host_resolver.h" |
| 16 #include "net/base/net_errors.h" | 18 #include "net/base/net_errors.h" |
| 17 #include "net/base/network_delegate.h" | 19 #include "net/base/network_delegate.h" |
| 20 #include "net/base/server_bound_cert_service.h" |
| 18 #include "net/base/ssl_config_service_defaults.h" | 21 #include "net/base/ssl_config_service_defaults.h" |
| 19 #include "net/base/transport_security_state.h" | 22 #include "net/base/transport_security_state.h" |
| 20 #include "net/cookies/cookie_monster.h" | 23 #include "net/cookies/cookie_monster.h" |
| 21 #include "net/ftp/ftp_network_layer.h" | 24 #include "net/ftp/ftp_network_layer.h" |
| 22 #include "net/http/http_auth_handler_factory.h" | 25 #include "net/http/http_auth_handler_factory.h" |
| 23 #include "net/http/http_cache.h" | 26 #include "net/http/http_cache.h" |
| 24 #include "net/http/http_network_layer.h" | 27 #include "net/http/http_network_layer.h" |
| 25 #include "net/http/http_network_session.h" | 28 #include "net/http/http_network_session.h" |
| 26 #include "net/http/http_server_properties_impl.h" | 29 #include "net/http/http_server_properties_impl.h" |
| 27 #include "net/proxy/proxy_service.h" | 30 #include "net/proxy/proxy_service.h" |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 236 context->file_message_loop()); | 239 context->file_message_loop()); |
| 237 #endif // defined(OS_LINUX) | 240 #endif // defined(OS_LINUX) |
| 238 storage->set_proxy_service( | 241 storage->set_proxy_service( |
| 239 ProxyService::CreateUsingSystemProxyResolver( | 242 ProxyService::CreateUsingSystemProxyResolver( |
| 240 proxy_config_service, | 243 proxy_config_service, |
| 241 4, // TODO(willchan): Find a better constant somewhere. | 244 4, // TODO(willchan): Find a better constant somewhere. |
| 242 context->net_log())); | 245 context->net_log())); |
| 243 storage->set_ssl_config_service(new net::SSLConfigServiceDefaults); | 246 storage->set_ssl_config_service(new net::SSLConfigServiceDefaults); |
| 244 storage->set_http_auth_handler_factory( | 247 storage->set_http_auth_handler_factory( |
| 245 net::HttpAuthHandlerRegistryFactory::CreateDefault(host_resolver)); | 248 net::HttpAuthHandlerRegistryFactory::CreateDefault(host_resolver)); |
| 249 storage->set_server_bound_cert_service(new net::ServerBoundCertService( |
| 250 new net::DefaultServerBoundCertStore(NULL), |
| 251 base::WorkerPool::GetTaskRunner(true))); |
| 246 storage->set_cookie_store(new CookieMonster(NULL, NULL)); | 252 storage->set_cookie_store(new CookieMonster(NULL, NULL)); |
| 247 storage->set_transport_security_state(new net::TransportSecurityState()); | 253 storage->set_transport_security_state(new net::TransportSecurityState()); |
| 248 storage->set_http_server_properties(new net::HttpServerPropertiesImpl); | 254 storage->set_http_server_properties(new net::HttpServerPropertiesImpl); |
| 249 storage->set_cert_verifier(CertVerifier::CreateDefault()); | 255 storage->set_cert_verifier(CertVerifier::CreateDefault()); |
| 250 | 256 |
| 251 net::HttpNetworkSession::Params network_session_params; | 257 net::HttpNetworkSession::Params network_session_params; |
| 252 network_session_params.host_resolver = host_resolver; | 258 network_session_params.host_resolver = host_resolver; |
| 253 network_session_params.cert_verifier = context->cert_verifier(); | 259 network_session_params.cert_verifier = context->cert_verifier(); |
| 260 network_session_params.server_bound_cert_service = |
| 261 context->server_bound_cert_service(); |
| 254 network_session_params.transport_security_state = | 262 network_session_params.transport_security_state = |
| 255 context->transport_security_state(); | 263 context->transport_security_state(); |
| 256 network_session_params.proxy_service = context->proxy_service(); | 264 network_session_params.proxy_service = context->proxy_service(); |
| 257 network_session_params.ssl_config_service = | 265 network_session_params.ssl_config_service = |
| 258 context->ssl_config_service(); | 266 context->ssl_config_service(); |
| 259 network_session_params.http_auth_handler_factory = | 267 network_session_params.http_auth_handler_factory = |
| 260 context->http_auth_handler_factory(); | 268 context->http_auth_handler_factory(); |
| 261 network_session_params.network_delegate = | 269 network_session_params.network_delegate = |
| 262 context->network_delegate(); | 270 context->network_delegate(); |
| 263 network_session_params.http_server_properties = | 271 network_session_params.http_server_properties = |
| 264 context->http_server_properties(); | 272 context->http_server_properties(); |
| 265 network_session_params.net_log = context->net_log(); | 273 network_session_params.net_log = context->net_log(); |
| 266 network_session_params.ignore_certificate_errors = | 274 network_session_params.ignore_certificate_errors = |
| 267 http_network_session_params_.ignore_certificate_errors; | 275 http_network_session_params_.ignore_certificate_errors; |
| 268 network_session_params.host_mapping_rules = | 276 network_session_params.host_mapping_rules = |
| 269 http_network_session_params_.host_mapping_rules; | 277 http_network_session_params_.host_mapping_rules; |
| 270 network_session_params.http_pipelining_enabled = | 278 network_session_params.http_pipelining_enabled = |
| 271 http_network_session_params_.http_pipelining_enabled; | 279 http_network_session_params_.http_pipelining_enabled; |
| 272 network_session_params.testing_fixed_http_port = | 280 network_session_params.testing_fixed_http_port = |
| 273 http_network_session_params_.testing_fixed_http_port; | 281 http_network_session_params_.testing_fixed_http_port; |
| 274 network_session_params.testing_fixed_https_port = | 282 network_session_params.testing_fixed_https_port = |
| 275 http_network_session_params_.testing_fixed_https_port; | 283 http_network_session_params_.testing_fixed_https_port; |
| 276 network_session_params.trusted_spdy_proxy = | 284 network_session_params.trusted_spdy_proxy = |
| 277 http_network_session_params_.trusted_spdy_proxy; | 285 http_network_session_params_.trusted_spdy_proxy; |
| 278 | 286 |
| 279 HttpTransactionFactory* http_transaction_factory = NULL; | 287 HttpTransactionFactory* http_transaction_factory = NULL; |
| 280 if (http_cache_enabled_) { | 288 if (http_cache_enabled_) { |
| 281 network_session_params.server_bound_cert_service = | |
| 282 context->server_bound_cert_service(); | |
| 283 HttpCache::BackendFactory* http_cache_backend = NULL; | 289 HttpCache::BackendFactory* http_cache_backend = NULL; |
| 284 if (http_cache_params_.type == HttpCacheParams::DISK) { | 290 if (http_cache_params_.type == HttpCacheParams::DISK) { |
| 285 context->StartCacheThread(); | 291 context->StartCacheThread(); |
| 286 http_cache_backend = | 292 http_cache_backend = |
| 287 new HttpCache::DefaultBackend(DISK_CACHE, | 293 new HttpCache::DefaultBackend(DISK_CACHE, |
| 288 http_cache_params_.path, | 294 http_cache_params_.path, |
| 289 http_cache_params_.max_size, | 295 http_cache_params_.max_size, |
| 290 context->cache_message_loop_proxy()); | 296 context->cache_message_loop_proxy()); |
| 291 } else { | 297 } else { |
| 292 http_cache_backend = | 298 http_cache_backend = |
| 293 HttpCache::DefaultBackend::InMemory(http_cache_params_.max_size); | 299 HttpCache::DefaultBackend::InMemory(http_cache_params_.max_size); |
| 294 } | 300 } |
| 295 | 301 |
| 296 http_transaction_factory = new HttpCache( | 302 http_transaction_factory = new HttpCache( |
| 297 network_session_params, http_cache_backend); | 303 network_session_params, http_cache_backend); |
| 298 } else { | 304 } else { |
| 299 scoped_refptr<net::HttpNetworkSession> network_session( | 305 scoped_refptr<net::HttpNetworkSession> network_session( |
| 300 new net::HttpNetworkSession(network_session_params)); | 306 new net::HttpNetworkSession(network_session_params)); |
| 301 | 307 |
| 302 http_transaction_factory = new HttpNetworkLayer(network_session); | 308 http_transaction_factory = new HttpNetworkLayer(network_session); |
| 303 } | 309 } |
| 304 storage->set_http_transaction_factory(http_transaction_factory); | 310 storage->set_http_transaction_factory(http_transaction_factory); |
| 305 | 311 |
| 306 // TODO(willchan): Support sdch. | 312 // TODO(willchan): Support sdch. |
| 307 | 313 |
| 308 return context; | 314 return context; |
| 309 } | 315 } |
| 310 | 316 |
| 311 } // namespace net | 317 } // namespace net |
| OLD | NEW |