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

Unified Diff: chrome/browser/io_thread.cc

Issue 2968293002: Introduce SystemNetworkContextManager. (Closed)
Patch Set: Response to comments 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/io_thread.h ('k') | chrome/browser/net/system_network_context_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/io_thread.cc
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
index 41cfd40339b1737eedaab4ca1485a68bfbd9fdc0..9dcd7f07cd26fcf6bcc5b6a13e361680b3512664 100644
--- a/chrome/browser/io_thread.cc
+++ b/chrome/browser/io_thread.cc
@@ -264,9 +264,9 @@ SystemURLRequestContextGetter::~SystemURLRequestContextGetter() {}
net::URLRequestContext* SystemURLRequestContextGetter::GetURLRequestContext() {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
- DCHECK(io_thread_->globals()->system_request_context.get());
+ DCHECK(io_thread_->globals()->system_request_context);
- return io_thread_->globals()->system_request_context.get();
+ return io_thread_->globals()->system_request_context;
}
scoped_refptr<base::SingleThreadTaskRunner>
@@ -283,12 +283,14 @@ SystemRequestContextLeakChecker::SystemRequestContextLeakChecker(
IOThread::Globals::
SystemRequestContextLeakChecker::~SystemRequestContextLeakChecker() {
- if (globals_->system_request_context.get())
+ if (globals_->system_request_context)
globals_->system_request_context->AssertNoURLRequests();
}
-IOThread::Globals::Globals() : system_request_context_leak_checker(this),
- enable_brotli(false) {}
+IOThread::Globals::Globals()
+ : system_request_context(nullptr),
+ system_request_context_leak_checker(this),
+ enable_brotli(false) {}
IOThread::Globals::~Globals() {}
@@ -398,6 +400,9 @@ IOThread::IOThread(
std::unique_ptr<net::ct::STHDistributor>(new net::ct::STHDistributor()));
BrowserThread::SetIOThreadDelegate(this);
+
+ SystemNetworkContextManager::SetUp(&network_context_request_,
+ &network_context_params_);
}
IOThread::~IOThread() {
@@ -785,14 +790,15 @@ bool IOThread::PacHttpsUrlStrippingEnabled() const {
void IOThread::ConstructSystemRequestContext() {
const base::CommandLine& command_line =
*base::CommandLine::ForCurrentProcess();
- net::URLRequestContextBuilderMojo builder;
+ std::unique_ptr<net::URLRequestContextBuilderMojo> builder =
+ base::MakeUnique<net::URLRequestContextBuilderMojo>();
- builder.set_network_quality_estimator(
+ builder->set_network_quality_estimator(
globals_->network_quality_estimator.get());
- builder.set_enable_brotli(globals_->enable_brotli);
- builder.set_name("system");
+ builder->set_enable_brotli(globals_->enable_brotli);
+ builder->set_name("system");
- builder.set_user_agent(GetUserAgent());
+ builder->set_user_agent(GetUserAgent());
std::unique_ptr<ChromeNetworkDelegate> chrome_network_delegate(
new ChromeNetworkDelegate(extension_event_router_forwarder(),
&system_enable_referrers_));
@@ -800,26 +806,26 @@ void IOThread::ConstructSystemRequestContext() {
chrome_network_delegate->set_data_use_aggregator(
globals_->data_use_aggregator.get(),
true /* is_data_usage_off_the_record */);
- builder.set_network_delegate(
+ builder->set_network_delegate(
globals_->data_use_ascriber->CreateNetworkDelegate(
std::move(chrome_network_delegate), GetMetricsDataUseForwarder()));
- builder.set_net_log(net_log_);
+ builder->set_net_log(net_log_);
std::unique_ptr<net::HostResolver> host_resolver(
CreateGlobalHostResolver(net_log_));
- builder.set_ssl_config_service(GetSSLConfigService());
- builder.SetHttpAuthHandlerFactory(
+ builder->set_ssl_config_service(GetSSLConfigService());
+ builder->SetHttpAuthHandlerFactory(
CreateDefaultAuthHandlerFactory(host_resolver.get()));
- builder.set_host_resolver(std::move(host_resolver));
+ builder->set_host_resolver(std::move(host_resolver));
#if defined(OS_CHROMEOS)
// Creates a CertVerifyProc that doesn't allow any profile-provided certs.
- builder.SetCertVerifier(base::MakeUnique<net::CachingCertVerifier>(
+ builder->SetCertVerifier(base::MakeUnique<net::CachingCertVerifier>(
base::MakeUnique<net::MultiThreadedCertVerifier>(
new chromeos::CertVerifyProcChromeOS())));
#else
- builder.SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier(
+ builder->SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier(
command_line, net::CertVerifier::CreateDefault()));
UMA_HISTOGRAM_BOOLEAN(
"Net.Certificate.IgnoreCertificateErrorsSPKIListPresent",
@@ -834,7 +840,7 @@ void IOThread::ConstructSystemRequestContext() {
// Register the ct_tree_tracker_ as observer for verified SCTs.
ct_verifier->SetObserver(ct_tree_tracker_.get());
- builder.set_ct_verifier(std::move(ct_verifier));
+ builder->set_ct_verifier(std::move(ct_verifier));
// TODO(eroman): Figure out why this doesn't work in single-process mode.
// Should be possible now that a private isolate is used.
@@ -843,40 +849,45 @@ void IOThread::ConstructSystemRequestContext() {
if (command_line.HasSwitch(switches::kSingleProcess)) {
LOG(ERROR) << "Cannot use V8 Proxy resolver in single process mode.";
} else {
- builder.set_mojo_proxy_resolver_factory(
+ builder->set_mojo_proxy_resolver_factory(
ChromeMojoProxyResolverFactory::GetInstance());
}
}
- builder.set_pac_quick_check_enabled(WpadQuickCheckEnabled());
- builder.set_pac_sanitize_url_policy(
+ builder->set_pac_quick_check_enabled(WpadQuickCheckEnabled());
+ builder->set_pac_sanitize_url_policy(
PacHttpsUrlStrippingEnabled()
? net::ProxyService::SanitizeUrlPolicy::SAFE
: net::ProxyService::SanitizeUrlPolicy::UNSAFE);
#if defined(OS_CHROMEOS)
- builder.set_dhcp_fetcher_factory(
+ builder->set_dhcp_fetcher_factory(
base::MakeUnique<chromeos::DhcpProxyScriptFetcherFactoryChromeos>());
#endif
- builder.set_proxy_config_service(std::move(system_proxy_config_service_));
+ builder->set_proxy_config_service(std::move(system_proxy_config_service_));
- builder.set_http_network_session_params(session_params_);
+ builder->set_http_network_session_params(session_params_);
- builder.set_data_enabled(true);
- builder.set_file_enabled(true);
+ builder->set_data_enabled(true);
+ builder->set_file_enabled(true);
#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
- builder.set_ftp_enabled(true);
+ builder->set_ftp_enabled(true);
#endif
- builder.DisableHttpCache();
+ builder->DisableHttpCache();
- globals_->system_request_context = builder.Build();
+ globals_->network_service = content::NetworkService::Create();
+ globals_->system_network_context =
+ globals_->network_service->CreateNetworkContextWithBuilder(
+ std::move(network_context_request_),
+ std::move(network_context_params_), std::move(builder),
+ &globals_->system_request_context);
#if defined(USE_NSS_CERTS)
- net::SetURLRequestContextForNSSHttpIO(globals_->system_request_context.get());
+ net::SetURLRequestContextForNSSHttpIO(globals_->system_request_context);
#endif
#if defined(OS_ANDROID)
net::CertVerifyProcAndroid::SetCertNetFetcher(
- net::CreateCertNetFetcher(globals_->system_request_context.get()));
+ net::CreateCertNetFetcher(globals_->system_request_context));
#endif
}
« no previous file with comments | « chrome/browser/io_thread.h ('k') | chrome/browser/net/system_network_context_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698