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

Side by Side Diff: net/url_request/url_request_context_builder.cc

Issue 1290243007: Shift URLRequestContextStorage over to taking scoped_ptrs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@Paul_BuilderGrab
Patch Set: Sync'd to revision p349162. Created 5 years, 3 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 (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 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 void URLRequestContextBuilder::SetHttpServerProperties( 263 void URLRequestContextBuilder::SetHttpServerProperties(
264 scoped_ptr<HttpServerProperties> http_server_properties) { 264 scoped_ptr<HttpServerProperties> http_server_properties) {
265 http_server_properties_ = http_server_properties.Pass(); 265 http_server_properties_ = http_server_properties.Pass();
266 } 266 }
267 267
268 scoped_ptr<URLRequestContext> URLRequestContextBuilder::Build() { 268 scoped_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
269 scoped_ptr<ContainerURLRequestContext> context( 269 scoped_ptr<ContainerURLRequestContext> context(
270 new ContainerURLRequestContext(file_task_runner_)); 270 new ContainerURLRequestContext(file_task_runner_));
271 URLRequestContextStorage* storage = context->storage(); 271 URLRequestContextStorage* storage = context->storage();
272 272
273 storage->set_http_user_agent_settings(new StaticHttpUserAgentSettings( 273 storage->set_http_user_agent_settings(
274 accept_language_, user_agent_)); 274 make_scoped_ptr(
275 new StaticHttpUserAgentSettings(accept_language_, user_agent_))
276 .Pass());
275 277
276 if (!network_delegate_) 278 if (!network_delegate_)
277 network_delegate_.reset(new BasicNetworkDelegate); 279 network_delegate_.reset(new BasicNetworkDelegate);
278 NetworkDelegate* network_delegate = network_delegate_.release(); 280 storage->set_network_delegate(network_delegate_.Pass());
279 storage->set_network_delegate(network_delegate);
280 281
281 if (net_log_) { 282 if (net_log_) {
282 // Unlike the other builder parameters, |net_log_| is not owned by the 283 // Unlike the other builder parameters, |net_log_| is not owned by the
283 // builder or resulting context. 284 // builder or resulting context.
284 context->set_net_log(net_log_); 285 context->set_net_log(net_log_);
285 } else { 286 } else {
286 storage->set_net_log(new NetLog); 287 storage->set_net_log(make_scoped_ptr(new NetLog));
287 } 288 }
288 289
289 if (!host_resolver_) { 290 if (!host_resolver_) {
290 host_resolver_ = HostResolver::CreateDefaultResolver(context->net_log()); 291 host_resolver_ = HostResolver::CreateDefaultResolver(context->net_log());
291 } 292 }
292 storage->set_host_resolver(host_resolver_.Pass()); 293 storage->set_host_resolver(host_resolver_.Pass());
293 294
294 if (!proxy_service_) { 295 if (!proxy_service_) {
295 // TODO(willchan): Switch to using this code when 296 // TODO(willchan): Switch to using this code when
296 // ProxyService::CreateSystemProxyConfigService()'s signature doesn't suck. 297 // ProxyService::CreateSystemProxyConfigService()'s signature doesn't suck.
297 #if defined(OS_LINUX) || defined(OS_ANDROID) 298 #if defined(OS_LINUX) || defined(OS_ANDROID)
298 ProxyConfigService* proxy_config_service = proxy_config_service_.release(); 299 ProxyConfigService* proxy_config_service = proxy_config_service_.release();
299 #else 300 #else
300 ProxyConfigService* proxy_config_service = NULL; 301 ProxyConfigService* proxy_config_service = NULL;
301 if (proxy_config_service_) { 302 if (proxy_config_service_) {
302 proxy_config_service = proxy_config_service_.release(); 303 proxy_config_service = proxy_config_service_.release();
303 } else { 304 } else {
304 proxy_config_service = ProxyService::CreateSystemProxyConfigService( 305 proxy_config_service = ProxyService::CreateSystemProxyConfigService(
305 base::ThreadTaskRunnerHandle::Get().get(), 306 base::ThreadTaskRunnerHandle::Get().get(),
306 context->GetFileTaskRunner()); 307 context->GetFileTaskRunner());
307 } 308 }
308 #endif // defined(OS_LINUX) || defined(OS_ANDROID) 309 #endif // defined(OS_LINUX) || defined(OS_ANDROID)
309 proxy_service_.reset( 310 proxy_service_ = ProxyService::CreateUsingSystemProxyResolver(
310 ProxyService::CreateUsingSystemProxyResolver( 311 proxy_config_service,
311 proxy_config_service, 312 0, // This results in using the default value.
312 0, // This results in using the default value. 313 context->net_log());
313 context->net_log()));
314 } 314 }
315 storage->set_proxy_service(proxy_service_.release()); 315 storage->set_proxy_service(proxy_service_.Pass());
316 316
317 storage->set_ssl_config_service(new SSLConfigServiceDefaults); 317 storage->set_ssl_config_service(new SSLConfigServiceDefaults);
318 HttpAuthHandlerRegistryFactory* http_auth_handler_registry_factory = 318 scoped_ptr<HttpAuthHandlerRegistryFactory> http_auth_handler_registry_factory(
319 HttpAuthHandlerRegistryFactory::CreateDefault(context->host_resolver()); 319 HttpAuthHandlerRegistryFactory::CreateDefault(context->host_resolver()));
320 for (size_t i = 0; i < extra_http_auth_handlers_.size(); ++i) { 320 for (size_t i = 0; i < extra_http_auth_handlers_.size(); ++i) {
321 http_auth_handler_registry_factory->RegisterSchemeFactory( 321 http_auth_handler_registry_factory->RegisterSchemeFactory(
322 extra_http_auth_handlers_[i].scheme, 322 extra_http_auth_handlers_[i].scheme,
323 extra_http_auth_handlers_[i].factory); 323 extra_http_auth_handlers_[i].factory);
324 } 324 }
325 storage->set_http_auth_handler_factory(http_auth_handler_registry_factory); 325 storage->set_http_auth_handler_factory(
326 http_auth_handler_registry_factory.Pass());
326 327
327 if (cookie_store_) { 328 if (cookie_store_) {
328 storage->set_cookie_store(cookie_store_.get()); 329 storage->set_cookie_store(cookie_store_.get());
329 storage->set_channel_id_service(channel_id_service_.Pass()); 330 storage->set_channel_id_service(channel_id_service_.Pass());
330 } else { 331 } else {
331 storage->set_cookie_store(new CookieMonster(NULL, NULL)); 332 storage->set_cookie_store(new CookieMonster(NULL, NULL));
332 // TODO(mmenke): This always creates a file thread, even when it ends up 333 // TODO(mmenke): This always creates a file thread, even when it ends up
333 // not being used. Consider lazily creating the thread. 334 // not being used. Consider lazily creating the thread.
334 storage->set_channel_id_service(make_scoped_ptr(new ChannelIDService( 335 storage->set_channel_id_service(make_scoped_ptr(new ChannelIDService(
335 new DefaultChannelIDStore(NULL), context->GetFileTaskRunner()))); 336 new DefaultChannelIDStore(NULL), context->GetFileTaskRunner())));
336 } 337 }
337 338
338 if (sdch_enabled_) { 339 if (sdch_enabled_) {
339 storage->set_sdch_manager( 340 storage->set_sdch_manager(
340 scoped_ptr<net::SdchManager>(new SdchManager()).Pass()); 341 scoped_ptr<net::SdchManager>(new SdchManager()).Pass());
341 } 342 }
342 343
343 storage->set_transport_security_state(new TransportSecurityState()); 344 storage->set_transport_security_state(
345 make_scoped_ptr(new TransportSecurityState()));
344 if (!transport_security_persister_path_.empty()) { 346 if (!transport_security_persister_path_.empty()) {
345 context->set_transport_security_persister( 347 context->set_transport_security_persister(
346 make_scoped_ptr<TransportSecurityPersister>( 348 make_scoped_ptr<TransportSecurityPersister>(
347 new TransportSecurityPersister(context->transport_security_state(), 349 new TransportSecurityPersister(context->transport_security_state(),
348 transport_security_persister_path_, 350 transport_security_persister_path_,
349 context->GetFileTaskRunner(), 351 context->GetFileTaskRunner(),
350 false))); 352 false)));
351 } 353 }
352 354
353 if (http_server_properties_) { 355 if (http_server_properties_) {
354 storage->set_http_server_properties(http_server_properties_.Pass()); 356 storage->set_http_server_properties(http_server_properties_.Pass());
355 } else { 357 } else {
356 storage->set_http_server_properties( 358 storage->set_http_server_properties(
357 scoped_ptr<HttpServerProperties>(new HttpServerPropertiesImpl())); 359 scoped_ptr<HttpServerProperties>(new HttpServerPropertiesImpl()));
358 } 360 }
359 361
360 storage->set_cert_verifier(CertVerifier::CreateDefault()); 362 storage->set_cert_verifier(CertVerifier::CreateDefault());
361 363
362 if (throttling_enabled_) 364 if (throttling_enabled_) {
363 storage->set_throttler_manager(new URLRequestThrottlerManager()); 365 storage->set_throttler_manager(
366 make_scoped_ptr(new URLRequestThrottlerManager()));
367 }
364 368
365 if (backoff_enabled_) 369 if (backoff_enabled_) {
366 storage->set_backoff_manager(new URLRequestBackoffManager()); 370 storage->set_backoff_manager(
371 make_scoped_ptr(new URLRequestBackoffManager()));
372 }
367 373
368 HttpNetworkSession::Params network_session_params; 374 HttpNetworkSession::Params network_session_params;
369 SetHttpNetworkSessionComponents(context.get(), &network_session_params); 375 SetHttpNetworkSessionComponents(context.get(), &network_session_params);
370 376
371 network_session_params.ignore_certificate_errors = 377 network_session_params.ignore_certificate_errors =
372 http_network_session_params_.ignore_certificate_errors; 378 http_network_session_params_.ignore_certificate_errors;
373 network_session_params.host_mapping_rules = 379 network_session_params.host_mapping_rules =
374 http_network_session_params_.host_mapping_rules; 380 http_network_session_params_.host_mapping_rules;
375 network_session_params.testing_fixed_http_port = 381 network_session_params.testing_fixed_http_port =
376 http_network_session_params_.testing_fixed_http_port; 382 http_network_session_params_.testing_fixed_http_port;
377 network_session_params.testing_fixed_https_port = 383 network_session_params.testing_fixed_https_port =
378 http_network_session_params_.testing_fixed_https_port; 384 http_network_session_params_.testing_fixed_https_port;
379 network_session_params.use_alternative_services = 385 network_session_params.use_alternative_services =
380 http_network_session_params_.use_alternative_services; 386 http_network_session_params_.use_alternative_services;
381 network_session_params.trusted_spdy_proxy = 387 network_session_params.trusted_spdy_proxy =
382 http_network_session_params_.trusted_spdy_proxy; 388 http_network_session_params_.trusted_spdy_proxy;
383 network_session_params.next_protos = http_network_session_params_.next_protos; 389 network_session_params.next_protos = http_network_session_params_.next_protos;
384 network_session_params.enable_quic = http_network_session_params_.enable_quic; 390 network_session_params.enable_quic = http_network_session_params_.enable_quic;
385 network_session_params.enable_insecure_quic = 391 network_session_params.enable_insecure_quic =
386 http_network_session_params_.enable_insecure_quic; 392 http_network_session_params_.enable_insecure_quic;
387 network_session_params.quic_connection_options = 393 network_session_params.quic_connection_options =
388 http_network_session_params_.quic_connection_options; 394 http_network_session_params_.quic_connection_options;
389 395
390 HttpTransactionFactory* http_transaction_factory = NULL; 396 scoped_ptr<HttpTransactionFactory> http_transaction_factory;
391 if (http_cache_enabled_) { 397 if (http_cache_enabled_) {
392 HttpCache::BackendFactory* http_cache_backend = NULL; 398 HttpCache::BackendFactory* http_cache_backend = NULL;
393 if (http_cache_params_.type == HttpCacheParams::DISK) { 399 if (http_cache_params_.type == HttpCacheParams::DISK) {
394 http_cache_backend = new HttpCache::DefaultBackend( 400 http_cache_backend = new HttpCache::DefaultBackend(
395 DISK_CACHE, CACHE_BACKEND_DEFAULT, http_cache_params_.path, 401 DISK_CACHE, CACHE_BACKEND_DEFAULT, http_cache_params_.path,
396 http_cache_params_.max_size, context->GetFileTaskRunner()); 402 http_cache_params_.max_size, context->GetFileTaskRunner());
397 } else { 403 } else {
398 http_cache_backend = 404 http_cache_backend =
399 HttpCache::DefaultBackend::InMemory(http_cache_params_.max_size); 405 HttpCache::DefaultBackend::InMemory(http_cache_params_.max_size);
400 } 406 }
401 407
402 http_transaction_factory = new HttpCache( 408 http_transaction_factory.reset(
403 network_session_params, http_cache_backend); 409 new HttpCache(network_session_params, http_cache_backend));
404 } else { 410 } else {
405 scoped_refptr<HttpNetworkSession> network_session( 411 scoped_refptr<HttpNetworkSession> network_session(
406 new HttpNetworkSession(network_session_params)); 412 new HttpNetworkSession(network_session_params));
407 413
408 http_transaction_factory = new HttpNetworkLayer(network_session.get()); 414 http_transaction_factory.reset(new HttpNetworkLayer(network_session.get()));
409 } 415 }
410 storage->set_http_transaction_factory(http_transaction_factory); 416 storage->set_http_transaction_factory(http_transaction_factory.Pass());
411 417
412 URLRequestJobFactoryImpl* job_factory = new URLRequestJobFactoryImpl; 418 URLRequestJobFactoryImpl* job_factory = new URLRequestJobFactoryImpl;
413 if (data_enabled_) 419 if (data_enabled_)
414 job_factory->SetProtocolHandler("data", 420 job_factory->SetProtocolHandler("data",
415 make_scoped_ptr(new DataProtocolHandler)); 421 make_scoped_ptr(new DataProtocolHandler));
416 422
417 #if !defined(DISABLE_FILE_SUPPORT) 423 #if !defined(DISABLE_FILE_SUPPORT)
418 if (file_enabled_) { 424 if (file_enabled_) {
419 job_factory->SetProtocolHandler( 425 job_factory->SetProtocolHandler(
420 "file", 426 "file",
(...skipping 16 matching lines...) Expand all
437 // Set up interceptors in the reverse order. 443 // Set up interceptors in the reverse order.
438 444
439 for (ScopedVector<net::URLRequestInterceptor>::reverse_iterator i = 445 for (ScopedVector<net::URLRequestInterceptor>::reverse_iterator i =
440 url_request_interceptors_.rbegin(); 446 url_request_interceptors_.rbegin();
441 i != url_request_interceptors_.rend(); ++i) { 447 i != url_request_interceptors_.rend(); ++i) {
442 top_job_factory.reset(new net::URLRequestInterceptingJobFactory( 448 top_job_factory.reset(new net::URLRequestInterceptingJobFactory(
443 top_job_factory.Pass(), make_scoped_ptr(*i))); 449 top_job_factory.Pass(), make_scoped_ptr(*i)));
444 } 450 }
445 url_request_interceptors_.weak_clear(); 451 url_request_interceptors_.weak_clear();
446 } 452 }
447 storage->set_job_factory(top_job_factory.release()); 453 storage->set_job_factory(top_job_factory.Pass());
448 // TODO(willchan): Support sdch. 454 // TODO(willchan): Support sdch.
449 455
450 return context.Pass(); 456 return context.Pass();
451 } 457 }
452 458
453 } // namespace net 459 } // namespace net
OLDNEW
« no previous file with comments | « net/url_request/url_fetcher_impl_unittest.cc ('k') | net/url_request/url_request_context_storage.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698