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

Side by Side Diff: chrome/browser/io_thread.cc

Issue 2910643003: Move more SystemURLRequestContext members into its ContextStorage (Closed)
Patch Set: Response Created 3 years, 6 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
« no previous file with comments | « chrome/browser/io_thread.h ('k') | chrome/browser/profiles/off_the_record_profile_io_data.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/io_thread.h" 5 #include "chrome/browser/io_thread.h"
6 6
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/base64.h" 10 #include "base/base64.h"
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 std::move(data_use_amortizer))); 540 std::move(data_use_amortizer)));
541 541
542 #if defined(OS_ANDROID) 542 #if defined(OS_ANDROID)
543 globals_->external_data_use_observer.reset( 543 globals_->external_data_use_observer.reset(
544 new chrome::android::ExternalDataUseObserver( 544 new chrome::android::ExternalDataUseObserver(
545 globals_->data_use_aggregator.get(), 545 globals_->data_use_aggregator.get(),
546 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), 546 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO),
547 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI))); 547 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI)));
548 #endif // defined(OS_ANDROID) 548 #endif // defined(OS_ANDROID)
549 549
550 globals_->host_resolver = CreateGlobalHostResolver(net_log_);
551
552 std::map<std::string, std::string> network_quality_estimator_params; 550 std::map<std::string, std::string> network_quality_estimator_params;
553 variations::GetVariationParams(kNetworkQualityEstimatorFieldTrialName, 551 variations::GetVariationParams(kNetworkQualityEstimatorFieldTrialName,
554 &network_quality_estimator_params); 552 &network_quality_estimator_params);
555 553
556 if (command_line.HasSwitch(switches::kForceEffectiveConnectionType)) { 554 if (command_line.HasSwitch(switches::kForceEffectiveConnectionType)) {
557 const std::string force_ect_value = 555 const std::string force_ect_value =
558 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 556 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
559 switches::kForceEffectiveConnectionType); 557 switches::kForceEffectiveConnectionType);
560 558
561 if (!force_ect_value.empty()) { 559 if (!force_ect_value.empty()) {
562 // If the effective connection type is forced using command line switch, 560 // If the effective connection type is forced using command line switch,
563 // it overrides the one set by field trial. 561 // it overrides the one set by field trial.
564 network_quality_estimator_params[net::kForceEffectiveConnectionType] = 562 network_quality_estimator_params[net::kForceEffectiveConnectionType] =
565 force_ect_value; 563 force_ect_value;
566 } 564 }
567 } 565 }
568 566
569 std::unique_ptr<net::ExternalEstimateProvider> external_estimate_provider; 567 std::unique_ptr<net::ExternalEstimateProvider> external_estimate_provider;
570 #if defined(OS_ANDROID) 568 #if defined(OS_ANDROID)
571 external_estimate_provider.reset( 569 external_estimate_provider.reset(
572 new chrome::android::ExternalEstimateProviderAndroid()); 570 new chrome::android::ExternalEstimateProviderAndroid());
573 #endif // defined(OS_ANDROID) 571 #endif // defined(OS_ANDROID)
574 // Pass ownership. 572 // Pass ownership.
575 globals_->network_quality_estimator.reset(new net::NetworkQualityEstimator( 573 globals_->network_quality_estimator.reset(new net::NetworkQualityEstimator(
576 std::move(external_estimate_provider), network_quality_estimator_params, 574 std::move(external_estimate_provider), network_quality_estimator_params,
577 net_log_)); 575 net_log_));
578 globals_->network_quality_observer = content::CreateNetworkQualityObserver( 576 globals_->network_quality_observer = content::CreateNetworkQualityObserver(
579 globals_->network_quality_estimator.get()); 577 globals_->network_quality_estimator.get());
580 578
581 UpdateDnsClientEnabled();
582 #if defined(OS_CHROMEOS)
583 // Creates a CertVerifyProc that doesn't allow any profile-provided certs.
584 globals_->cert_verifier = base::MakeUnique<net::CachingCertVerifier>(
585 base::MakeUnique<net::MultiThreadedCertVerifier>(
586 new chromeos::CertVerifyProcChromeOS()));
587 #else
588 globals_->cert_verifier = IgnoreErrorsCertVerifier::MaybeWrapCertVerifier(
589 command_line, net::CertVerifier::CreateDefault());
590 UMA_HISTOGRAM_BOOLEAN(
591 "Net.Certificate.IgnoreCertificateErrorsSPKIListPresent",
592 command_line.HasSwitch(switches::kIgnoreCertificateErrorsSPKIList));
593 #endif
594
595 std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs( 579 std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs(
596 net::ct::CreateLogVerifiersForKnownLogs()); 580 net::ct::CreateLogVerifiersForKnownLogs());
597 581
598 globals_->ct_logs.assign(ct_logs.begin(), ct_logs.end()); 582 globals_->ct_logs.assign(ct_logs.begin(), ct_logs.end());
599 583
600 net::MultiLogCTVerifier* ct_verifier = new net::MultiLogCTVerifier();
601 globals_->cert_transparency_verifier.reset(ct_verifier);
602 // Add built-in logs
603 ct_verifier->AddLogs(globals_->ct_logs);
604
605 ct_tree_tracker_.reset(new certificate_transparency::TreeStateTracker( 584 ct_tree_tracker_.reset(new certificate_transparency::TreeStateTracker(
606 globals_->ct_logs, net_log_)); 585 globals_->ct_logs, net_log_));
607 // Register the ct_tree_tracker_ as observer for new STHs. 586 // Register the ct_tree_tracker_ as observer for new STHs.
608 RegisterSTHObserver(ct_tree_tracker_.get()); 587 RegisterSTHObserver(ct_tree_tracker_.get());
609 // Register the ct_tree_tracker_ as observer for verified SCTs.
610 globals_->cert_transparency_verifier->SetObserver(ct_tree_tracker_.get());
611 588
612 CreateDefaultAuthHandlerFactory();
613 globals_->dns_probe_service.reset(new chrome_browser_net::DnsProbeService()); 589 globals_->dns_probe_service.reset(new chrome_browser_net::DnsProbeService());
614 globals_->host_mapping_rules.reset(new net::HostMappingRules()); 590 globals_->host_mapping_rules.reset(new net::HostMappingRules());
615 if (command_line.HasSwitch(switches::kHostRules)) { 591 if (command_line.HasSwitch(switches::kHostRules)) {
616 TRACE_EVENT_BEGIN0("startup", "IOThread::InitAsync:SetRulesFromString"); 592 TRACE_EVENT_BEGIN0("startup", "IOThread::InitAsync:SetRulesFromString");
617 globals_->host_mapping_rules->SetRulesFromString( 593 globals_->host_mapping_rules->SetRulesFromString(
618 command_line.GetSwitchValueASCII(switches::kHostRules)); 594 command_line.GetSwitchValueASCII(switches::kHostRules));
619 TRACE_EVENT_END0("startup", "IOThread::InitAsync:SetRulesFromString"); 595 TRACE_EVENT_END0("startup", "IOThread::InitAsync:SetRulesFromString");
620 } 596 }
621 597
622 session_params_.host_mapping_rules = *globals_->host_mapping_rules.get(); 598 session_params_.host_mapping_rules = *globals_->host_mapping_rules.get();
(...skipping 24 matching lines...) Expand all
647 #endif 623 #endif
648 624
649 #if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) 625 #if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL)
650 // Record how common CPUs with broken NEON units are. See 626 // Record how common CPUs with broken NEON units are. See
651 // https://crbug.com/341598. 627 // https://crbug.com/341598.
652 crypto::EnsureOpenSSLInit(); 628 crypto::EnsureOpenSSLInit();
653 UMA_HISTOGRAM_BOOLEAN("Net.HasBrokenNEON", CRYPTO_has_broken_NEON()); 629 UMA_HISTOGRAM_BOOLEAN("Net.HasBrokenNEON", CRYPTO_has_broken_NEON());
654 #endif 630 #endif
655 631
656 ConstructSystemRequestContext(); 632 ConstructSystemRequestContext();
633
634 UpdateDnsClientEnabled();
657 } 635 }
658 636
659 void IOThread::CleanUp() { 637 void IOThread::CleanUp() {
660 base::debug::LeakTracker<SafeBrowsingURLRequestContext>::CheckForLeaks(); 638 base::debug::LeakTracker<SafeBrowsingURLRequestContext>::CheckForLeaks();
661 639
662 #if defined(USE_NSS_CERTS) 640 #if defined(USE_NSS_CERTS)
663 net::ShutdownNSSHttpIO(); 641 net::ShutdownNSSHttpIO();
664 #endif 642 #endif
665 643
666 system_url_request_context_getter_ = NULL; 644 system_url_request_context_getter_ = NULL;
667 645
668 // Unlink the ct_tree_tracker_ from the global cert_transparency_verifier 646 // Unlink the ct_tree_tracker_ from the global cert_transparency_verifier
669 // and unregister it from new STH notifications so it will take no actions 647 // and unregister it from new STH notifications so it will take no actions
670 // on anything observed during CleanUp process. 648 // on anything observed during CleanUp process.
671 // 649 //
672 // Null checks are just for tests that use TestingIOThreadState. 650 // Null checks are just for tests that use TestingIOThreadState.
673 if (globals()->cert_transparency_verifier) 651 if (globals()->system_request_context) {
674 globals()->cert_transparency_verifier->SetObserver(nullptr); 652 globals()
653 ->system_request_context->cert_transparency_verifier()
654 ->SetObserver(nullptr);
655 }
675 if (ct_tree_tracker_.get()) { 656 if (ct_tree_tracker_.get()) {
676 UnregisterSTHObserver(ct_tree_tracker_.get()); 657 UnregisterSTHObserver(ct_tree_tracker_.get());
677 ct_tree_tracker_.reset(); 658 ct_tree_tracker_.reset();
678 } 659 }
679 660
680 if (globals_->system_request_context) 661 if (globals_->system_request_context)
681 globals_->system_request_context->proxy_service()->OnShutdown(); 662 globals_->system_request_context->proxy_service()->OnShutdown();
682 663
683 // Release objects that the net::URLRequestContext could have been pointing 664 // Release objects that the net::URLRequestContext could have been pointing
684 // to. 665 // to.
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
735 void IOThread::UpdateNegotiateDisableCnameLookup() { 716 void IOThread::UpdateNegotiateDisableCnameLookup() {
736 globals_->http_auth_preferences->set_negotiate_disable_cname_lookup( 717 globals_->http_auth_preferences->set_negotiate_disable_cname_lookup(
737 negotiate_disable_cname_lookup_.GetValue()); 718 negotiate_disable_cname_lookup_.GetValue());
738 } 719 }
739 720
740 void IOThread::UpdateNegotiateEnablePort() { 721 void IOThread::UpdateNegotiateEnablePort() {
741 globals_->http_auth_preferences->set_negotiate_enable_port( 722 globals_->http_auth_preferences->set_negotiate_enable_port(
742 negotiate_enable_port_.GetValue()); 723 negotiate_enable_port_.GetValue());
743 } 724 }
744 725
745 void IOThread::CreateDefaultAuthHandlerFactory() { 726 std::unique_ptr<net::HttpAuthHandlerFactory>
727 IOThread::CreateDefaultAuthHandlerFactory(net::HostResolver* host_resolver) {
746 std::vector<std::string> supported_schemes = base::SplitString( 728 std::vector<std::string> supported_schemes = base::SplitString(
747 auth_schemes_, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); 729 auth_schemes_, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
748 globals_->http_auth_preferences.reset(new net::HttpAuthPreferences( 730 globals_->http_auth_preferences.reset(new net::HttpAuthPreferences(
749 supported_schemes 731 supported_schemes
750 #if defined(OS_POSIX) && !defined(OS_ANDROID) 732 #if defined(OS_POSIX) && !defined(OS_ANDROID)
751 , 733 ,
752 gssapi_library_name_ 734 gssapi_library_name_
753 #endif 735 #endif
754 #if defined(OS_CHROMEOS) 736 #if defined(OS_CHROMEOS)
755 , 737 ,
756 allow_gssapi_library_load_ 738 allow_gssapi_library_load_
757 #endif 739 #endif
758 )); 740 ));
759 UpdateServerWhitelist(); 741 UpdateServerWhitelist();
760 UpdateDelegateWhitelist(); 742 UpdateDelegateWhitelist();
761 UpdateNegotiateDisableCnameLookup(); 743 UpdateNegotiateDisableCnameLookup();
762 UpdateNegotiateEnablePort(); 744 UpdateNegotiateEnablePort();
763 #if defined(OS_ANDROID) 745 #if defined(OS_ANDROID)
764 UpdateAndroidAuthNegotiateAccountType(); 746 UpdateAndroidAuthNegotiateAccountType();
765 #endif 747 #endif
766 globals_->http_auth_handler_factory = 748
767 net::HttpAuthHandlerRegistryFactory::Create( 749 return net::HttpAuthHandlerRegistryFactory::Create(
768 globals_->http_auth_preferences.get(), globals_->host_resolver.get()); 750 globals_->http_auth_preferences.get(), host_resolver);
769 } 751 }
770 752
771 void IOThread::ClearHostCache( 753 void IOThread::ClearHostCache(
772 const base::Callback<bool(const std::string&)>& host_filter) { 754 const base::Callback<bool(const std::string&)>& host_filter) {
773 DCHECK_CURRENTLY_ON(BrowserThread::IO); 755 DCHECK_CURRENTLY_ON(BrowserThread::IO);
774 756
775 net::HostCache* host_cache = globals_->host_resolver->GetHostCache(); 757 if (!globals_->system_request_context)
758 return;
759
760 net::HostCache* host_cache =
761 globals_->system_request_context->host_resolver()->GetHostCache();
776 if (host_cache) 762 if (host_cache)
777 host_cache->ClearForHosts(host_filter); 763 host_cache->ClearForHosts(host_filter);
778 } 764 }
779 765
780 const net::HttpNetworkSession::Params& IOThread::NetworkSessionParams() const { 766 const net::HttpNetworkSession::Params& IOThread::NetworkSessionParams() const {
781 return session_params_; 767 return session_params_;
782 } 768 }
783 769
784 void IOThread::DisableQuic() { 770 void IOThread::DisableQuic() {
785 session_params_.enable_quic = false; 771 session_params_.enable_quic = false;
(...skipping 13 matching lines...) Expand all
799 785
800 void IOThread::ChangedToOnTheRecordOnIOThread() { 786 void IOThread::ChangedToOnTheRecordOnIOThread() {
801 DCHECK_CURRENTLY_ON(BrowserThread::IO); 787 DCHECK_CURRENTLY_ON(BrowserThread::IO);
802 788
803 // Clear the host cache to avoid showing entries from the OTR session 789 // Clear the host cache to avoid showing entries from the OTR session
804 // in about:net-internals. 790 // in about:net-internals.
805 ClearHostCache(base::Callback<bool(const std::string&)>()); 791 ClearHostCache(base::Callback<bool(const std::string&)>());
806 } 792 }
807 793
808 void IOThread::UpdateDnsClientEnabled() { 794 void IOThread::UpdateDnsClientEnabled() {
809 globals()->host_resolver->SetDnsClientEnabled(*dns_client_enabled_); 795 globals()->system_request_context->host_resolver()->SetDnsClientEnabled(
796 *dns_client_enabled_);
810 } 797 }
811 798
812 void IOThread::RegisterSTHObserver(net::ct::STHObserver* observer) { 799 void IOThread::RegisterSTHObserver(net::ct::STHObserver* observer) {
813 chrome_browser_net::GetGlobalSTHDistributor()->RegisterObserver(observer); 800 chrome_browser_net::GetGlobalSTHDistributor()->RegisterObserver(observer);
814 } 801 }
815 802
816 void IOThread::UnregisterSTHObserver(net::ct::STHObserver* observer) { 803 void IOThread::UnregisterSTHObserver(net::ct::STHObserver* observer) {
817 chrome_browser_net::GetGlobalSTHDistributor()->UnregisterObserver(observer); 804 chrome_browser_net::GetGlobalSTHDistributor()->UnregisterObserver(observer);
818 } 805 }
819 806
820 bool IOThread::WpadQuickCheckEnabled() const { 807 bool IOThread::WpadQuickCheckEnabled() const {
821 return quick_check_enabled_.GetValue(); 808 return quick_check_enabled_.GetValue();
822 } 809 }
823 810
824 bool IOThread::PacHttpsUrlStrippingEnabled() const { 811 bool IOThread::PacHttpsUrlStrippingEnabled() const {
825 return pac_https_url_stripping_enabled_.GetValue(); 812 return pac_https_url_stripping_enabled_.GetValue();
826 } 813 }
827 814
828 void IOThread::ConstructSystemRequestContext() { 815 void IOThread::ConstructSystemRequestContext() {
816 const base::CommandLine& command_line =
817 *base::CommandLine::ForCurrentProcess();
818
829 globals_->system_request_context = 819 globals_->system_request_context =
830 base::MakeUnique<SystemURLRequestContext>(); 820 base::MakeUnique<SystemURLRequestContext>();
831 net::URLRequestContext* context = globals_->system_request_context.get(); 821 net::URLRequestContext* context = globals_->system_request_context.get();
832 globals_->system_request_context_storage = 822 globals_->system_request_context_storage =
833 base::MakeUnique<net::URLRequestContextStorage>(context); 823 base::MakeUnique<net::URLRequestContextStorage>(context);
834 net::URLRequestContextStorage* context_storage = 824 net::URLRequestContextStorage* context_storage =
835 globals_->system_request_context_storage.get(); 825 globals_->system_request_context_storage.get();
836 826
837 context->set_network_quality_estimator( 827 context->set_network_quality_estimator(
838 globals_->network_quality_estimator.get()); 828 globals_->network_quality_estimator.get());
839 context->set_enable_brotli(globals_->enable_brotli); 829 context->set_enable_brotli(globals_->enable_brotli);
840 context->set_name("system"); 830 context->set_name("system");
841 831
842 context_storage->set_http_user_agent_settings( 832 context_storage->set_http_user_agent_settings(
843 base::MakeUnique<net::StaticHttpUserAgentSettings>(std::string(), 833 base::MakeUnique<net::StaticHttpUserAgentSettings>(std::string(),
844 GetUserAgent())); 834 GetUserAgent()));
845 std::unique_ptr<ChromeNetworkDelegate> chrome_network_delegate( 835 std::unique_ptr<ChromeNetworkDelegate> chrome_network_delegate(
846 new ChromeNetworkDelegate(extension_event_router_forwarder(), 836 new ChromeNetworkDelegate(extension_event_router_forwarder(),
847 &system_enable_referrers_)); 837 &system_enable_referrers_));
848 // By default, data usage is considered off the record. 838 // By default, data usage is considered off the record.
849 chrome_network_delegate->set_data_use_aggregator( 839 chrome_network_delegate->set_data_use_aggregator(
850 globals_->data_use_aggregator.get(), 840 globals_->data_use_aggregator.get(),
851 true /* is_data_usage_off_the_record */); 841 true /* is_data_usage_off_the_record */);
852 context_storage->set_network_delegate( 842 context_storage->set_network_delegate(
853 globals_->data_use_ascriber->CreateNetworkDelegate( 843 globals_->data_use_ascriber->CreateNetworkDelegate(
854 std::move(chrome_network_delegate), GetMetricsDataUseForwarder())); 844 std::move(chrome_network_delegate), GetMetricsDataUseForwarder()));
855 context->set_net_log(net_log_); 845 context->set_net_log(net_log_);
856 context->set_host_resolver(globals_->host_resolver.get()); 846 context_storage->set_host_resolver(CreateGlobalHostResolver(net_log_));
857 847
858 context_storage->set_ssl_config_service(GetSSLConfigService()); 848 context_storage->set_ssl_config_service(GetSSLConfigService());
859 context->set_http_auth_handler_factory( 849 context_storage->set_http_auth_handler_factory(
860 globals_->http_auth_handler_factory.get()); 850 CreateDefaultAuthHandlerFactory(context->host_resolver()));
861 851
862 // In-memory cookie store. 852 // In-memory cookie store.
863 context_storage->set_cookie_store( 853 context_storage->set_cookie_store(
864 content::CreateCookieStore(content::CookieStoreConfig())); 854 content::CreateCookieStore(content::CookieStoreConfig()));
865 // In-memory channel ID store. 855 // In-memory channel ID store.
866 context_storage->set_channel_id_service( 856 context_storage->set_channel_id_service(
867 base::MakeUnique<net::ChannelIDService>( 857 base::MakeUnique<net::ChannelIDService>(
868 new net::DefaultChannelIDStore(nullptr))); 858 new net::DefaultChannelIDStore(nullptr)));
869 context->cookie_store()->SetChannelIDServiceID( 859 context->cookie_store()->SetChannelIDServiceID(
870 context->channel_id_service()->GetUniqueID()); 860 context->channel_id_service()->GetUniqueID());
871 861
872 context_storage->set_transport_security_state( 862 context_storage->set_transport_security_state(
873 base::MakeUnique<net::TransportSecurityState>()); 863 base::MakeUnique<net::TransportSecurityState>());
874 864
875 context_storage->set_http_server_properties( 865 context_storage->set_http_server_properties(
876 base::MakeUnique<net::HttpServerPropertiesImpl>()); 866 base::MakeUnique<net::HttpServerPropertiesImpl>());
877 867
878 context->set_cert_verifier(globals_->cert_verifier.get()); 868 #if defined(OS_CHROMEOS)
879 context->set_cert_transparency_verifier( 869 // Creates a CertVerifyProc that doesn't allow any profile-provided certs.
880 globals_->cert_transparency_verifier.get()); 870 context_storage->set_cert_verifier(base::MakeUnique<net::CachingCertVerifier>(
871 base::MakeUnique<net::MultiThreadedCertVerifier>(
872 new chromeos::CertVerifyProcChromeOS())));
873 #else
874 context_storage->set_cert_verifier(
875 IgnoreErrorsCertVerifier::MaybeWrapCertVerifier(
876 command_line, net::CertVerifier::CreateDefault()));
877 UMA_HISTOGRAM_BOOLEAN(
878 "Net.Certificate.IgnoreCertificateErrorsSPKIListPresent",
879 command_line.HasSwitch(switches::kIgnoreCertificateErrorsSPKIList));
880 #endif
881
882 std::unique_ptr<net::MultiLogCTVerifier> ct_verifier =
883 base::MakeUnique<net::MultiLogCTVerifier>();
884 // Add built-in logs
885 ct_verifier->AddLogs(globals_->ct_logs);
886
887 // Register the ct_tree_tracker_ as observer for verified SCTs.
888 ct_verifier->SetObserver(ct_tree_tracker_.get());
889
890 context_storage->set_cert_transparency_verifier(std::move(ct_verifier));
881 891
882 context_storage->set_ct_policy_enforcer( 892 context_storage->set_ct_policy_enforcer(
883 base::MakeUnique<net::CTPolicyEnforcer>()); 893 base::MakeUnique<net::CTPolicyEnforcer>());
884 894
885 const base::CommandLine& command_line =
886 *base::CommandLine::ForCurrentProcess();
887 context_storage->set_proxy_service(ProxyServiceFactory::CreateProxyService( 895 context_storage->set_proxy_service(ProxyServiceFactory::CreateProxyService(
888 net_log_, context, context->network_delegate(), 896 net_log_, context, context->network_delegate(),
889 std::move(system_proxy_config_service_), command_line, 897 std::move(system_proxy_config_service_), command_line,
890 WpadQuickCheckEnabled(), PacHttpsUrlStrippingEnabled())); 898 WpadQuickCheckEnabled(), PacHttpsUrlStrippingEnabled()));
891 899
892 net::HttpNetworkSession::Context session_context; 900 net::HttpNetworkSession::Context session_context;
893 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents( 901 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents(
894 context, &session_context); 902 context, &session_context);
895 903
896 context_storage->set_http_network_session( 904 context_storage->set_http_network_session(
(...skipping 10 matching lines...) Expand all
907 base::MakeUnique<net::DataProtocolHandler>()); 915 base::MakeUnique<net::DataProtocolHandler>());
908 job_factory->SetProtocolHandler( 916 job_factory->SetProtocolHandler(
909 url::kFileScheme, 917 url::kFileScheme,
910 base::MakeUnique<net::FileProtocolHandler>( 918 base::MakeUnique<net::FileProtocolHandler>(
911 base::CreateTaskRunnerWithTraits( 919 base::CreateTaskRunnerWithTraits(
912 {base::MayBlock(), base::TaskPriority::USER_VISIBLE, 920 {base::MayBlock(), base::TaskPriority::USER_VISIBLE,
913 base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}))); 921 base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN})));
914 #if !BUILDFLAG(DISABLE_FTP_SUPPORT) 922 #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
915 job_factory->SetProtocolHandler( 923 job_factory->SetProtocolHandler(
916 url::kFtpScheme, 924 url::kFtpScheme,
917 net::FtpProtocolHandler::Create(globals_->host_resolver.get())); 925 net::FtpProtocolHandler::Create(context->host_resolver()));
918 #endif 926 #endif
919 927
920 context_storage->set_job_factory(std::move(job_factory)); 928 context_storage->set_job_factory(std::move(job_factory));
921 } 929 }
922 930
923 // static 931 // static
924 void IOThread::ConfigureParamsFromFieldTrialsAndCommandLine( 932 void IOThread::ConfigureParamsFromFieldTrialsAndCommandLine(
925 const base::CommandLine& command_line, 933 const base::CommandLine& command_line,
926 bool is_quic_allowed_by_policy, 934 bool is_quic_allowed_by_policy,
927 bool http_09_on_non_default_ports_enabled, 935 bool http_09_on_non_default_ports_enabled,
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1010 GetSwitchValueAsInt(command_line, switches::kTestingFixedHttpsPort); 1018 GetSwitchValueAsInt(command_line, switches::kTestingFixedHttpsPort);
1011 } 1019 }
1012 1020
1013 params->http_09_on_non_default_ports_enabled = 1021 params->http_09_on_non_default_ports_enabled =
1014 http_09_on_non_default_ports_enabled; 1022 http_09_on_non_default_ports_enabled;
1015 } 1023 }
1016 1024
1017 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() { 1025 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() {
1018 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread); 1026 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread);
1019 } 1027 }
OLDNEW
« no previous file with comments | « chrome/browser/io_thread.h ('k') | chrome/browser/profiles/off_the_record_profile_io_data.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698