cronet: Add cert net fetcher

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

View File

@ -247,6 +247,10 @@ CronetContext::NetworkTasks::~NetworkTasks() {
if (net::NetworkChangeNotifier::AreNetworkHandlesSupported())
net::NetworkChangeNotifier::RemoveNetworkObserver(this);
if (default_cert_net_fetcher_) {
default_cert_net_fetcher_->Shutdown();
}
}
void CronetContext::InitRequestContextOnInitThread() {
@ -426,6 +430,9 @@ CronetContext::NetworkTasks::BuildDefaultURLRequestContext(
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();
// Set up host cache persistence if it's enabled. Happens after building the
@ -437,6 +444,8 @@ CronetContext::NetworkTasks::BuildDefaultURLRequestContext(
g_net_log.Get().net_log());
}
default_cert_net_fetcher_->SetURLRequestContext(context.get());
SetSharedURLRequestContextConfig(context.get());
return context;
}

View File

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