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

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

Issue 2978443002: Make ProfileIOData use URLRequestContextBuilder (Closed)
Patch Set: ? 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
« no previous file with comments | « chrome/browser/io_thread.h ('k') | chrome/browser/profiles/off_the_record_profile_io_data.h » ('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 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.";
Randy Smith (Not in Mondays) 2017/07/18 18:26:54 So this looks to me like a potential change from t
mmenke 2017/07/18 18:52:37 You're right that this is a change in behavior (I
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 18 matching lines...) Expand all
821 849
822 std::unique_ptr<net::CertVerifier> cert_verifier; 850 std::unique_ptr<net::CertVerifier> cert_verifier;
823 #if defined(OS_CHROMEOS) 851 #if defined(OS_CHROMEOS)
824 // Creates a CertVerifyProc that doesn't allow any profile-provided certs. 852 // Creates a CertVerifyProc that doesn't allow any profile-provided certs.
825 cert_verifier = base::MakeUnique<net::CachingCertVerifier>( 853 cert_verifier = base::MakeUnique<net::CachingCertVerifier>(
826 base::MakeUnique<net::MultiThreadedCertVerifier>( 854 base::MakeUnique<net::MultiThreadedCertVerifier>(
827 new chromeos::CertVerifyProcChromeOS())); 855 new chromeos::CertVerifyProcChromeOS()));
828 #else 856 #else
829 cert_verifier = net::CertVerifier::CreateDefault(); 857 cert_verifier = net::CertVerifier::CreateDefault();
830 #endif 858 #endif
859 const base::CommandLine& command_line =
860 *base::CommandLine::ForCurrentProcess();
831 builder->SetCertVerifier( 861 builder->SetCertVerifier(
832 content::IgnoreErrorsCertVerifier::MaybeWrapCertVerifier( 862 content::IgnoreErrorsCertVerifier::MaybeWrapCertVerifier(
833 command_line, switches::kUserDataDir, std::move(cert_verifier))); 863 command_line, switches::kUserDataDir, std::move(cert_verifier)));
834 UMA_HISTOGRAM_BOOLEAN( 864 UMA_HISTOGRAM_BOOLEAN(
835 "Net.Certificate.IgnoreCertificateErrorsSPKIListPresent", 865 "Net.Certificate.IgnoreCertificateErrorsSPKIListPresent",
836 command_line.HasSwitch(switches::kIgnoreCertificateErrorsSPKIList)); 866 command_line.HasSwitch(switches::kIgnoreCertificateErrorsSPKIList));
837 867
838 std::unique_ptr<net::MultiLogCTVerifier> ct_verifier = 868 std::unique_ptr<net::MultiLogCTVerifier> ct_verifier =
839 base::MakeUnique<net::MultiLogCTVerifier>(); 869 base::MakeUnique<net::MultiLogCTVerifier>();
840 // Add built-in logs 870 // Add built-in logs
841 ct_verifier->AddLogs(globals_->ct_logs); 871 ct_verifier->AddLogs(globals_->ct_logs);
842 872
843 // Register the ct_tree_tracker_ as observer for verified SCTs. 873 // Register the ct_tree_tracker_ as observer for verified SCTs.
844 ct_verifier->SetObserver(ct_tree_tracker_.get()); 874 ct_verifier->SetObserver(ct_tree_tracker_.get());
845 875
846 builder->set_ct_verifier(std::move(ct_verifier)); 876 builder->set_ct_verifier(std::move(ct_verifier));
847 877
848 // TODO(eroman): Figure out why this doesn't work in single-process mode. 878 SetUpProxyConfigService(builder.get(),
849 // Should be possible now that a private isolate is used. 879 std::move(system_proxy_config_service_));
850 // http://crbug.com/474654
851 if (!command_line.HasSwitch(switches::kWinHttpProxyResolver)) {
852 if (command_line.HasSwitch(switches::kSingleProcess)) {
853 LOG(ERROR) << "Cannot use V8 Proxy resolver in single process mode.";
854 } else {
855 builder->set_mojo_proxy_resolver_factory(
856 ChromeMojoProxyResolverFactory::GetInstance());
857 }
858 }
859
860 builder->set_pac_quick_check_enabled(WpadQuickCheckEnabled());
861 builder->set_pac_sanitize_url_policy(
862 PacHttpsUrlStrippingEnabled()
863 ? net::ProxyService::SanitizeUrlPolicy::SAFE
864 : net::ProxyService::SanitizeUrlPolicy::UNSAFE);
865 #if defined(OS_CHROMEOS)
866 builder->set_dhcp_fetcher_factory(
867 base::MakeUnique<chromeos::DhcpProxyScriptFetcherFactoryChromeos>());
868 #endif
869 builder->set_proxy_config_service(std::move(system_proxy_config_service_));
870 880
871 builder->set_http_network_session_params(session_params_); 881 builder->set_http_network_session_params(session_params_);
872 882
873 builder->set_data_enabled(true); 883 builder->set_data_enabled(true);
874 builder->set_file_enabled(true); 884 builder->set_file_enabled(true);
875 #if !BUILDFLAG(DISABLE_FTP_SUPPORT) 885 #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
876 builder->set_ftp_enabled(true); 886 builder->set_ftp_enabled(true);
877 #endif 887 #endif
878 888
879 builder->DisableHttpCache(); 889 builder->DisableHttpCache();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
914 if (command_line.HasSwitch(switches::kIgnoreUrlFetcherCertRequests)) 924 if (command_line.HasSwitch(switches::kIgnoreUrlFetcherCertRequests))
915 net::URLFetcher::SetIgnoreCertificateRequests(true); 925 net::URLFetcher::SetIgnoreCertificateRequests(true);
916 926
917 params->http_09_on_non_default_ports_enabled = 927 params->http_09_on_non_default_ports_enabled =
918 http_09_on_non_default_ports_enabled; 928 http_09_on_non_default_ports_enabled;
919 } 929 }
920 930
921 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() { 931 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() {
922 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread); 932 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread);
923 } 933 }
OLDNEW
« no previous file with comments | « chrome/browser/io_thread.h ('k') | chrome/browser/profiles/off_the_record_profile_io_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698