cronet: Add cert net fetcher

This commit is contained in:
klzgrad 2022-05-23 19:10:35 +08:00
parent 87b03cd9fa
commit e0e0ddcaee
2 changed files with 13 additions and 0 deletions

View File

@ -244,6 +244,10 @@ CronetContext::NetworkTasks::~NetworkTasks() {
if (net::NetworkChangeNotifier::AreNetworkHandlesSupported()) if (net::NetworkChangeNotifier::AreNetworkHandlesSupported())
net::NetworkChangeNotifier::RemoveNetworkObserver(this); net::NetworkChangeNotifier::RemoveNetworkObserver(this);
if (default_cert_net_fetcher_) {
default_cert_net_fetcher_->Shutdown();
}
} }
void CronetContext::InitRequestContextOnInitThread() { void CronetContext::InitRequestContextOnInitThread() {
@ -420,6 +424,9 @@ CronetContext::NetworkTasks::BuildDefaultURLRequestContext(
g_net_log.Get().net_log(), &context_builder); g_net_log.Get().net_log(), &context_builder);
} }
default_cert_net_fetcher_ = base::MakeRefCounted<net::CertNetFetcherURLRequest>();
context_builder.SetCertVerifier(net::CertVerifier::CreateDefault(default_cert_net_fetcher_));
auto context = context_builder.Build(); auto context = context_builder.Build();
// Set up host cache persistence if it's enabled. Happens after building the // Set up host cache persistence if it's enabled. Happens after building the
@ -431,6 +438,8 @@ CronetContext::NetworkTasks::BuildDefaultURLRequestContext(
g_net_log.Get().net_log()); g_net_log.Get().net_log());
} }
default_cert_net_fetcher_->SetURLRequestContext(context.get());
SetSharedURLRequestContextConfig(context.get()); SetSharedURLRequestContextConfig(context.get());
return context; return context;
} }

View File

@ -21,6 +21,7 @@
#include "components/prefs/json_pref_store.h" #include "components/prefs/json_pref_store.h"
#include "net/base/network_change_notifier.h" #include "net/base/network_change_notifier.h"
#include "net/base/network_handle.h" #include "net/base/network_handle.h"
#include "net/cert_net/cert_net_fetcher_url_request.h"
#include "net/nqe/effective_connection_type.h" #include "net/nqe/effective_connection_type.h"
#include "net/nqe/effective_connection_type_observer.h" #include "net/nqe/effective_connection_type_observer.h"
#include "net/nqe/network_quality_estimator.h" #include "net/nqe/network_quality_estimator.h"
@ -330,6 +331,9 @@ class CronetContext {
base::flat_map<net::handles::NetworkHandle, base::flat_map<net::handles::NetworkHandle,
std::unique_ptr<net::URLRequestContext>> std::unique_ptr<net::URLRequestContext>>
contexts_; contexts_;
scoped_refptr<net::CertNetFetcherURLRequest> default_cert_net_fetcher_;
// Shorthand for the default context (needed by // Shorthand for the default context (needed by
// components/cronet/android/test/cronet_test_util.cc). // components/cronet/android/test/cronet_test_util.cc).
raw_ptr<net::URLRequestContext> default_context_; raw_ptr<net::URLRequestContext> default_context_;