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

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

Issue 2872133005: IOThread: Move more stuff into system context's URLRequestContextStore. (Closed)
Patch Set: Merge Created 3 years, 7 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 533 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 #endif // defined(OS_ANDROID) 544 #endif // defined(OS_ANDROID)
545 545
546 globals_->data_use_ascriber = 546 globals_->data_use_ascriber =
547 base::MakeUnique<data_use_measurement::ChromeDataUseAscriber>(); 547 base::MakeUnique<data_use_measurement::ChromeDataUseAscriber>();
548 548
549 globals_->data_use_aggregator.reset(new data_usage::DataUseAggregator( 549 globals_->data_use_aggregator.reset(new data_usage::DataUseAggregator(
550 std::unique_ptr<data_usage::DataUseAnnotator>( 550 std::unique_ptr<data_usage::DataUseAnnotator>(
551 new chrome_browser_data_usage::TabIdAnnotator()), 551 new chrome_browser_data_usage::TabIdAnnotator()),
552 std::move(data_use_amortizer))); 552 std::move(data_use_amortizer)));
553 553
554 std::unique_ptr<ChromeNetworkDelegate> chrome_network_delegate(
555 new ChromeNetworkDelegate(extension_event_router_forwarder(),
556 &system_enable_referrers_));
557 // By default, data usage is considered off the record.
558 chrome_network_delegate->set_data_use_aggregator(
559 globals_->data_use_aggregator.get(),
560 true /* is_data_usage_off_the_record */);
561
562 #if defined(OS_ANDROID) 554 #if defined(OS_ANDROID)
563 globals_->external_data_use_observer.reset( 555 globals_->external_data_use_observer.reset(
564 new chrome::android::ExternalDataUseObserver( 556 new chrome::android::ExternalDataUseObserver(
565 globals_->data_use_aggregator.get(), 557 globals_->data_use_aggregator.get(),
566 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), 558 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO),
567 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI))); 559 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI)));
568 #endif // defined(OS_ANDROID) 560 #endif // defined(OS_ANDROID)
569 561
570 globals_->system_network_delegate =
571 globals_->data_use_ascriber->CreateNetworkDelegate(
572 std::move(chrome_network_delegate), GetMetricsDataUseForwarder());
573
574 globals_->host_resolver = CreateGlobalHostResolver(net_log_); 562 globals_->host_resolver = CreateGlobalHostResolver(net_log_);
575 563
576 std::map<std::string, std::string> network_quality_estimator_params; 564 std::map<std::string, std::string> network_quality_estimator_params;
577 variations::GetVariationParams(kNetworkQualityEstimatorFieldTrialName, 565 variations::GetVariationParams(kNetworkQualityEstimatorFieldTrialName,
578 &network_quality_estimator_params); 566 &network_quality_estimator_params);
579 567
580 if (command_line.HasSwitch(switches::kForceEffectiveConnectionType)) { 568 if (command_line.HasSwitch(switches::kForceEffectiveConnectionType)) {
581 const std::string force_ect_value = 569 const std::string force_ect_value =
582 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 570 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
583 switches::kForceEffectiveConnectionType); 571 switches::kForceEffectiveConnectionType);
(...skipping 21 matching lines...) Expand all
605 UpdateDnsClientEnabled(); 593 UpdateDnsClientEnabled();
606 #if defined(OS_CHROMEOS) 594 #if defined(OS_CHROMEOS)
607 // Creates a CertVerifyProc that doesn't allow any profile-provided certs. 595 // Creates a CertVerifyProc that doesn't allow any profile-provided certs.
608 globals_->cert_verifier = base::MakeUnique<net::CachingCertVerifier>( 596 globals_->cert_verifier = base::MakeUnique<net::CachingCertVerifier>(
609 base::MakeUnique<net::MultiThreadedCertVerifier>( 597 base::MakeUnique<net::MultiThreadedCertVerifier>(
610 new chromeos::CertVerifyProcChromeOS())); 598 new chromeos::CertVerifyProcChromeOS()));
611 #else 599 #else
612 globals_->cert_verifier = net::CertVerifier::CreateDefault(); 600 globals_->cert_verifier = net::CertVerifier::CreateDefault();
613 #endif 601 #endif
614 602
615 globals_->transport_security_state.reset(new net::TransportSecurityState());
616
617 std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs( 603 std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs(
618 net::ct::CreateLogVerifiersForKnownLogs()); 604 net::ct::CreateLogVerifiersForKnownLogs());
619 605
620 globals_->ct_logs.assign(ct_logs.begin(), ct_logs.end()); 606 globals_->ct_logs.assign(ct_logs.begin(), ct_logs.end());
621 607
622 net::MultiLogCTVerifier* ct_verifier = new net::MultiLogCTVerifier(); 608 net::MultiLogCTVerifier* ct_verifier = new net::MultiLogCTVerifier();
623 globals_->cert_transparency_verifier.reset(ct_verifier); 609 globals_->cert_transparency_verifier.reset(ct_verifier);
624 // Add built-in logs 610 // Add built-in logs
625 ct_verifier->AddLogs(globals_->ct_logs); 611 ct_verifier->AddLogs(globals_->ct_logs);
626 612
627 ct_tree_tracker_.reset(new certificate_transparency::TreeStateTracker( 613 ct_tree_tracker_.reset(new certificate_transparency::TreeStateTracker(
628 globals_->ct_logs, net_log_)); 614 globals_->ct_logs, net_log_));
629 // Register the ct_tree_tracker_ as observer for new STHs. 615 // Register the ct_tree_tracker_ as observer for new STHs.
630 RegisterSTHObserver(ct_tree_tracker_.get()); 616 RegisterSTHObserver(ct_tree_tracker_.get());
631 // Register the ct_tree_tracker_ as observer for verified SCTs. 617 // Register the ct_tree_tracker_ as observer for verified SCTs.
632 globals_->cert_transparency_verifier->SetObserver(ct_tree_tracker_.get()); 618 globals_->cert_transparency_verifier->SetObserver(ct_tree_tracker_.get());
633 619
634 globals_->ct_policy_enforcer.reset(new net::CTPolicyEnforcer());
635 params_.ct_policy_enforcer = globals_->ct_policy_enforcer.get();
Randy Smith (Not in Mondays) 2017/05/11 18:05:42 I spent some time trying to convince myself that t
mmenke 2017/05/11 18:15:31 The last line in this method calls ConstructSystem
Randy Smith (Not in Mondays) 2017/05/11 21:06:10 The above doesn't seem relevant to me, since Profi
mmenke 2017/05/11 21:12:08 We call IOThread::Init when we create the IO threa
636
637 globals_->ssl_config_service = GetSSLConfigService();
638
639 CreateDefaultAuthHandlerFactory(); 620 CreateDefaultAuthHandlerFactory();
640 globals_->http_server_properties.reset(new net::HttpServerPropertiesImpl());
641 // For the ProxyScriptFetcher, we use a direct ProxyService. 621 // For the ProxyScriptFetcher, we use a direct ProxyService.
642 globals_->proxy_script_fetcher_proxy_service = 622 globals_->proxy_script_fetcher_proxy_service =
643 net::ProxyService::CreateDirectWithNetLog(net_log_); 623 net::ProxyService::CreateDirectWithNetLog(net_log_);
644 globals_->dns_probe_service.reset(new chrome_browser_net::DnsProbeService()); 624 globals_->dns_probe_service.reset(new chrome_browser_net::DnsProbeService());
645 globals_->host_mapping_rules.reset(new net::HostMappingRules()); 625 globals_->host_mapping_rules.reset(new net::HostMappingRules());
646 params_.host_mapping_rules = globals_->host_mapping_rules.get(); 626 params_.host_mapping_rules = globals_->host_mapping_rules.get();
647 globals_->http_user_agent_settings.reset(
648 new net::StaticHttpUserAgentSettings(std::string(), GetUserAgent()));
649 if (command_line.HasSwitch(switches::kHostRules)) { 627 if (command_line.HasSwitch(switches::kHostRules)) {
650 TRACE_EVENT_BEGIN0("startup", "IOThread::InitAsync:SetRulesFromString"); 628 TRACE_EVENT_BEGIN0("startup", "IOThread::InitAsync:SetRulesFromString");
651 globals_->host_mapping_rules->SetRulesFromString( 629 globals_->host_mapping_rules->SetRulesFromString(
652 command_line.GetSwitchValueASCII(switches::kHostRules)); 630 command_line.GetSwitchValueASCII(switches::kHostRules));
653 TRACE_EVENT_END0("startup", "IOThread::InitAsync:SetRulesFromString"); 631 TRACE_EVENT_END0("startup", "IOThread::InitAsync:SetRulesFromString");
654 } 632 }
655 globals_->enable_brotli = 633 globals_->enable_brotli =
656 base::FeatureList::IsEnabled(features::kBrotliEncoding); 634 base::FeatureList::IsEnabled(features::kBrotliEncoding);
657 params_.enable_token_binding = 635 params_.enable_token_binding =
658 base::FeatureList::IsEnabled(features::kTokenBinding); 636 base::FeatureList::IsEnabled(features::kTokenBinding);
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
864 globals_->system_request_context_storage = 842 globals_->system_request_context_storage =
865 base::MakeUnique<net::URLRequestContextStorage>(context); 843 base::MakeUnique<net::URLRequestContextStorage>(context);
866 net::URLRequestContextStorage* context_storage = 844 net::URLRequestContextStorage* context_storage =
867 globals_->system_request_context_storage.get(); 845 globals_->system_request_context_storage.get();
868 846
869 context->set_network_quality_estimator( 847 context->set_network_quality_estimator(
870 globals_->network_quality_estimator.get()); 848 globals_->network_quality_estimator.get());
871 context->set_enable_brotli(globals_->enable_brotli); 849 context->set_enable_brotli(globals_->enable_brotli);
872 context->set_name("system"); 850 context->set_name("system");
873 851
874 context->set_http_user_agent_settings( 852 context_storage->set_http_user_agent_settings(
875 globals_->http_user_agent_settings.get()); 853 base::MakeUnique<net::StaticHttpUserAgentSettings>(std::string(),
876 context->set_network_delegate(globals_->system_network_delegate.get()); 854 GetUserAgent()));
855 std::unique_ptr<ChromeNetworkDelegate> chrome_network_delegate(
856 new ChromeNetworkDelegate(extension_event_router_forwarder(),
857 &system_enable_referrers_));
858 // By default, data usage is considered off the record.
859 chrome_network_delegate->set_data_use_aggregator(
860 globals_->data_use_aggregator.get(),
861 true /* is_data_usage_off_the_record */);
862 context_storage->set_network_delegate(
863 globals_->data_use_ascriber->CreateNetworkDelegate(
864 std::move(chrome_network_delegate), GetMetricsDataUseForwarder()));
877 context->set_net_log(net_log_); 865 context->set_net_log(net_log_);
878 context->set_host_resolver(globals_->host_resolver.get()); 866 context->set_host_resolver(globals_->host_resolver.get());
879 867
880 context->set_ssl_config_service(globals_->ssl_config_service.get()); 868 context_storage->set_ssl_config_service(GetSSLConfigService());
881 context->set_http_auth_handler_factory( 869 context->set_http_auth_handler_factory(
882 globals_->http_auth_handler_factory.get()); 870 globals_->http_auth_handler_factory.get());
883 871
884 // In-memory cookie store. 872 // In-memory cookie store.
885 context_storage->set_cookie_store( 873 context_storage->set_cookie_store(
886 content::CreateCookieStore(content::CookieStoreConfig())); 874 content::CreateCookieStore(content::CookieStoreConfig()));
887 // In-memory channel ID store. 875 // In-memory channel ID store.
888 context_storage->set_channel_id_service( 876 context_storage->set_channel_id_service(
889 base::MakeUnique<net::ChannelIDService>( 877 base::MakeUnique<net::ChannelIDService>(
890 new net::DefaultChannelIDStore(nullptr))); 878 new net::DefaultChannelIDStore(nullptr)));
891 context->cookie_store()->SetChannelIDServiceID( 879 context->cookie_store()->SetChannelIDServiceID(
892 context->channel_id_service()->GetUniqueID()); 880 context->channel_id_service()->GetUniqueID());
893 881
894 context->set_transport_security_state( 882 context_storage->set_transport_security_state(
895 globals_->transport_security_state.get()); 883 base::MakeUnique<net::TransportSecurityState>());
896 884
897 context->set_http_server_properties(globals_->http_server_properties.get()); 885 context_storage->set_http_server_properties(
886 base::MakeUnique<net::HttpServerPropertiesImpl>());
898 887
899 context->set_cert_verifier(globals_->cert_verifier.get()); 888 context->set_cert_verifier(globals_->cert_verifier.get());
900 context->set_cert_transparency_verifier( 889 context->set_cert_transparency_verifier(
901 globals_->cert_transparency_verifier.get()); 890 globals_->cert_transparency_verifier.get());
902 context->set_ct_policy_enforcer(globals_->ct_policy_enforcer.get()); 891 context_storage->set_ct_policy_enforcer(
892 base::MakeUnique<net::CTPolicyEnforcer>());
903 893
904 TRACE_EVENT_BEGIN0("startup", 894 TRACE_EVENT_BEGIN0("startup",
905 "IOThread::Init:ProxyScriptFetcherRequestContext"); 895 "IOThread::Init:ProxyScriptFetcherRequestContext");
906 globals_->proxy_script_fetcher_context.reset( 896 globals_->proxy_script_fetcher_context.reset(
907 ConstructProxyScriptFetcherContext(globals_, params_, net_log_)); 897 ConstructProxyScriptFetcherContext(globals_, params_, net_log_));
908 TRACE_EVENT_END0("startup", 898 TRACE_EVENT_END0("startup",
909 "IOThread::Init:ProxyScriptFetcherRequestContext"); 899 "IOThread::Init:ProxyScriptFetcherRequestContext");
910 900
911 const base::CommandLine& command_line = 901 const base::CommandLine& command_line =
912 *base::CommandLine::ForCurrentProcess(); 902 *base::CommandLine::ForCurrentProcess();
913 context_storage->set_proxy_service(ProxyServiceFactory::CreateProxyService( 903 context_storage->set_proxy_service(ProxyServiceFactory::CreateProxyService(
914 net_log_, globals_->proxy_script_fetcher_context.get(), 904 net_log_, globals_->proxy_script_fetcher_context.get(),
915 globals_->system_network_delegate.get(), 905 context->network_delegate(), std::move(system_proxy_config_service_),
916 std::move(system_proxy_config_service_), command_line, 906 command_line, WpadQuickCheckEnabled(), PacHttpsUrlStrippingEnabled()));
917 WpadQuickCheckEnabled(), PacHttpsUrlStrippingEnabled()));
918 907
919 net::HttpNetworkSession::Params system_params(params_); 908 net::HttpNetworkSession::Params system_params(params_);
920 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents( 909 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents(
921 context, &system_params); 910 context, &system_params);
922 911
923 context_storage->set_http_network_session( 912 context_storage->set_http_network_session(
924 base::MakeUnique<net::HttpNetworkSession>(system_params)); 913 base::MakeUnique<net::HttpNetworkSession>(system_params));
925 context_storage->set_http_transaction_factory( 914 context_storage->set_http_transaction_factory(
926 base::MakeUnique<net::HttpNetworkLayer>( 915 base::MakeUnique<net::HttpNetworkLayer>(
927 context_storage->http_network_session())); 916 context_storage->http_network_session()));
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 // static 1016 // static
1028 net::URLRequestContext* IOThread::ConstructProxyScriptFetcherContext( 1017 net::URLRequestContext* IOThread::ConstructProxyScriptFetcherContext(
1029 IOThread::Globals* globals, 1018 IOThread::Globals* globals,
1030 const net::HttpNetworkSession::Params& params, 1019 const net::HttpNetworkSession::Params& params,
1031 net::NetLog* net_log) { 1020 net::NetLog* net_log) {
1032 net::URLRequestContext* context = new net::URLRequestContext; 1021 net::URLRequestContext* context = new net::URLRequestContext;
1033 context->set_net_log(net_log); 1022 context->set_net_log(net_log);
1034 context->set_host_resolver(globals->host_resolver.get()); 1023 context->set_host_resolver(globals->host_resolver.get());
1035 context->set_cert_verifier(globals->cert_verifier.get()); 1024 context->set_cert_verifier(globals->cert_verifier.get());
1036 context->set_transport_security_state( 1025 context->set_transport_security_state(
1037 globals->transport_security_state.get()); 1026 globals->system_request_context->transport_security_state());
1038 context->set_cert_transparency_verifier( 1027 context->set_cert_transparency_verifier(
1039 globals->cert_transparency_verifier.get()); 1028 globals->cert_transparency_verifier.get());
1040 context->set_ct_policy_enforcer(globals->ct_policy_enforcer.get()); 1029 context->set_ct_policy_enforcer(
1041 context->set_ssl_config_service(globals->ssl_config_service.get()); 1030 globals->system_request_context->ct_policy_enforcer());
1031 context->set_ssl_config_service(
1032 globals->system_request_context->ssl_config_service());
1042 context->set_http_auth_handler_factory( 1033 context->set_http_auth_handler_factory(
1043 globals->http_auth_handler_factory.get()); 1034 globals->http_auth_handler_factory.get());
1044 context->set_proxy_service(globals->proxy_script_fetcher_proxy_service.get()); 1035 context->set_proxy_service(globals->proxy_script_fetcher_proxy_service.get());
1045 1036
1046 context->set_job_factory( 1037 context->set_job_factory(
1047 globals->proxy_script_fetcher_url_request_job_factory.get()); 1038 globals->proxy_script_fetcher_url_request_job_factory.get());
1048 1039
1049 context->set_cookie_store(globals->system_request_context->cookie_store()); 1040 context->set_cookie_store(globals->system_request_context->cookie_store());
1050 context->set_channel_id_service( 1041 context->set_channel_id_service(
1051 globals->system_request_context->channel_id_service()); 1042 globals->system_request_context->channel_id_service());
1052 context->set_network_delegate(globals->system_network_delegate.get()); 1043 context->set_network_delegate(context->network_delegate());
1053 context->set_http_user_agent_settings( 1044 context->set_http_user_agent_settings(
1054 globals->http_user_agent_settings.get()); 1045 globals->system_request_context->http_user_agent_settings());
1055 context->set_http_server_properties(globals->http_server_properties.get()); 1046 context->set_http_server_properties(
1047 globals->system_request_context->http_server_properties());
1056 1048
1057 context->set_enable_brotli(globals->enable_brotli); 1049 context->set_enable_brotli(globals->enable_brotli);
1058 1050
1059 net::HttpNetworkSession::Params session_params(params); 1051 net::HttpNetworkSession::Params session_params(params);
1060 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents( 1052 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents(
1061 context, &session_params); 1053 context, &session_params);
1062 1054
1063 globals->proxy_script_fetcher_http_network_session.reset( 1055 globals->proxy_script_fetcher_http_network_session.reset(
1064 new net::HttpNetworkSession(session_params)); 1056 new net::HttpNetworkSession(session_params));
1065 globals->proxy_script_fetcher_http_transaction_factory.reset( 1057 globals->proxy_script_fetcher_http_transaction_factory.reset(
(...skipping 27 matching lines...) Expand all
1093 1085
1094 // TODO(rtenneti): We should probably use HttpServerPropertiesManager for the 1086 // TODO(rtenneti): We should probably use HttpServerPropertiesManager for the
1095 // system URLRequestContext too. There's no reason this should be tied to a 1087 // system URLRequestContext too. There's no reason this should be tied to a
1096 // profile. 1088 // profile.
1097 return context; 1089 return context;
1098 } 1090 }
1099 1091
1100 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() { 1092 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() {
1101 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread); 1093 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread);
1102 } 1094 }
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