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 600 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
611 | 611 |
612 CreateDefaultAuthHandlerFactory(); | 612 CreateDefaultAuthHandlerFactory(); |
613 globals_->dns_probe_service.reset(new chrome_browser_net::DnsProbeService()); | 613 globals_->dns_probe_service.reset(new chrome_browser_net::DnsProbeService()); |
614 globals_->host_mapping_rules.reset(new net::HostMappingRules()); | 614 globals_->host_mapping_rules.reset(new net::HostMappingRules()); |
615 if (command_line.HasSwitch(switches::kHostRules)) { | 615 if (command_line.HasSwitch(switches::kHostRules)) { |
616 TRACE_EVENT_BEGIN0("startup", "IOThread::InitAsync:SetRulesFromString"); | 616 TRACE_EVENT_BEGIN0("startup", "IOThread::InitAsync:SetRulesFromString"); |
617 globals_->host_mapping_rules->SetRulesFromString( | 617 globals_->host_mapping_rules->SetRulesFromString( |
618 command_line.GetSwitchValueASCII(switches::kHostRules)); | 618 command_line.GetSwitchValueASCII(switches::kHostRules)); |
619 TRACE_EVENT_END0("startup", "IOThread::InitAsync:SetRulesFromString"); | 619 TRACE_EVENT_END0("startup", "IOThread::InitAsync:SetRulesFromString"); |
620 } | 620 } |
621 params_.host_mapping_rules = *globals_->host_mapping_rules.get(); | 621 |
| 622 session_params_.host_mapping_rules = *globals_->host_mapping_rules.get(); |
622 globals_->enable_brotli = | 623 globals_->enable_brotli = |
623 base::FeatureList::IsEnabled(features::kBrotliEncoding); | 624 base::FeatureList::IsEnabled(features::kBrotliEncoding); |
624 params_.enable_token_binding = | 625 session_params_.enable_token_binding = |
625 base::FeatureList::IsEnabled(features::kTokenBinding); | 626 base::FeatureList::IsEnabled(features::kTokenBinding); |
626 | 627 |
627 // Check for OS support of TCP FastOpen, and turn it on for all connections if | 628 // Check for OS support of TCP FastOpen, and turn it on for all connections if |
628 // indicated by user. | 629 // indicated by user. |
629 // TODO(rch): Make the client socket factory a per-network session instance, | 630 // TODO(rch): Make the client socket factory a per-network session instance, |
630 // constructed from a NetworkSession::Params, to allow us to move this option | 631 // constructed from a NetworkSession::Params, to allow us to move this option |
631 // to IOThread::Globals & HttpNetworkSession::Params. | 632 // to IOThread::Globals & HttpNetworkSession::Params. |
632 bool always_enable_tfo_if_supported = | 633 bool always_enable_tfo_if_supported = |
633 command_line.HasSwitch(switches::kEnableTcpFastOpen); | 634 command_line.HasSwitch(switches::kEnableTcpFastOpen); |
634 net::CheckSupportAndMaybeEnableTCPFastOpen(always_enable_tfo_if_supported); | 635 net::CheckSupportAndMaybeEnableTCPFastOpen(always_enable_tfo_if_supported); |
635 | 636 |
636 ConfigureParamsFromFieldTrialsAndCommandLine( | 637 ConfigureParamsFromFieldTrialsAndCommandLine( |
637 command_line, is_quic_allowed_by_policy_, | 638 command_line, is_quic_allowed_by_policy_, |
638 http_09_on_non_default_ports_enabled_, ¶ms_); | 639 http_09_on_non_default_ports_enabled_, &session_params_); |
639 | 640 |
640 #if defined(OS_MACOSX) | 641 #if defined(OS_MACOSX) |
641 // Start observing Keychain events. This needs to be done on the UI thread, | 642 // Start observing Keychain events. This needs to be done on the UI thread, |
642 // as Keychain services requires a CFRunLoop. | 643 // as Keychain services requires a CFRunLoop. |
643 BrowserThread::PostTask(BrowserThread::UI, | 644 BrowserThread::PostTask(BrowserThread::UI, |
644 FROM_HERE, | 645 FROM_HERE, |
645 base::Bind(&ObserveKeychainEvents)); | 646 base::Bind(&ObserveKeychainEvents)); |
646 #endif | 647 #endif |
647 | 648 |
648 #if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) | 649 #if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
770 void IOThread::ClearHostCache( | 771 void IOThread::ClearHostCache( |
771 const base::Callback<bool(const std::string&)>& host_filter) { | 772 const base::Callback<bool(const std::string&)>& host_filter) { |
772 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 773 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
773 | 774 |
774 net::HostCache* host_cache = globals_->host_resolver->GetHostCache(); | 775 net::HostCache* host_cache = globals_->host_resolver->GetHostCache(); |
775 if (host_cache) | 776 if (host_cache) |
776 host_cache->ClearForHosts(host_filter); | 777 host_cache->ClearForHosts(host_filter); |
777 } | 778 } |
778 | 779 |
779 const net::HttpNetworkSession::Params& IOThread::NetworkSessionParams() const { | 780 const net::HttpNetworkSession::Params& IOThread::NetworkSessionParams() const { |
780 return params_; | 781 return session_params_; |
781 } | 782 } |
782 | 783 |
783 void IOThread::DisableQuic() { | 784 void IOThread::DisableQuic() { |
784 params_.enable_quic = false; | 785 session_params_.enable_quic = false; |
785 | 786 |
786 if (globals_->system_request_context_storage) | 787 if (globals_->system_request_context_storage) |
787 globals_->system_request_context_storage->http_network_session() | 788 globals_->system_request_context_storage->http_network_session() |
788 ->DisableQuic(); | 789 ->DisableQuic(); |
789 } | 790 } |
790 | 791 |
791 base::TimeTicks IOThread::creation_time() const { | 792 base::TimeTicks IOThread::creation_time() const { |
792 return creation_time_; | 793 return creation_time_; |
793 } | 794 } |
794 | 795 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
870 | 871 |
871 context_storage->set_transport_security_state( | 872 context_storage->set_transport_security_state( |
872 base::MakeUnique<net::TransportSecurityState>()); | 873 base::MakeUnique<net::TransportSecurityState>()); |
873 | 874 |
874 context_storage->set_http_server_properties( | 875 context_storage->set_http_server_properties( |
875 base::MakeUnique<net::HttpServerPropertiesImpl>()); | 876 base::MakeUnique<net::HttpServerPropertiesImpl>()); |
876 | 877 |
877 context->set_cert_verifier(globals_->cert_verifier.get()); | 878 context->set_cert_verifier(globals_->cert_verifier.get()); |
878 context->set_cert_transparency_verifier( | 879 context->set_cert_transparency_verifier( |
879 globals_->cert_transparency_verifier.get()); | 880 globals_->cert_transparency_verifier.get()); |
| 881 |
880 context_storage->set_ct_policy_enforcer( | 882 context_storage->set_ct_policy_enforcer( |
881 base::MakeUnique<net::CTPolicyEnforcer>()); | 883 base::MakeUnique<net::CTPolicyEnforcer>()); |
882 | 884 |
883 const base::CommandLine& command_line = | 885 const base::CommandLine& command_line = |
884 *base::CommandLine::ForCurrentProcess(); | 886 *base::CommandLine::ForCurrentProcess(); |
885 context_storage->set_proxy_service(ProxyServiceFactory::CreateProxyService( | 887 context_storage->set_proxy_service(ProxyServiceFactory::CreateProxyService( |
886 net_log_, context, context->network_delegate(), | 888 net_log_, context, context->network_delegate(), |
887 std::move(system_proxy_config_service_), command_line, | 889 std::move(system_proxy_config_service_), command_line, |
888 WpadQuickCheckEnabled(), PacHttpsUrlStrippingEnabled())); | 890 WpadQuickCheckEnabled(), PacHttpsUrlStrippingEnabled())); |
889 | 891 |
890 net::HttpNetworkSession::Params system_params(params_); | 892 net::HttpNetworkSession::Context session_context; |
891 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents( | 893 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents( |
892 context, &system_params); | 894 context, &session_context); |
893 | 895 |
894 context_storage->set_http_network_session( | 896 context_storage->set_http_network_session( |
895 base::MakeUnique<net::HttpNetworkSession>(system_params)); | 897 base::MakeUnique<net::HttpNetworkSession>(session_params_, |
| 898 session_context)); |
896 context_storage->set_http_transaction_factory( | 899 context_storage->set_http_transaction_factory( |
897 base::MakeUnique<net::HttpNetworkLayer>( | 900 base::MakeUnique<net::HttpNetworkLayer>( |
898 context_storage->http_network_session())); | 901 context_storage->http_network_session())); |
899 | 902 |
900 std::unique_ptr<net::URLRequestJobFactoryImpl> job_factory( | 903 std::unique_ptr<net::URLRequestJobFactoryImpl> job_factory( |
901 new net::URLRequestJobFactoryImpl()); | 904 new net::URLRequestJobFactoryImpl()); |
902 | 905 |
903 job_factory->SetProtocolHandler(url::kDataScheme, | 906 job_factory->SetProtocolHandler(url::kDataScheme, |
904 base::MakeUnique<net::DataProtocolHandler>()); | 907 base::MakeUnique<net::DataProtocolHandler>()); |
905 job_factory->SetProtocolHandler( | 908 job_factory->SetProtocolHandler( |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1007 GetSwitchValueAsInt(command_line, switches::kTestingFixedHttpsPort); | 1010 GetSwitchValueAsInt(command_line, switches::kTestingFixedHttpsPort); |
1008 } | 1011 } |
1009 | 1012 |
1010 params->http_09_on_non_default_ports_enabled = | 1013 params->http_09_on_non_default_ports_enabled = |
1011 http_09_on_non_default_ports_enabled; | 1014 http_09_on_non_default_ports_enabled; |
1012 } | 1015 } |
1013 | 1016 |
1014 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() { | 1017 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() { |
1015 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread); | 1018 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread); |
1016 } | 1019 } |
OLD | NEW |