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

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

Issue 2910643003: Move more SystemURLRequestContext members into its ContextStorage (Closed)
Patch Set: Fix Merge 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
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());
Randy Smith (Not in Mondays) 2017/06/07 19:28:17 Why not move this with the ct_verifier code move?
mmenke 2017/06/07 21:06:03 Because these aren't owned by (or pointed to by) t
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::HttpAuthHandlerRegistryFactory>
727 IOThread::CreateDefaultAuthHandlerFactory() {
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(),
751 globals_->system_request_context->host_resolver());
769 } 752 }
770 753
771 void IOThread::ClearHostCache( 754 void IOThread::ClearHostCache(
772 const base::Callback<bool(const std::string&)>& host_filter) { 755 const base::Callback<bool(const std::string&)>& host_filter) {
773 DCHECK_CURRENTLY_ON(BrowserThread::IO); 756 DCHECK_CURRENTLY_ON(BrowserThread::IO);
774 757
775 net::HostCache* host_cache = globals_->host_resolver->GetHostCache(); 758 if (!globals_->system_request_context)
759 return;
760
761 net::HostCache* host_cache =
762 globals_->system_request_context->host_resolver()->GetHostCache();
776 if (host_cache) 763 if (host_cache)
777 host_cache->ClearForHosts(host_filter); 764 host_cache->ClearForHosts(host_filter);
778 } 765 }
779 766
780 const net::HttpNetworkSession::Params& IOThread::NetworkSessionParams() const { 767 const net::HttpNetworkSession::Params& IOThread::NetworkSessionParams() const {
781 return session_params_; 768 return session_params_;
782 } 769 }
783 770
784 void IOThread::DisableQuic() { 771 void IOThread::DisableQuic() {
785 session_params_.enable_quic = false; 772 session_params_.enable_quic = false;
(...skipping 13 matching lines...) Expand all
799 786
800 void IOThread::ChangedToOnTheRecordOnIOThread() { 787 void IOThread::ChangedToOnTheRecordOnIOThread() {
801 DCHECK_CURRENTLY_ON(BrowserThread::IO); 788 DCHECK_CURRENTLY_ON(BrowserThread::IO);
802 789
803 // Clear the host cache to avoid showing entries from the OTR session 790 // Clear the host cache to avoid showing entries from the OTR session
804 // in about:net-internals. 791 // in about:net-internals.
805 ClearHostCache(base::Callback<bool(const std::string&)>()); 792 ClearHostCache(base::Callback<bool(const std::string&)>());
806 } 793 }
807 794
808 void IOThread::UpdateDnsClientEnabled() { 795 void IOThread::UpdateDnsClientEnabled() {
809 globals()->host_resolver->SetDnsClientEnabled(*dns_client_enabled_); 796 globals()->system_request_context->host_resolver()->SetDnsClientEnabled(
797 *dns_client_enabled_);
810 } 798 }
811 799
812 void IOThread::RegisterSTHObserver(net::ct::STHObserver* observer) { 800 void IOThread::RegisterSTHObserver(net::ct::STHObserver* observer) {
813 chrome_browser_net::GetGlobalSTHDistributor()->RegisterObserver(observer); 801 chrome_browser_net::GetGlobalSTHDistributor()->RegisterObserver(observer);
814 } 802 }
815 803
816 void IOThread::UnregisterSTHObserver(net::ct::STHObserver* observer) { 804 void IOThread::UnregisterSTHObserver(net::ct::STHObserver* observer) {
817 chrome_browser_net::GetGlobalSTHDistributor()->UnregisterObserver(observer); 805 chrome_browser_net::GetGlobalSTHDistributor()->UnregisterObserver(observer);
818 } 806 }
819 807
820 bool IOThread::WpadQuickCheckEnabled() const { 808 bool IOThread::WpadQuickCheckEnabled() const {
821 return quick_check_enabled_.GetValue(); 809 return quick_check_enabled_.GetValue();
822 } 810 }
823 811
824 bool IOThread::PacHttpsUrlStrippingEnabled() const { 812 bool IOThread::PacHttpsUrlStrippingEnabled() const {
825 return pac_https_url_stripping_enabled_.GetValue(); 813 return pac_https_url_stripping_enabled_.GetValue();
826 } 814 }
827 815
828 void IOThread::ConstructSystemRequestContext() { 816 void IOThread::ConstructSystemRequestContext() {
817 const base::CommandLine& command_line =
818 *base::CommandLine::ForCurrentProcess();
819
829 globals_->system_request_context = 820 globals_->system_request_context =
830 base::MakeUnique<SystemURLRequestContext>(); 821 base::MakeUnique<SystemURLRequestContext>();
831 net::URLRequestContext* context = globals_->system_request_context.get(); 822 net::URLRequestContext* context = globals_->system_request_context.get();
832 globals_->system_request_context_storage = 823 globals_->system_request_context_storage =
833 base::MakeUnique<net::URLRequestContextStorage>(context); 824 base::MakeUnique<net::URLRequestContextStorage>(context);
834 net::URLRequestContextStorage* context_storage = 825 net::URLRequestContextStorage* context_storage =
835 globals_->system_request_context_storage.get(); 826 globals_->system_request_context_storage.get();
836 827
837 context->set_network_quality_estimator( 828 context->set_network_quality_estimator(
838 globals_->network_quality_estimator.get()); 829 globals_->network_quality_estimator.get());
839 context->set_enable_brotli(globals_->enable_brotli); 830 context->set_enable_brotli(globals_->enable_brotli);
840 context->set_name("system"); 831 context->set_name("system");
841 832
842 context_storage->set_http_user_agent_settings( 833 context_storage->set_http_user_agent_settings(
843 base::MakeUnique<net::StaticHttpUserAgentSettings>(std::string(), 834 base::MakeUnique<net::StaticHttpUserAgentSettings>(std::string(),
844 GetUserAgent())); 835 GetUserAgent()));
845 std::unique_ptr<ChromeNetworkDelegate> chrome_network_delegate( 836 std::unique_ptr<ChromeNetworkDelegate> chrome_network_delegate(
846 new ChromeNetworkDelegate(extension_event_router_forwarder(), 837 new ChromeNetworkDelegate(extension_event_router_forwarder(),
847 &system_enable_referrers_)); 838 &system_enable_referrers_));
848 // By default, data usage is considered off the record. 839 // By default, data usage is considered off the record.
849 chrome_network_delegate->set_data_use_aggregator( 840 chrome_network_delegate->set_data_use_aggregator(
850 globals_->data_use_aggregator.get(), 841 globals_->data_use_aggregator.get(),
851 true /* is_data_usage_off_the_record */); 842 true /* is_data_usage_off_the_record */);
852 context_storage->set_network_delegate( 843 context_storage->set_network_delegate(
853 globals_->data_use_ascriber->CreateNetworkDelegate( 844 globals_->data_use_ascriber->CreateNetworkDelegate(
854 std::move(chrome_network_delegate), GetMetricsDataUseForwarder())); 845 std::move(chrome_network_delegate), GetMetricsDataUseForwarder()));
855 context->set_net_log(net_log_); 846 context->set_net_log(net_log_);
856 context->set_host_resolver(globals_->host_resolver.get()); 847 context_storage->set_host_resolver(CreateGlobalHostResolver(net_log_));
857 848
858 context_storage->set_ssl_config_service(GetSSLConfigService()); 849 context_storage->set_ssl_config_service(GetSSLConfigService());
859 context->set_http_auth_handler_factory( 850 context_storage->set_http_auth_handler_factory(
860 globals_->http_auth_handler_factory.get()); 851 CreateDefaultAuthHandlerFactory());
Randy Smith (Not in Mondays) 2017/06/07 19:28:17 Would you be willing to either put in a comment th
mmenke 2017/06/07 21:06:03 Did the latter (Was planning to do it in the next
861 852
862 // In-memory cookie store. 853 // In-memory cookie store.
863 context_storage->set_cookie_store( 854 context_storage->set_cookie_store(
864 content::CreateCookieStore(content::CookieStoreConfig())); 855 content::CreateCookieStore(content::CookieStoreConfig()));
865 // In-memory channel ID store. 856 // In-memory channel ID store.
866 context_storage->set_channel_id_service( 857 context_storage->set_channel_id_service(
867 base::MakeUnique<net::ChannelIDService>( 858 base::MakeUnique<net::ChannelIDService>(
868 new net::DefaultChannelIDStore(nullptr))); 859 new net::DefaultChannelIDStore(nullptr)));
869 context->cookie_store()->SetChannelIDServiceID( 860 context->cookie_store()->SetChannelIDServiceID(
870 context->channel_id_service()->GetUniqueID()); 861 context->channel_id_service()->GetUniqueID());
871 862
872 context_storage->set_transport_security_state( 863 context_storage->set_transport_security_state(
873 base::MakeUnique<net::TransportSecurityState>()); 864 base::MakeUnique<net::TransportSecurityState>());
874 865
875 context_storage->set_http_server_properties( 866 context_storage->set_http_server_properties(
876 base::MakeUnique<net::HttpServerPropertiesImpl>()); 867 base::MakeUnique<net::HttpServerPropertiesImpl>());
877 868
878 context->set_cert_verifier(globals_->cert_verifier.get()); 869 #if defined(OS_CHROMEOS)
879 context->set_cert_transparency_verifier( 870 // Creates a CertVerifyProc that doesn't allow any profile-provided certs.
880 globals_->cert_transparency_verifier.get()); 871 context_storage->set_cert_verifier(base::MakeUnique<net::CachingCertVerifier>(
872 base::MakeUnique<net::MultiThreadedCertVerifier>(
873 new chromeos::CertVerifyProcChromeOS())));
874 #else
875 context_storage->set_cert_verifier(
876 IgnoreErrorsCertVerifier::MaybeWrapCertVerifier(
877 command_line, net::CertVerifier::CreateDefault()));
878 UMA_HISTOGRAM_BOOLEAN(
879 "Net.Certificate.IgnoreCertificateErrorsSPKIListPresent",
880 command_line.HasSwitch(switches::kIgnoreCertificateErrorsSPKIList));
881 #endif
882
883 std::unique_ptr<net::MultiLogCTVerifier> ct_verifier =
884 base::MakeUnique<net::MultiLogCTVerifier>();
885 // Add built-in logs
886 ct_verifier->AddLogs(globals_->ct_logs);
887
888 // Register the ct_tree_tracker_ as observer for verified SCTs.
889 ct_verifier->SetObserver(ct_tree_tracker_.get());
890
891 context_storage->set_cert_transparency_verifier(std::move(ct_verifier));
881 892
882 context_storage->set_ct_policy_enforcer( 893 context_storage->set_ct_policy_enforcer(
883 base::MakeUnique<net::CTPolicyEnforcer>()); 894 base::MakeUnique<net::CTPolicyEnforcer>());
884 895
885 const base::CommandLine& command_line =
886 *base::CommandLine::ForCurrentProcess();
887 context_storage->set_proxy_service(ProxyServiceFactory::CreateProxyService( 896 context_storage->set_proxy_service(ProxyServiceFactory::CreateProxyService(
888 net_log_, context, context->network_delegate(), 897 net_log_, context, context->network_delegate(),
889 std::move(system_proxy_config_service_), command_line, 898 std::move(system_proxy_config_service_), command_line,
890 WpadQuickCheckEnabled(), PacHttpsUrlStrippingEnabled())); 899 WpadQuickCheckEnabled(), PacHttpsUrlStrippingEnabled()));
891 900
892 net::HttpNetworkSession::Context session_context; 901 net::HttpNetworkSession::Context session_context;
893 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents( 902 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents(
894 context, &session_context); 903 context, &session_context);
895 904
896 context_storage->set_http_network_session( 905 context_storage->set_http_network_session(
(...skipping 10 matching lines...) Expand all
907 base::MakeUnique<net::DataProtocolHandler>()); 916 base::MakeUnique<net::DataProtocolHandler>());
908 job_factory->SetProtocolHandler( 917 job_factory->SetProtocolHandler(
909 url::kFileScheme, 918 url::kFileScheme,
910 base::MakeUnique<net::FileProtocolHandler>( 919 base::MakeUnique<net::FileProtocolHandler>(
911 base::CreateTaskRunnerWithTraits( 920 base::CreateTaskRunnerWithTraits(
912 {base::MayBlock(), base::TaskPriority::USER_VISIBLE, 921 {base::MayBlock(), base::TaskPriority::USER_VISIBLE,
913 base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}))); 922 base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN})));
914 #if !BUILDFLAG(DISABLE_FTP_SUPPORT) 923 #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
915 job_factory->SetProtocolHandler( 924 job_factory->SetProtocolHandler(
916 url::kFtpScheme, 925 url::kFtpScheme,
917 net::FtpProtocolHandler::Create(globals_->host_resolver.get())); 926 net::FtpProtocolHandler::Create(context->host_resolver()));
918 #endif 927 #endif
919 928
920 context_storage->set_job_factory(std::move(job_factory)); 929 context_storage->set_job_factory(std::move(job_factory));
921 } 930 }
922 931
923 // static 932 // static
924 void IOThread::ConfigureParamsFromFieldTrialsAndCommandLine( 933 void IOThread::ConfigureParamsFromFieldTrialsAndCommandLine(
925 const base::CommandLine& command_line, 934 const base::CommandLine& command_line,
926 bool is_quic_allowed_by_policy, 935 bool is_quic_allowed_by_policy,
927 bool http_09_on_non_default_ports_enabled, 936 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); 1019 GetSwitchValueAsInt(command_line, switches::kTestingFixedHttpsPort);
1011 } 1020 }
1012 1021
1013 params->http_09_on_non_default_ports_enabled = 1022 params->http_09_on_non_default_ports_enabled =
1014 http_09_on_non_default_ports_enabled; 1023 http_09_on_non_default_ports_enabled;
1015 } 1024 }
1016 1025
1017 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() { 1026 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() {
1018 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread); 1027 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread);
1019 } 1028 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698