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

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

Powered by Google App Engine
This is Rietveld 408576698