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 "chrome/browser/profiles/profile_impl_io_data.h" | 5 #include "chrome/browser/profiles/profile_impl_io_data.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
427 | 427 |
428 if (media_request_context_) | 428 if (media_request_context_) |
429 media_request_context_->AssertNoURLRequests(); | 429 media_request_context_->AssertNoURLRequests(); |
430 } | 430 } |
431 | 431 |
432 void ProfileImplIOData::InitializeInternal( | 432 void ProfileImplIOData::InitializeInternal( |
433 scoped_ptr<ChromeNetworkDelegate> chrome_network_delegate, | 433 scoped_ptr<ChromeNetworkDelegate> chrome_network_delegate, |
434 ProfileParams* profile_params, | 434 ProfileParams* profile_params, |
435 content::ProtocolHandlerMap* protocol_handlers, | 435 content::ProtocolHandlerMap* protocol_handlers, |
436 content::URLRequestInterceptorScopedVector request_interceptors) const { | 436 content::URLRequestInterceptorScopedVector request_interceptors) const { |
437 // TODO(vadimt): Remove ScopedTracker below once crbug.com/436671 is fixed. | |
438 tracked_objects::ScopedTracker tracking_profile( | |
439 FROM_HERE_WITH_EXPLICIT_FUNCTION( | |
440 "436671 ProfileImplIOData::InitializeInternal")); | |
441 | |
442 // Set up a persistent store for use by the network stack on the IO thread. | 437 // Set up a persistent store for use by the network stack on the IO thread. |
443 base::FilePath network_json_store_filepath( | 438 base::FilePath network_json_store_filepath( |
444 profile_path_.Append(chrome::kNetworkPersistentStateFilename)); | 439 profile_path_.Append(chrome::kNetworkPersistentStateFilename)); |
445 network_json_store_ = new JsonPrefStore( | 440 network_json_store_ = new JsonPrefStore( |
446 network_json_store_filepath, | 441 network_json_store_filepath, |
447 JsonPrefStore::GetTaskRunnerForFile(network_json_store_filepath, | 442 JsonPrefStore::GetTaskRunnerForFile(network_json_store_filepath, |
448 BrowserThread::GetBlockingPool()), | 443 BrowserThread::GetBlockingPool()), |
449 scoped_ptr<PrefFilter>()); | 444 scoped_ptr<PrefFilter>()); |
450 network_json_store_->ReadPrefsAsync(nullptr); | 445 network_json_store_->ReadPrefsAsync(nullptr); |
451 | 446 |
452 net::URLRequestContext* main_context = main_request_context(); | 447 net::URLRequestContext* main_context = main_request_context(); |
453 | 448 |
454 IOThread* const io_thread = profile_params->io_thread; | 449 IOThread* const io_thread = profile_params->io_thread; |
455 IOThread::Globals* const io_thread_globals = io_thread->globals(); | 450 IOThread::Globals* const io_thread_globals = io_thread->globals(); |
456 | 451 |
457 chrome_network_delegate->set_predictor(predictor_.get()); | 452 chrome_network_delegate->set_predictor(predictor_.get()); |
458 | 453 |
459 if (domain_reliability_monitor_) { | 454 if (domain_reliability_monitor_) { |
460 // TODO(vadimt): Remove ScopedTracker below once crbug.com/436671 is fixed. | |
461 tracked_objects::ScopedTracker tracking_profile1( | |
462 FROM_HERE_WITH_EXPLICIT_FUNCTION( | |
463 "436671 ProfileImplIOData::InitializeInternal1")); | |
464 | |
465 domain_reliability::DomainReliabilityMonitor* monitor = | 455 domain_reliability::DomainReliabilityMonitor* monitor = |
466 domain_reliability_monitor_.get(); | 456 domain_reliability_monitor_.get(); |
467 monitor->InitURLRequestContext(main_context); | 457 monitor->InitURLRequestContext(main_context); |
468 monitor->AddBakedInConfigs(); | 458 monitor->AddBakedInConfigs(); |
469 monitor->SetDiscardUploads(!GetMetricsEnabledStateOnIOThread()); | 459 monitor->SetDiscardUploads(!GetMetricsEnabledStateOnIOThread()); |
470 chrome_network_delegate->set_domain_reliability_monitor(monitor); | 460 chrome_network_delegate->set_domain_reliability_monitor(monitor); |
471 } | 461 } |
472 | 462 |
473 // TODO(vadimt): Remove ScopedTracker below once crbug.com/436671 is fixed. | |
474 tracked_objects::ScopedTracker tracking_profile2( | |
475 FROM_HERE_WITH_EXPLICIT_FUNCTION( | |
476 "436671 ProfileImplIOData::InitializeInternal2")); | |
477 | |
478 ApplyProfileParamsToContext(main_context); | 463 ApplyProfileParamsToContext(main_context); |
479 | 464 |
480 if (http_server_properties_manager_) | 465 if (http_server_properties_manager_) |
481 http_server_properties_manager_->InitializeOnNetworkThread(); | 466 http_server_properties_manager_->InitializeOnNetworkThread(); |
482 | 467 |
483 main_context->set_transport_security_state(transport_security_state()); | 468 main_context->set_transport_security_state(transport_security_state()); |
484 | 469 |
485 main_context->set_net_log(io_thread->net_log()); | 470 main_context->set_net_log(io_thread->net_log()); |
486 | 471 |
487 network_delegate_ = data_reduction_proxy_io_data()->CreateNetworkDelegate( | 472 network_delegate_ = data_reduction_proxy_io_data()->CreateNetworkDelegate( |
(...skipping 14 matching lines...) Expand all Loading... |
502 fraudulent_certificate_reporter()); | 487 fraudulent_certificate_reporter()); |
503 | 488 |
504 main_context->set_throttler_manager( | 489 main_context->set_throttler_manager( |
505 io_thread_globals->throttler_manager.get()); | 490 io_thread_globals->throttler_manager.get()); |
506 | 491 |
507 main_context->set_proxy_service(proxy_service()); | 492 main_context->set_proxy_service(proxy_service()); |
508 | 493 |
509 scoped_refptr<net::CookieStore> cookie_store = NULL; | 494 scoped_refptr<net::CookieStore> cookie_store = NULL; |
510 net::ChannelIDService* channel_id_service = NULL; | 495 net::ChannelIDService* channel_id_service = NULL; |
511 | 496 |
512 // TODO(vadimt): Remove ScopedTracker below once crbug.com/436671 is fixed. | 497 // Set up cookie store. |
513 tracked_objects::ScopedTracker tracking_profile5( | |
514 FROM_HERE_WITH_EXPLICIT_FUNCTION( | |
515 "436671 ProfileImplIOData::InitializeInternal5")); | |
516 | |
517 // setup cookie store | |
518 if (!cookie_store.get()) { | 498 if (!cookie_store.get()) { |
519 DCHECK(!lazy_params_->cookie_path.empty()); | 499 DCHECK(!lazy_params_->cookie_path.empty()); |
520 | 500 |
521 content::CookieStoreConfig cookie_config( | 501 content::CookieStoreConfig cookie_config( |
522 lazy_params_->cookie_path, | 502 lazy_params_->cookie_path, |
523 lazy_params_->session_cookie_mode, | 503 lazy_params_->session_cookie_mode, |
524 lazy_params_->special_storage_policy.get(), | 504 lazy_params_->special_storage_policy.get(), |
525 profile_params->cookie_monster_delegate.get()); | 505 profile_params->cookie_monster_delegate.get()); |
526 cookie_config.crypto_delegate = | 506 cookie_config.crypto_delegate = |
527 chrome_browser_net::GetCookieCryptoDelegate(); | 507 chrome_browser_net::GetCookieCryptoDelegate(); |
528 cookie_store = content::CreateCookieStore(cookie_config); | 508 cookie_store = content::CreateCookieStore(cookie_config); |
529 } | 509 } |
530 | 510 |
531 main_context->set_cookie_store(cookie_store.get()); | 511 main_context->set_cookie_store(cookie_store.get()); |
532 | 512 |
533 // TODO(vadimt): Remove ScopedTracker below once crbug.com/436671 is fixed. | 513 // Set up server bound cert service. |
534 tracked_objects::ScopedTracker tracking_profile6( | |
535 FROM_HERE_WITH_EXPLICIT_FUNCTION( | |
536 "436671 ProfileImplIOData::InitializeInternal6")); | |
537 | |
538 // Setup server bound cert service. | |
539 if (!channel_id_service) { | 514 if (!channel_id_service) { |
540 DCHECK(!lazy_params_->channel_id_path.empty()); | 515 DCHECK(!lazy_params_->channel_id_path.empty()); |
541 | 516 |
542 scoped_refptr<QuotaPolicyChannelIDStore> channel_id_db = | 517 scoped_refptr<QuotaPolicyChannelIDStore> channel_id_db = |
543 new QuotaPolicyChannelIDStore( | 518 new QuotaPolicyChannelIDStore( |
544 lazy_params_->channel_id_path, | 519 lazy_params_->channel_id_path, |
545 BrowserThread::GetBlockingPool()->GetSequencedTaskRunner( | 520 BrowserThread::GetBlockingPool()->GetSequencedTaskRunner( |
546 BrowserThread::GetBlockingPool()->GetSequenceToken()), | 521 BrowserThread::GetBlockingPool()->GetSequenceToken()), |
547 lazy_params_->special_storage_policy.get()); | 522 lazy_params_->special_storage_policy.get()); |
548 channel_id_service = new net::ChannelIDService( | 523 channel_id_service = new net::ChannelIDService( |
549 new net::DefaultChannelIDStore(channel_id_db.get()), | 524 new net::DefaultChannelIDStore(channel_id_db.get()), |
550 base::WorkerPool::GetTaskRunner(true)); | 525 base::WorkerPool::GetTaskRunner(true)); |
551 } | 526 } |
552 | 527 |
553 set_channel_id_service(channel_id_service); | 528 set_channel_id_service(channel_id_service); |
554 main_context->set_channel_id_service(channel_id_service); | 529 main_context->set_channel_id_service(channel_id_service); |
555 | 530 |
556 // TODO(vadimt): Remove ScopedTracker below once crbug.com/436671 is fixed. | 531 scoped_ptr<net::HttpCache> main_cache; |
557 tracked_objects::ScopedTracker tracking_profile7( | 532 { |
558 FROM_HERE_WITH_EXPLICIT_FUNCTION( | 533 // TODO(ttuttle): Remove ScopedTracker below once crbug.com/436671 is fixed. |
559 "436671 ProfileImplIOData::InitializeInternal7")); | 534 tracked_objects::ScopedTracker tracking_profile( |
560 | 535 FROM_HERE_WITH_EXPLICIT_FUNCTION("436671 HttpCache construction")); |
561 net::HttpCache::DefaultBackend* main_backend = | 536 net::HttpCache::DefaultBackend* main_backend = |
562 new net::HttpCache::DefaultBackend( | 537 new net::HttpCache::DefaultBackend( |
563 net::DISK_CACHE, | 538 net::DISK_CACHE, |
564 ChooseCacheBackendType(), | 539 ChooseCacheBackendType(), |
565 lazy_params_->cache_path, | 540 lazy_params_->cache_path, |
566 lazy_params_->cache_max_size, | 541 lazy_params_->cache_max_size, |
567 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE)); | 542 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE)); |
568 scoped_ptr<net::HttpCache> main_cache = CreateMainHttpFactory( | 543 main_cache = CreateMainHttpFactory(profile_params, main_backend); |
569 profile_params, main_backend); | 544 } |
570 | |
571 // TODO(vadimt): Remove ScopedTracker below once crbug.com/436671 is fixed. | |
572 tracked_objects::ScopedTracker tracking_profile71( | |
573 FROM_HERE_WITH_EXPLICIT_FUNCTION( | |
574 "436671 ProfileImplIOData::InitializeInternal71")); | |
575 | 545 |
576 main_http_factory_.reset(main_cache.release()); | 546 main_http_factory_.reset(main_cache.release()); |
577 main_context->set_http_transaction_factory(main_http_factory_.get()); | 547 main_context->set_http_transaction_factory(main_http_factory_.get()); |
578 | 548 |
579 #if !defined(DISABLE_FTP_SUPPORT) | 549 #if !defined(DISABLE_FTP_SUPPORT) |
580 ftp_factory_.reset( | 550 ftp_factory_.reset( |
581 new net::FtpNetworkLayer(io_thread_globals->host_resolver.get())); | 551 new net::FtpNetworkLayer(io_thread_globals->host_resolver.get())); |
582 #endif // !defined(DISABLE_FTP_SUPPORT) | 552 #endif // !defined(DISABLE_FTP_SUPPORT) |
583 | 553 |
584 // TODO(vadimt): Remove ScopedTracker below once crbug.com/436671 is fixed. | |
585 tracked_objects::ScopedTracker tracking_profile8( | |
586 FROM_HERE_WITH_EXPLICIT_FUNCTION( | |
587 "436671 ProfileImplIOData::InitializeInternal8")); | |
588 | |
589 scoped_ptr<net::URLRequestJobFactoryImpl> main_job_factory( | 554 scoped_ptr<net::URLRequestJobFactoryImpl> main_job_factory( |
590 new net::URLRequestJobFactoryImpl()); | 555 new net::URLRequestJobFactoryImpl()); |
591 InstallProtocolHandlers(main_job_factory.get(), protocol_handlers); | 556 InstallProtocolHandlers(main_job_factory.get(), protocol_handlers); |
592 | 557 |
593 // The data reduction proxy interceptor should be as close to the network | 558 // The data reduction proxy interceptor should be as close to the network |
594 // as possible. | 559 // as possible. |
595 request_interceptors.insert( | 560 request_interceptors.insert( |
596 request_interceptors.begin(), | 561 request_interceptors.begin(), |
597 data_reduction_proxy_io_data()->CreateInterceptor().release()); | 562 data_reduction_proxy_io_data()->CreateInterceptor().release()); |
598 main_job_factory_ = SetUpJobFactoryDefaults( | 563 main_job_factory_ = SetUpJobFactoryDefaults( |
599 main_job_factory.Pass(), | 564 main_job_factory.Pass(), |
600 request_interceptors.Pass(), | 565 request_interceptors.Pass(), |
601 profile_params->protocol_handler_interceptor.Pass(), | 566 profile_params->protocol_handler_interceptor.Pass(), |
602 main_context->network_delegate(), | 567 main_context->network_delegate(), |
603 ftp_factory_.get()); | 568 ftp_factory_.get()); |
604 main_context->set_job_factory(main_job_factory_.get()); | 569 main_context->set_job_factory(main_job_factory_.get()); |
605 | 570 |
606 // TODO(vadimt): Remove ScopedTracker below once crbug.com/436671 is fixed. | |
607 tracked_objects::ScopedTracker tracking_profile9( | |
608 FROM_HERE_WITH_EXPLICIT_FUNCTION( | |
609 "436671 ProfileImplIOData::InitializeInternal9")); | |
610 | |
611 #if defined(ENABLE_EXTENSIONS) | 571 #if defined(ENABLE_EXTENSIONS) |
612 InitializeExtensionsRequestContext(profile_params); | 572 InitializeExtensionsRequestContext(profile_params); |
613 #endif | 573 #endif |
614 | 574 |
615 // Setup SDCH for this profile. | 575 // Setup SDCH for this profile. |
616 sdch_manager_.reset(new net::SdchManager); | 576 sdch_manager_.reset(new net::SdchManager); |
617 sdch_policy_.reset(new net::SdchOwner(sdch_manager_.get(), main_context)); | 577 sdch_policy_.reset(new net::SdchOwner(sdch_manager_.get(), main_context)); |
618 main_context->set_sdch_manager(sdch_manager_.get()); | 578 main_context->set_sdch_manager(sdch_manager_.get()); |
619 if (ShouldUseSdchPersistence()) { | 579 if (ShouldUseSdchPersistence()) { |
620 sdch_policy_->EnablePersistentStorage(network_json_store_.get()); | 580 sdch_policy_->EnablePersistentStorage(network_json_store_.get()); |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
845 const base::Closure& completion) { | 805 const base::Closure& completion) { |
846 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 806 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
847 DCHECK(initialized()); | 807 DCHECK(initialized()); |
848 | 808 |
849 DCHECK(transport_security_state()); | 809 DCHECK(transport_security_state()); |
850 // Completes synchronously. | 810 // Completes synchronously. |
851 transport_security_state()->DeleteAllDynamicDataSince(time); | 811 transport_security_state()->DeleteAllDynamicDataSince(time); |
852 DCHECK(http_server_properties_manager_); | 812 DCHECK(http_server_properties_manager_); |
853 http_server_properties_manager_->Clear(completion); | 813 http_server_properties_manager_->Clear(completion); |
854 } | 814 } |
OLD | NEW |