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

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

Issue 2978443002: Make ProfileIOData use URLRequestContextBuilder (Closed)
Patch Set: Merge Created 3 years, 5 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 769 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 } 780 }
781 781
782 bool IOThread::WpadQuickCheckEnabled() const { 782 bool IOThread::WpadQuickCheckEnabled() const {
783 return quick_check_enabled_.GetValue(); 783 return quick_check_enabled_.GetValue();
784 } 784 }
785 785
786 bool IOThread::PacHttpsUrlStrippingEnabled() const { 786 bool IOThread::PacHttpsUrlStrippingEnabled() const {
787 return pac_https_url_stripping_enabled_.GetValue(); 787 return pac_https_url_stripping_enabled_.GetValue();
788 } 788 }
789 789
790 void IOThread::ConstructSystemRequestContext() { 790 void IOThread::SetUpProxyConfigService(
791 net::URLRequestContextBuilderMojo* builder,
792 std::unique_ptr<net::ProxyConfigService> proxy_config_service) const {
791 const base::CommandLine& command_line = 793 const base::CommandLine& command_line =
792 *base::CommandLine::ForCurrentProcess(); 794 *base::CommandLine::ForCurrentProcess();
795
796 // TODO(eroman): Figure out why this doesn't work in single-process mode.
797 // Should be possible now that a private isolate is used.
798 // http://crbug.com/474654
799 if (!command_line.HasSwitch(switches::kWinHttpProxyResolver)) {
800 if (command_line.HasSwitch(switches::kSingleProcess)) {
801 LOG(ERROR) << "Cannot use V8 Proxy resolver in single process mode.";
802 } else {
803 builder->set_mojo_proxy_resolver_factory(
804 ChromeMojoProxyResolverFactory::GetInstance());
805 }
806 }
807
808 builder->set_pac_quick_check_enabled(WpadQuickCheckEnabled());
809 builder->set_pac_sanitize_url_policy(
810 PacHttpsUrlStrippingEnabled()
811 ? net::ProxyService::SanitizeUrlPolicy::SAFE
812 : net::ProxyService::SanitizeUrlPolicy::UNSAFE);
813 #if defined(OS_CHROMEOS)
814 builder->set_dhcp_fetcher_factory(
815 base::MakeUnique<chromeos::DhcpProxyScriptFetcherFactoryChromeos>());
816 #endif
817 builder->set_proxy_config_service(std::move(proxy_config_service));
818 }
819
820 void IOThread::ConstructSystemRequestContext() {
793 std::unique_ptr<net::URLRequestContextBuilderMojo> builder = 821 std::unique_ptr<net::URLRequestContextBuilderMojo> builder =
794 base::MakeUnique<net::URLRequestContextBuilderMojo>(); 822 base::MakeUnique<net::URLRequestContextBuilderMojo>();
795 823
796 builder->set_network_quality_estimator( 824 builder->set_network_quality_estimator(
797 globals_->network_quality_estimator.get()); 825 globals_->network_quality_estimator.get());
798 builder->set_enable_brotli(globals_->enable_brotli); 826 builder->set_enable_brotli(globals_->enable_brotli);
799 builder->set_name("system"); 827 builder->set_name("system");
800 828
801 builder->set_user_agent(GetUserAgent()); 829 builder->set_user_agent(GetUserAgent());
802 std::unique_ptr<ChromeNetworkDelegate> chrome_network_delegate( 830 std::unique_ptr<ChromeNetworkDelegate> chrome_network_delegate(
(...skipping 15 matching lines...) Expand all
818 CreateDefaultAuthHandlerFactory(host_resolver.get())); 846 CreateDefaultAuthHandlerFactory(host_resolver.get()));
819 847
820 builder->set_host_resolver(std::move(host_resolver)); 848 builder->set_host_resolver(std::move(host_resolver));
821 849
822 #if defined(OS_CHROMEOS) 850 #if defined(OS_CHROMEOS)
823 // Creates a CertVerifyProc that doesn't allow any profile-provided certs. 851 // Creates a CertVerifyProc that doesn't allow any profile-provided certs.
824 builder->SetCertVerifier(base::MakeUnique<net::CachingCertVerifier>( 852 builder->SetCertVerifier(base::MakeUnique<net::CachingCertVerifier>(
825 base::MakeUnique<net::MultiThreadedCertVerifier>( 853 base::MakeUnique<net::MultiThreadedCertVerifier>(
826 new chromeos::CertVerifyProcChromeOS()))); 854 new chromeos::CertVerifyProcChromeOS())));
827 #else 855 #else
856 const base::CommandLine& command_line =
857 *base::CommandLine::ForCurrentProcess();
828 builder->SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier( 858 builder->SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier(
829 command_line, net::CertVerifier::CreateDefault())); 859 command_line, net::CertVerifier::CreateDefault()));
830 UMA_HISTOGRAM_BOOLEAN( 860 UMA_HISTOGRAM_BOOLEAN(
831 "Net.Certificate.IgnoreCertificateErrorsSPKIListPresent", 861 "Net.Certificate.IgnoreCertificateErrorsSPKIListPresent",
832 command_line.HasSwitch(switches::kIgnoreCertificateErrorsSPKIList)); 862 command_line.HasSwitch(switches::kIgnoreCertificateErrorsSPKIList));
833 #endif 863 #endif
834 864
835 std::unique_ptr<net::MultiLogCTVerifier> ct_verifier = 865 std::unique_ptr<net::MultiLogCTVerifier> ct_verifier =
836 base::MakeUnique<net::MultiLogCTVerifier>(); 866 base::MakeUnique<net::MultiLogCTVerifier>();
837 // Add built-in logs 867 // Add built-in logs
838 ct_verifier->AddLogs(globals_->ct_logs); 868 ct_verifier->AddLogs(globals_->ct_logs);
839 869
840 // Register the ct_tree_tracker_ as observer for verified SCTs. 870 // Register the ct_tree_tracker_ as observer for verified SCTs.
841 ct_verifier->SetObserver(ct_tree_tracker_.get()); 871 ct_verifier->SetObserver(ct_tree_tracker_.get());
842 872
843 builder->set_ct_verifier(std::move(ct_verifier)); 873 builder->set_ct_verifier(std::move(ct_verifier));
844 874
845 // TODO(eroman): Figure out why this doesn't work in single-process mode. 875 SetUpProxyConfigService(builder.get(),
846 // Should be possible now that a private isolate is used. 876 std::move(system_proxy_config_service_));
847 // http://crbug.com/474654
848 if (!command_line.HasSwitch(switches::kWinHttpProxyResolver)) {
849 if (command_line.HasSwitch(switches::kSingleProcess)) {
850 LOG(ERROR) << "Cannot use V8 Proxy resolver in single process mode.";
851 } else {
852 builder->set_mojo_proxy_resolver_factory(
853 ChromeMojoProxyResolverFactory::GetInstance());
854 }
855 }
856
857 builder->set_pac_quick_check_enabled(WpadQuickCheckEnabled());
858 builder->set_pac_sanitize_url_policy(
859 PacHttpsUrlStrippingEnabled()
860 ? net::ProxyService::SanitizeUrlPolicy::SAFE
861 : net::ProxyService::SanitizeUrlPolicy::UNSAFE);
862 #if defined(OS_CHROMEOS)
863 builder->set_dhcp_fetcher_factory(
864 base::MakeUnique<chromeos::DhcpProxyScriptFetcherFactoryChromeos>());
865 #endif
866 builder->set_proxy_config_service(std::move(system_proxy_config_service_));
867 877
868 builder->set_http_network_session_params(session_params_); 878 builder->set_http_network_session_params(session_params_);
869 879
870 builder->set_data_enabled(true); 880 builder->set_data_enabled(true);
871 builder->set_file_enabled(true); 881 builder->set_file_enabled(true);
872 #if !BUILDFLAG(DISABLE_FTP_SUPPORT) 882 #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
873 builder->set_ftp_enabled(true); 883 builder->set_ftp_enabled(true);
874 #endif 884 #endif
875 885
876 builder->DisableHttpCache(); 886 builder->DisableHttpCache();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
911 if (command_line.HasSwitch(switches::kIgnoreUrlFetcherCertRequests)) 921 if (command_line.HasSwitch(switches::kIgnoreUrlFetcherCertRequests))
912 net::URLFetcher::SetIgnoreCertificateRequests(true); 922 net::URLFetcher::SetIgnoreCertificateRequests(true);
913 923
914 params->http_09_on_non_default_ports_enabled = 924 params->http_09_on_non_default_ports_enabled =
915 http_09_on_non_default_ports_enabled; 925 http_09_on_non_default_ports_enabled;
916 } 926 }
917 927
918 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() { 928 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() {
919 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread); 929 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread);
920 } 930 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698