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

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

Issue 2872133005: IOThread: Move more stuff into system context's URLRequestContextStore. (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
« 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 535 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 #endif // defined(OS_ANDROID) 546 #endif // defined(OS_ANDROID)
547 547
548 globals_->data_use_ascriber = 548 globals_->data_use_ascriber =
549 base::MakeUnique<data_use_measurement::ChromeDataUseAscriber>(); 549 base::MakeUnique<data_use_measurement::ChromeDataUseAscriber>();
550 550
551 globals_->data_use_aggregator.reset(new data_usage::DataUseAggregator( 551 globals_->data_use_aggregator.reset(new data_usage::DataUseAggregator(
552 std::unique_ptr<data_usage::DataUseAnnotator>( 552 std::unique_ptr<data_usage::DataUseAnnotator>(
553 new chrome_browser_data_usage::TabIdAnnotator()), 553 new chrome_browser_data_usage::TabIdAnnotator()),
554 std::move(data_use_amortizer))); 554 std::move(data_use_amortizer)));
555 555
556 std::unique_ptr<ChromeNetworkDelegate> chrome_network_delegate(
557 new ChromeNetworkDelegate(extension_event_router_forwarder(),
558 &system_enable_referrers_));
559 // By default, data usage is considered off the record.
560 chrome_network_delegate->set_data_use_aggregator(
561 globals_->data_use_aggregator.get(),
562 true /* is_data_usage_off_the_record */);
563
564 #if defined(OS_ANDROID) 556 #if defined(OS_ANDROID)
565 globals_->external_data_use_observer.reset( 557 globals_->external_data_use_observer.reset(
566 new chrome::android::ExternalDataUseObserver( 558 new chrome::android::ExternalDataUseObserver(
567 globals_->data_use_aggregator.get(), 559 globals_->data_use_aggregator.get(),
568 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), 560 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO),
569 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI))); 561 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI)));
570 #endif // defined(OS_ANDROID) 562 #endif // defined(OS_ANDROID)
571 563
572 globals_->system_network_delegate =
573 globals_->data_use_ascriber->CreateNetworkDelegate(
574 std::move(chrome_network_delegate), GetMetricsDataUseForwarder());
575
576 globals_->host_resolver = CreateGlobalHostResolver(net_log_); 564 globals_->host_resolver = CreateGlobalHostResolver(net_log_);
577 565
578 std::map<std::string, std::string> network_quality_estimator_params; 566 std::map<std::string, std::string> network_quality_estimator_params;
579 variations::GetVariationParams(kNetworkQualityEstimatorFieldTrialName, 567 variations::GetVariationParams(kNetworkQualityEstimatorFieldTrialName,
580 &network_quality_estimator_params); 568 &network_quality_estimator_params);
581 569
582 if (command_line.HasSwitch(switches::kForceEffectiveConnectionType)) { 570 if (command_line.HasSwitch(switches::kForceEffectiveConnectionType)) {
583 const std::string force_ect_value = 571 const std::string force_ect_value =
584 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 572 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
585 switches::kForceEffectiveConnectionType); 573 switches::kForceEffectiveConnectionType);
(...skipping 25 matching lines...) Expand all
611 base::MakeUnique<net::MultiThreadedCertVerifier>( 599 base::MakeUnique<net::MultiThreadedCertVerifier>(
612 new chromeos::CertVerifyProcChromeOS())); 600 new chromeos::CertVerifyProcChromeOS()));
613 #else 601 #else
614 globals_->cert_verifier = IgnoreErrorsCertVerifier::MaybeWrapCertVerifier( 602 globals_->cert_verifier = IgnoreErrorsCertVerifier::MaybeWrapCertVerifier(
615 command_line, net::CertVerifier::CreateDefault()); 603 command_line, net::CertVerifier::CreateDefault());
616 UMA_HISTOGRAM_BOOLEAN( 604 UMA_HISTOGRAM_BOOLEAN(
617 "Net.Certificate.IgnoreCertificateErrorsSPKIListPresent", 605 "Net.Certificate.IgnoreCertificateErrorsSPKIListPresent",
618 command_line.HasSwitch(switches::kIgnoreCertificateErrorsSPKIList)); 606 command_line.HasSwitch(switches::kIgnoreCertificateErrorsSPKIList));
619 #endif 607 #endif
620 608
621 globals_->transport_security_state.reset(new net::TransportSecurityState());
622
623 std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs( 609 std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs(
624 net::ct::CreateLogVerifiersForKnownLogs()); 610 net::ct::CreateLogVerifiersForKnownLogs());
625 611
626 globals_->ct_logs.assign(ct_logs.begin(), ct_logs.end()); 612 globals_->ct_logs.assign(ct_logs.begin(), ct_logs.end());
627 613
628 net::MultiLogCTVerifier* ct_verifier = new net::MultiLogCTVerifier(); 614 net::MultiLogCTVerifier* ct_verifier = new net::MultiLogCTVerifier();
629 globals_->cert_transparency_verifier.reset(ct_verifier); 615 globals_->cert_transparency_verifier.reset(ct_verifier);
630 // Add built-in logs 616 // Add built-in logs
631 ct_verifier->AddLogs(globals_->ct_logs); 617 ct_verifier->AddLogs(globals_->ct_logs);
632 618
633 ct_tree_tracker_.reset(new certificate_transparency::TreeStateTracker( 619 ct_tree_tracker_.reset(new certificate_transparency::TreeStateTracker(
634 globals_->ct_logs, net_log_)); 620 globals_->ct_logs, net_log_));
635 // Register the ct_tree_tracker_ as observer for new STHs. 621 // Register the ct_tree_tracker_ as observer for new STHs.
636 RegisterSTHObserver(ct_tree_tracker_.get()); 622 RegisterSTHObserver(ct_tree_tracker_.get());
637 // Register the ct_tree_tracker_ as observer for verified SCTs. 623 // Register the ct_tree_tracker_ as observer for verified SCTs.
638 globals_->cert_transparency_verifier->SetObserver(ct_tree_tracker_.get()); 624 globals_->cert_transparency_verifier->SetObserver(ct_tree_tracker_.get());
639 625
640 globals_->ct_policy_enforcer.reset(new net::CTPolicyEnforcer());
641 params_.ct_policy_enforcer = globals_->ct_policy_enforcer.get();
642
643 globals_->ssl_config_service = GetSSLConfigService();
644
645 CreateDefaultAuthHandlerFactory(); 626 CreateDefaultAuthHandlerFactory();
646 globals_->http_server_properties.reset(new net::HttpServerPropertiesImpl());
647 globals_->dns_probe_service.reset(new chrome_browser_net::DnsProbeService()); 627 globals_->dns_probe_service.reset(new chrome_browser_net::DnsProbeService());
648 globals_->host_mapping_rules.reset(new net::HostMappingRules()); 628 globals_->host_mapping_rules.reset(new net::HostMappingRules());
649 if (command_line.HasSwitch(switches::kHostRules)) { 629 if (command_line.HasSwitch(switches::kHostRules)) {
650 TRACE_EVENT_BEGIN0("startup", "IOThread::InitAsync:SetRulesFromString"); 630 TRACE_EVENT_BEGIN0("startup", "IOThread::InitAsync:SetRulesFromString");
651 globals_->host_mapping_rules->SetRulesFromString( 631 globals_->host_mapping_rules->SetRulesFromString(
652 command_line.GetSwitchValueASCII(switches::kHostRules)); 632 command_line.GetSwitchValueASCII(switches::kHostRules));
653 TRACE_EVENT_END0("startup", "IOThread::InitAsync:SetRulesFromString"); 633 TRACE_EVENT_END0("startup", "IOThread::InitAsync:SetRulesFromString");
654 } 634 }
655 params_.host_mapping_rules = *globals_->host_mapping_rules.get(); 635 params_.host_mapping_rules = *globals_->host_mapping_rules.get();
656 globals_->http_user_agent_settings.reset(
657 new net::StaticHttpUserAgentSettings(std::string(), GetUserAgent()));
658 globals_->enable_brotli = 636 globals_->enable_brotli =
659 base::FeatureList::IsEnabled(features::kBrotliEncoding); 637 base::FeatureList::IsEnabled(features::kBrotliEncoding);
660 params_.enable_token_binding = 638 params_.enable_token_binding =
661 base::FeatureList::IsEnabled(features::kTokenBinding); 639 base::FeatureList::IsEnabled(features::kTokenBinding);
662 640
663 // Check for OS support of TCP FastOpen, and turn it on for all connections if 641 // Check for OS support of TCP FastOpen, and turn it on for all connections if
664 // indicated by user. 642 // indicated by user.
665 // TODO(rch): Make the client socket factory a per-network session instance, 643 // TODO(rch): Make the client socket factory a per-network session instance,
666 // constructed from a NetworkSession::Params, to allow us to move this option 644 // constructed from a NetworkSession::Params, to allow us to move this option
667 // to IOThread::Globals & HttpNetworkSession::Params. 645 // to IOThread::Globals & HttpNetworkSession::Params.
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
867 globals_->system_request_context_storage = 845 globals_->system_request_context_storage =
868 base::MakeUnique<net::URLRequestContextStorage>(context); 846 base::MakeUnique<net::URLRequestContextStorage>(context);
869 net::URLRequestContextStorage* context_storage = 847 net::URLRequestContextStorage* context_storage =
870 globals_->system_request_context_storage.get(); 848 globals_->system_request_context_storage.get();
871 849
872 context->set_network_quality_estimator( 850 context->set_network_quality_estimator(
873 globals_->network_quality_estimator.get()); 851 globals_->network_quality_estimator.get());
874 context->set_enable_brotli(globals_->enable_brotli); 852 context->set_enable_brotli(globals_->enable_brotli);
875 context->set_name("system"); 853 context->set_name("system");
876 854
877 context->set_http_user_agent_settings( 855 context_storage->set_http_user_agent_settings(
878 globals_->http_user_agent_settings.get()); 856 base::MakeUnique<net::StaticHttpUserAgentSettings>(std::string(),
879 context->set_network_delegate(globals_->system_network_delegate.get()); 857 GetUserAgent()));
858 std::unique_ptr<ChromeNetworkDelegate> chrome_network_delegate(
859 new ChromeNetworkDelegate(extension_event_router_forwarder(),
860 &system_enable_referrers_));
861 // By default, data usage is considered off the record.
862 chrome_network_delegate->set_data_use_aggregator(
863 globals_->data_use_aggregator.get(),
864 true /* is_data_usage_off_the_record */);
865 context_storage->set_network_delegate(
866 globals_->data_use_ascriber->CreateNetworkDelegate(
867 std::move(chrome_network_delegate), GetMetricsDataUseForwarder()));
880 context->set_net_log(net_log_); 868 context->set_net_log(net_log_);
881 context->set_host_resolver(globals_->host_resolver.get()); 869 context->set_host_resolver(globals_->host_resolver.get());
882 870
883 context->set_ssl_config_service(globals_->ssl_config_service.get()); 871 context_storage->set_ssl_config_service(GetSSLConfigService());
884 context->set_http_auth_handler_factory( 872 context->set_http_auth_handler_factory(
885 globals_->http_auth_handler_factory.get()); 873 globals_->http_auth_handler_factory.get());
886 874
887 // In-memory cookie store. 875 // In-memory cookie store.
888 context_storage->set_cookie_store( 876 context_storage->set_cookie_store(
889 content::CreateCookieStore(content::CookieStoreConfig())); 877 content::CreateCookieStore(content::CookieStoreConfig()));
890 // In-memory channel ID store. 878 // In-memory channel ID store.
891 context_storage->set_channel_id_service( 879 context_storage->set_channel_id_service(
892 base::MakeUnique<net::ChannelIDService>( 880 base::MakeUnique<net::ChannelIDService>(
893 new net::DefaultChannelIDStore(nullptr))); 881 new net::DefaultChannelIDStore(nullptr)));
894 context->cookie_store()->SetChannelIDServiceID( 882 context->cookie_store()->SetChannelIDServiceID(
895 context->channel_id_service()->GetUniqueID()); 883 context->channel_id_service()->GetUniqueID());
896 884
897 context->set_transport_security_state( 885 context_storage->set_transport_security_state(
898 globals_->transport_security_state.get()); 886 base::MakeUnique<net::TransportSecurityState>());
899 887
900 context->set_http_server_properties(globals_->http_server_properties.get()); 888 context_storage->set_http_server_properties(
889 base::MakeUnique<net::HttpServerPropertiesImpl>());
901 890
902 context->set_cert_verifier(globals_->cert_verifier.get()); 891 context->set_cert_verifier(globals_->cert_verifier.get());
903 context->set_cert_transparency_verifier( 892 context->set_cert_transparency_verifier(
904 globals_->cert_transparency_verifier.get()); 893 globals_->cert_transparency_verifier.get());
905 context->set_ct_policy_enforcer(globals_->ct_policy_enforcer.get()); 894 context_storage->set_ct_policy_enforcer(
895 base::MakeUnique<net::CTPolicyEnforcer>());
906 896
907 const base::CommandLine& command_line = 897 const base::CommandLine& command_line =
908 *base::CommandLine::ForCurrentProcess(); 898 *base::CommandLine::ForCurrentProcess();
909 context_storage->set_proxy_service(ProxyServiceFactory::CreateProxyService( 899 context_storage->set_proxy_service(ProxyServiceFactory::CreateProxyService(
910 net_log_, context, globals_->system_network_delegate.get(), 900 net_log_, context, context->network_delegate(),
911 std::move(system_proxy_config_service_), command_line, 901 std::move(system_proxy_config_service_), command_line,
912 WpadQuickCheckEnabled(), PacHttpsUrlStrippingEnabled())); 902 WpadQuickCheckEnabled(), PacHttpsUrlStrippingEnabled()));
913 903
914 net::HttpNetworkSession::Params system_params(params_); 904 net::HttpNetworkSession::Params system_params(params_);
915 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents( 905 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents(
916 context, &system_params); 906 context, &system_params);
917 907
918 context_storage->set_http_network_session( 908 context_storage->set_http_network_session(
919 base::MakeUnique<net::HttpNetworkSession>(system_params)); 909 base::MakeUnique<net::HttpNetworkSession>(system_params));
920 context_storage->set_http_transaction_factory( 910 context_storage->set_http_transaction_factory(
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
1031 GetSwitchValueAsInt(command_line, switches::kTestingFixedHttpsPort); 1021 GetSwitchValueAsInt(command_line, switches::kTestingFixedHttpsPort);
1032 } 1022 }
1033 1023
1034 params->http_09_on_non_default_ports_enabled = 1024 params->http_09_on_non_default_ports_enabled =
1035 http_09_on_non_default_ports_enabled; 1025 http_09_on_non_default_ports_enabled;
1036 } 1026 }
1037 1027
1038 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() { 1028 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() {
1039 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread); 1029 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread);
1040 } 1030 }
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