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

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

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

Powered by Google App Engine
This is Rietveld 408576698