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/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 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 #include "net/ssl/channel_id_service.h" | 101 #include "net/ssl/channel_id_service.h" |
102 #include "net/ssl/default_channel_id_store.h" | 102 #include "net/ssl/default_channel_id_store.h" |
103 #include "net/url_request/data_protocol_handler.h" | 103 #include "net/url_request/data_protocol_handler.h" |
104 #include "net/url_request/file_protocol_handler.h" | 104 #include "net/url_request/file_protocol_handler.h" |
105 #include "net/url_request/ftp_protocol_handler.h" | 105 #include "net/url_request/ftp_protocol_handler.h" |
106 #include "net/url_request/static_http_user_agent_settings.h" | 106 #include "net/url_request/static_http_user_agent_settings.h" |
107 #include "net/url_request/url_fetcher.h" | 107 #include "net/url_request/url_fetcher.h" |
108 #include "net/url_request/url_request_context.h" | 108 #include "net/url_request/url_request_context.h" |
109 #include "net/url_request/url_request_context_builder.h" | 109 #include "net/url_request/url_request_context_builder.h" |
110 #include "net/url_request/url_request_context_getter.h" | 110 #include "net/url_request/url_request_context_getter.h" |
| 111 #include "net/url_request/url_request_context_storage.h" |
111 #include "net/url_request/url_request_job_factory_impl.h" | 112 #include "net/url_request/url_request_job_factory_impl.h" |
112 #include "url/url_constants.h" | 113 #include "url/url_constants.h" |
113 | 114 |
114 #if BUILDFLAG(ENABLE_EXTENSIONS) | 115 #if BUILDFLAG(ENABLE_EXTENSIONS) |
115 #include "chrome/browser/extensions/event_router_forwarder.h" | 116 #include "chrome/browser/extensions/event_router_forwarder.h" |
116 #endif | 117 #endif |
117 | 118 |
118 #if defined(USE_NSS_CERTS) | 119 #if defined(USE_NSS_CERTS) |
119 #include "net/cert_net/nss_ocsp.h" | 120 #include "net/cert_net/nss_ocsp.h" |
120 #endif | 121 #endif |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 SystemURLRequestContext() { | 191 SystemURLRequestContext() { |
191 #if defined(USE_NSS_CERTS) | 192 #if defined(USE_NSS_CERTS) |
192 net::SetURLRequestContextForNSSHttpIO(this); | 193 net::SetURLRequestContextForNSSHttpIO(this); |
193 #endif | 194 #endif |
194 #if defined(OS_ANDROID) | 195 #if defined(OS_ANDROID) |
195 net::CertVerifyProcAndroid::SetCertNetFetcher( | 196 net::CertVerifyProcAndroid::SetCertNetFetcher( |
196 net::CreateCertNetFetcher(this)); | 197 net::CreateCertNetFetcher(this)); |
197 #endif | 198 #endif |
198 } | 199 } |
199 | 200 |
200 private: | |
201 ~SystemURLRequestContext() override { | 201 ~SystemURLRequestContext() override { |
202 AssertNoURLRequests(); | 202 AssertNoURLRequests(); |
203 #if defined(USE_NSS_CERTS) | 203 #if defined(USE_NSS_CERTS) |
204 net::SetURLRequestContextForNSSHttpIO(NULL); | 204 net::SetURLRequestContextForNSSHttpIO(NULL); |
205 #endif | 205 #endif |
206 | 206 |
207 #if defined(OS_ANDROID) | 207 #if defined(OS_ANDROID) |
208 net::CertVerifyProcAndroid::ShutdownCertNetFetcher(); | 208 net::CertVerifyProcAndroid::ShutdownCertNetFetcher(); |
209 #endif | 209 #endif |
210 } | 210 } |
| 211 |
| 212 private: |
| 213 DISALLOW_COPY_AND_ASSIGN(SystemURLRequestContext); |
211 }; | 214 }; |
212 | 215 |
213 std::unique_ptr<net::HostResolver> CreateGlobalHostResolver( | 216 std::unique_ptr<net::HostResolver> CreateGlobalHostResolver( |
214 net::NetLog* net_log) { | 217 net::NetLog* net_log) { |
215 TRACE_EVENT0("startup", "IOThread::CreateGlobalHostResolver"); | 218 TRACE_EVENT0("startup", "IOThread::CreateGlobalHostResolver"); |
216 const base::CommandLine& command_line = | 219 const base::CommandLine& command_line = |
217 *base::CommandLine::ForCurrentProcess(); | 220 *base::CommandLine::ForCurrentProcess(); |
218 | 221 |
219 net::HostResolver::Options options; | 222 net::HostResolver::Options options; |
220 | 223 |
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
631 globals_->ct_policy_enforcer.reset(new net::CTPolicyEnforcer()); | 634 globals_->ct_policy_enforcer.reset(new net::CTPolicyEnforcer()); |
632 params_.ct_policy_enforcer = globals_->ct_policy_enforcer.get(); | 635 params_.ct_policy_enforcer = globals_->ct_policy_enforcer.get(); |
633 | 636 |
634 globals_->ssl_config_service = GetSSLConfigService(); | 637 globals_->ssl_config_service = GetSSLConfigService(); |
635 | 638 |
636 CreateDefaultAuthHandlerFactory(); | 639 CreateDefaultAuthHandlerFactory(); |
637 globals_->http_server_properties.reset(new net::HttpServerPropertiesImpl()); | 640 globals_->http_server_properties.reset(new net::HttpServerPropertiesImpl()); |
638 // For the ProxyScriptFetcher, we use a direct ProxyService. | 641 // For the ProxyScriptFetcher, we use a direct ProxyService. |
639 globals_->proxy_script_fetcher_proxy_service = | 642 globals_->proxy_script_fetcher_proxy_service = |
640 net::ProxyService::CreateDirectWithNetLog(net_log_); | 643 net::ProxyService::CreateDirectWithNetLog(net_log_); |
641 // In-memory cookie store. | |
642 globals_->system_cookie_store = | |
643 content::CreateCookieStore(content::CookieStoreConfig()); | |
644 // In-memory channel ID store. | |
645 globals_->system_channel_id_service.reset( | |
646 new net::ChannelIDService(new net::DefaultChannelIDStore(NULL))); | |
647 globals_->system_cookie_store->SetChannelIDServiceID( | |
648 globals_->system_channel_id_service->GetUniqueID()); | |
649 globals_->dns_probe_service.reset(new chrome_browser_net::DnsProbeService()); | 644 globals_->dns_probe_service.reset(new chrome_browser_net::DnsProbeService()); |
650 globals_->host_mapping_rules.reset(new net::HostMappingRules()); | 645 globals_->host_mapping_rules.reset(new net::HostMappingRules()); |
651 params_.host_mapping_rules = globals_->host_mapping_rules.get(); | 646 params_.host_mapping_rules = globals_->host_mapping_rules.get(); |
652 globals_->http_user_agent_settings.reset( | 647 globals_->http_user_agent_settings.reset( |
653 new net::StaticHttpUserAgentSettings(std::string(), GetUserAgent())); | 648 new net::StaticHttpUserAgentSettings(std::string(), GetUserAgent())); |
654 if (command_line.HasSwitch(switches::kHostRules)) { | 649 if (command_line.HasSwitch(switches::kHostRules)) { |
655 TRACE_EVENT_BEGIN0("startup", "IOThread::InitAsync:SetRulesFromString"); | 650 TRACE_EVENT_BEGIN0("startup", "IOThread::InitAsync:SetRulesFromString"); |
656 globals_->host_mapping_rules->SetRulesFromString( | 651 globals_->host_mapping_rules->SetRulesFromString( |
657 command_line.GetSwitchValueASCII(switches::kHostRules)); | 652 command_line.GetSwitchValueASCII(switches::kHostRules)); |
658 TRACE_EVENT_END0("startup", "IOThread::InitAsync:SetRulesFromString"); | 653 TRACE_EVENT_END0("startup", "IOThread::InitAsync:SetRulesFromString"); |
659 } | 654 } |
660 globals_->enable_brotli = | 655 globals_->enable_brotli = |
661 base::FeatureList::IsEnabled(features::kBrotliEncoding); | 656 base::FeatureList::IsEnabled(features::kBrotliEncoding); |
662 params_.enable_token_binding = | 657 params_.enable_token_binding = |
663 base::FeatureList::IsEnabled(features::kTokenBinding); | 658 base::FeatureList::IsEnabled(features::kTokenBinding); |
664 | 659 |
665 // Check for OS support of TCP FastOpen, and turn it on for all connections if | 660 // Check for OS support of TCP FastOpen, and turn it on for all connections if |
666 // indicated by user. | 661 // indicated by user. |
667 // TODO(rch): Make the client socket factory a per-network session instance, | 662 // TODO(rch): Make the client socket factory a per-network session instance, |
668 // constructed from a NetworkSession::Params, to allow us to move this option | 663 // constructed from a NetworkSession::Params, to allow us to move this option |
669 // to IOThread::Globals & HttpNetworkSession::Params. | 664 // to IOThread::Globals & HttpNetworkSession::Params. |
670 bool always_enable_tfo_if_supported = | 665 bool always_enable_tfo_if_supported = |
671 command_line.HasSwitch(switches::kEnableTcpFastOpen); | 666 command_line.HasSwitch(switches::kEnableTcpFastOpen); |
672 net::CheckSupportAndMaybeEnableTCPFastOpen(always_enable_tfo_if_supported); | 667 net::CheckSupportAndMaybeEnableTCPFastOpen(always_enable_tfo_if_supported); |
673 | 668 |
674 ConfigureParamsFromFieldTrialsAndCommandLine( | 669 ConfigureParamsFromFieldTrialsAndCommandLine( |
675 command_line, is_quic_allowed_by_policy_, | 670 command_line, is_quic_allowed_by_policy_, |
676 http_09_on_non_default_ports_enabled_, ¶ms_); | 671 http_09_on_non_default_ports_enabled_, ¶ms_); |
677 | 672 |
678 TRACE_EVENT_BEGIN0("startup", | |
679 "IOThread::Init:ProxyScriptFetcherRequestContext"); | |
680 globals_->proxy_script_fetcher_context.reset( | |
681 ConstructProxyScriptFetcherContext(globals_, params_, net_log_)); | |
682 TRACE_EVENT_END0("startup", | |
683 "IOThread::Init:ProxyScriptFetcherRequestContext"); | |
684 | |
685 #if defined(OS_MACOSX) | 673 #if defined(OS_MACOSX) |
686 // Start observing Keychain events. This needs to be done on the UI thread, | 674 // Start observing Keychain events. This needs to be done on the UI thread, |
687 // as Keychain services requires a CFRunLoop. | 675 // as Keychain services requires a CFRunLoop. |
688 BrowserThread::PostTask(BrowserThread::UI, | 676 BrowserThread::PostTask(BrowserThread::UI, |
689 FROM_HERE, | 677 FROM_HERE, |
690 base::Bind(&ObserveKeychainEvents)); | 678 base::Bind(&ObserveKeychainEvents)); |
691 #endif | 679 #endif |
692 | 680 |
693 #if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) | 681 #if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) |
694 // Record how common CPUs with broken NEON units are. See | 682 // Record how common CPUs with broken NEON units are. See |
695 // https://crbug.com/341598. | 683 // https://crbug.com/341598. |
696 crypto::EnsureOpenSSLInit(); | 684 crypto::EnsureOpenSSLInit(); |
697 UMA_HISTOGRAM_BOOLEAN("Net.HasBrokenNEON", CRYPTO_has_broken_NEON()); | 685 UMA_HISTOGRAM_BOOLEAN("Net.HasBrokenNEON", CRYPTO_has_broken_NEON()); |
698 #endif | 686 #endif |
699 | 687 |
700 globals_->system_proxy_service = ProxyServiceFactory::CreateProxyService( | 688 ConstructSystemRequestContext(); |
701 net_log_, globals_->proxy_script_fetcher_context.get(), | |
702 globals_->system_network_delegate.get(), | |
703 std::move(system_proxy_config_service_), command_line, | |
704 WpadQuickCheckEnabled(), PacHttpsUrlStrippingEnabled()); | |
705 | |
706 globals_->system_request_context.reset( | |
707 ConstructSystemRequestContext(globals_, params_, net_log_)); | |
708 } | 689 } |
709 | 690 |
710 void IOThread::CleanUp() { | 691 void IOThread::CleanUp() { |
711 base::debug::LeakTracker<SafeBrowsingURLRequestContext>::CheckForLeaks(); | 692 base::debug::LeakTracker<SafeBrowsingURLRequestContext>::CheckForLeaks(); |
712 | 693 |
713 #if defined(USE_NSS_CERTS) | 694 #if defined(USE_NSS_CERTS) |
714 net::ShutdownNSSHttpIO(); | 695 net::ShutdownNSSHttpIO(); |
715 #endif | 696 #endif |
716 | 697 |
717 system_url_request_context_getter_ = NULL; | 698 system_url_request_context_getter_ = NULL; |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
825 host_cache->ClearForHosts(host_filter); | 806 host_cache->ClearForHosts(host_filter); |
826 } | 807 } |
827 | 808 |
828 const net::HttpNetworkSession::Params& IOThread::NetworkSessionParams() const { | 809 const net::HttpNetworkSession::Params& IOThread::NetworkSessionParams() const { |
829 return params_; | 810 return params_; |
830 } | 811 } |
831 | 812 |
832 void IOThread::DisableQuic() { | 813 void IOThread::DisableQuic() { |
833 params_.enable_quic = false; | 814 params_.enable_quic = false; |
834 | 815 |
835 if (globals_->system_http_network_session) | 816 if (globals_->system_request_context_storage) |
836 globals_->system_http_network_session->DisableQuic(); | 817 globals_->system_request_context_storage->http_network_session() |
| 818 ->DisableQuic(); |
837 | 819 |
838 if (globals_->proxy_script_fetcher_http_network_session) | 820 if (globals_->proxy_script_fetcher_http_network_session) |
839 globals_->proxy_script_fetcher_http_network_session->DisableQuic(); | 821 globals_->proxy_script_fetcher_http_network_session->DisableQuic(); |
840 } | 822 } |
841 | 823 |
842 base::TimeTicks IOThread::creation_time() const { | 824 base::TimeTicks IOThread::creation_time() const { |
843 return creation_time_; | 825 return creation_time_; |
844 } | 826 } |
845 | 827 |
846 net::SSLConfigService* IOThread::GetSSLConfigService() { | 828 net::SSLConfigService* IOThread::GetSSLConfigService() { |
(...skipping 21 matching lines...) Expand all Loading... |
868 } | 850 } |
869 | 851 |
870 bool IOThread::WpadQuickCheckEnabled() const { | 852 bool IOThread::WpadQuickCheckEnabled() const { |
871 return quick_check_enabled_.GetValue(); | 853 return quick_check_enabled_.GetValue(); |
872 } | 854 } |
873 | 855 |
874 bool IOThread::PacHttpsUrlStrippingEnabled() const { | 856 bool IOThread::PacHttpsUrlStrippingEnabled() const { |
875 return pac_https_url_stripping_enabled_.GetValue(); | 857 return pac_https_url_stripping_enabled_.GetValue(); |
876 } | 858 } |
877 | 859 |
878 // static | 860 void IOThread::ConstructSystemRequestContext() { |
879 net::URLRequestContext* IOThread::ConstructSystemRequestContext( | 861 globals_->system_request_context = |
880 IOThread::Globals* globals, | 862 base::MakeUnique<SystemURLRequestContext>(); |
881 const net::HttpNetworkSession::Params& params, | 863 net::URLRequestContext* context = globals_->system_request_context.get(); |
882 net::NetLog* net_log) { | 864 globals_->system_request_context_storage = |
883 net::URLRequestContext* context = new SystemURLRequestContext; | 865 base::MakeUnique<net::URLRequestContextStorage>(context); |
| 866 net::URLRequestContextStorage* context_storage = |
| 867 globals_->system_request_context_storage.get(); |
884 | 868 |
885 context->set_network_quality_estimator( | 869 context->set_network_quality_estimator( |
886 globals->network_quality_estimator.get()); | 870 globals_->network_quality_estimator.get()); |
887 context->set_enable_brotli(globals->enable_brotli); | 871 context->set_enable_brotli(globals_->enable_brotli); |
888 context->set_name("system"); | 872 context->set_name("system"); |
889 | 873 |
890 context->set_http_user_agent_settings( | 874 context->set_http_user_agent_settings( |
891 globals->http_user_agent_settings.get()); | 875 globals_->http_user_agent_settings.get()); |
892 context->set_network_delegate(globals->system_network_delegate.get()); | 876 context->set_network_delegate(globals_->system_network_delegate.get()); |
893 context->set_net_log(net_log); | 877 context->set_net_log(net_log_); |
894 context->set_host_resolver(globals->host_resolver.get()); | 878 context->set_host_resolver(globals_->host_resolver.get()); |
895 context->set_proxy_service(globals->system_proxy_service.get()); | 879 |
896 context->set_ssl_config_service(globals->ssl_config_service.get()); | 880 context->set_ssl_config_service(globals_->ssl_config_service.get()); |
897 context->set_http_auth_handler_factory( | 881 context->set_http_auth_handler_factory( |
898 globals->http_auth_handler_factory.get()); | 882 globals_->http_auth_handler_factory.get()); |
899 | 883 |
900 context->set_cookie_store(globals->system_cookie_store.get()); | 884 // In-memory cookie store. |
901 context->set_channel_id_service( | 885 context_storage->set_cookie_store( |
902 globals->system_channel_id_service.get()); | 886 content::CreateCookieStore(content::CookieStoreConfig())); |
| 887 // In-memory channel ID store. |
| 888 context_storage->set_channel_id_service( |
| 889 base::MakeUnique<net::ChannelIDService>( |
| 890 new net::DefaultChannelIDStore(nullptr))); |
| 891 context->cookie_store()->SetChannelIDServiceID( |
| 892 context->channel_id_service()->GetUniqueID()); |
| 893 |
903 context->set_transport_security_state( | 894 context->set_transport_security_state( |
904 globals->transport_security_state.get()); | 895 globals_->transport_security_state.get()); |
905 | 896 |
906 context->set_http_server_properties(globals->http_server_properties.get()); | 897 context->set_http_server_properties(globals_->http_server_properties.get()); |
907 | 898 |
908 context->set_cert_verifier(globals->cert_verifier.get()); | 899 context->set_cert_verifier(globals_->cert_verifier.get()); |
909 context->set_cert_transparency_verifier( | 900 context->set_cert_transparency_verifier( |
910 globals->cert_transparency_verifier.get()); | 901 globals_->cert_transparency_verifier.get()); |
911 context->set_ct_policy_enforcer(globals->ct_policy_enforcer.get()); | 902 context->set_ct_policy_enforcer(globals_->ct_policy_enforcer.get()); |
912 | 903 |
913 net::HttpNetworkSession::Params system_params(params); | 904 TRACE_EVENT_BEGIN0("startup", |
| 905 "IOThread::Init:ProxyScriptFetcherRequestContext"); |
| 906 globals_->proxy_script_fetcher_context.reset( |
| 907 ConstructProxyScriptFetcherContext(globals_, params_, net_log_)); |
| 908 TRACE_EVENT_END0("startup", |
| 909 "IOThread::Init:ProxyScriptFetcherRequestContext"); |
| 910 |
| 911 const base::CommandLine& command_line = |
| 912 *base::CommandLine::ForCurrentProcess(); |
| 913 context_storage->set_proxy_service(ProxyServiceFactory::CreateProxyService( |
| 914 net_log_, globals_->proxy_script_fetcher_context.get(), |
| 915 globals_->system_network_delegate.get(), |
| 916 std::move(system_proxy_config_service_), command_line, |
| 917 WpadQuickCheckEnabled(), PacHttpsUrlStrippingEnabled())); |
| 918 |
| 919 net::HttpNetworkSession::Params system_params(params_); |
914 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents( | 920 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents( |
915 context, &system_params); | 921 context, &system_params); |
916 | 922 |
917 globals->system_http_network_session.reset( | 923 context_storage->set_http_network_session( |
918 new net::HttpNetworkSession(system_params)); | 924 base::MakeUnique<net::HttpNetworkSession>(system_params)); |
919 globals->system_http_transaction_factory.reset( | 925 context_storage->set_http_transaction_factory( |
920 new net::HttpNetworkLayer(globals->system_http_network_session.get())); | 926 base::MakeUnique<net::HttpNetworkLayer>( |
| 927 context_storage->http_network_session())); |
921 | 928 |
922 context->set_http_transaction_factory( | 929 context_storage->set_job_factory( |
923 globals->system_http_transaction_factory.get()); | 930 base::MakeUnique<net::URLRequestJobFactoryImpl>()); |
924 | |
925 globals->system_url_request_job_factory.reset( | |
926 new net::URLRequestJobFactoryImpl()); | |
927 context->set_job_factory(globals->system_url_request_job_factory.get()); | |
928 | |
929 return context; | |
930 } | 931 } |
931 | 932 |
932 // static | 933 // static |
933 void IOThread::ConfigureParamsFromFieldTrialsAndCommandLine( | 934 void IOThread::ConfigureParamsFromFieldTrialsAndCommandLine( |
934 const base::CommandLine& command_line, | 935 const base::CommandLine& command_line, |
935 bool is_quic_allowed_by_policy, | 936 bool is_quic_allowed_by_policy, |
936 bool http_09_on_non_default_ports_enabled, | 937 bool http_09_on_non_default_ports_enabled, |
937 net::HttpNetworkSession::Params* params) { | 938 net::HttpNetworkSession::Params* params) { |
938 std::string quic_user_agent_id = chrome::GetChannelString(); | 939 std::string quic_user_agent_id = chrome::GetChannelString(); |
939 if (!quic_user_agent_id.empty()) | 940 if (!quic_user_agent_id.empty()) |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1038 globals->cert_transparency_verifier.get()); | 1039 globals->cert_transparency_verifier.get()); |
1039 context->set_ct_policy_enforcer(globals->ct_policy_enforcer.get()); | 1040 context->set_ct_policy_enforcer(globals->ct_policy_enforcer.get()); |
1040 context->set_ssl_config_service(globals->ssl_config_service.get()); | 1041 context->set_ssl_config_service(globals->ssl_config_service.get()); |
1041 context->set_http_auth_handler_factory( | 1042 context->set_http_auth_handler_factory( |
1042 globals->http_auth_handler_factory.get()); | 1043 globals->http_auth_handler_factory.get()); |
1043 context->set_proxy_service(globals->proxy_script_fetcher_proxy_service.get()); | 1044 context->set_proxy_service(globals->proxy_script_fetcher_proxy_service.get()); |
1044 | 1045 |
1045 context->set_job_factory( | 1046 context->set_job_factory( |
1046 globals->proxy_script_fetcher_url_request_job_factory.get()); | 1047 globals->proxy_script_fetcher_url_request_job_factory.get()); |
1047 | 1048 |
1048 context->set_cookie_store(globals->system_cookie_store.get()); | 1049 context->set_cookie_store(globals->system_request_context->cookie_store()); |
1049 context->set_channel_id_service( | 1050 context->set_channel_id_service( |
1050 globals->system_channel_id_service.get()); | 1051 globals->system_request_context->channel_id_service()); |
1051 context->set_network_delegate(globals->system_network_delegate.get()); | 1052 context->set_network_delegate(globals->system_network_delegate.get()); |
1052 context->set_http_user_agent_settings( | 1053 context->set_http_user_agent_settings( |
1053 globals->http_user_agent_settings.get()); | 1054 globals->http_user_agent_settings.get()); |
1054 context->set_http_server_properties(globals->http_server_properties.get()); | 1055 context->set_http_server_properties(globals->http_server_properties.get()); |
1055 | 1056 |
1056 context->set_enable_brotli(globals->enable_brotli); | 1057 context->set_enable_brotli(globals->enable_brotli); |
1057 | 1058 |
1058 net::HttpNetworkSession::Params session_params(params); | 1059 net::HttpNetworkSession::Params session_params(params); |
1059 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents( | 1060 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents( |
1060 context, &session_params); | 1061 context, &session_params); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1092 | 1093 |
1093 // TODO(rtenneti): We should probably use HttpServerPropertiesManager for the | 1094 // TODO(rtenneti): We should probably use HttpServerPropertiesManager for the |
1094 // system URLRequestContext too. There's no reason this should be tied to a | 1095 // system URLRequestContext too. There's no reason this should be tied to a |
1095 // profile. | 1096 // profile. |
1096 return context; | 1097 return context; |
1097 } | 1098 } |
1098 | 1099 |
1099 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() { | 1100 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() { |
1100 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread); | 1101 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread); |
1101 } | 1102 } |
OLD | NEW |