Commit cbb23c36 authored by Matthew Denton's avatar Matthew Denton Committed by Commit Bot

Switch NS back to CertNetFetcherURLRequest

...instead of CertNetFetcherURLLoader, which fails when the
URLLoaderFactory is reset.

Bug: 1046326
Change-Id: Id9cfc0fbcb3f15776be1399902ad9ee00132c436
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2032412Reviewed-by: default avatarMatt Mueller <mattm@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#737279}
parent 6af661c2
......@@ -45,6 +45,7 @@
#include "net/cert/cert_verifier.h"
#include "net/cert/coalescing_cert_verifier.h"
#include "net/cert/ct_verify_result.h"
#include "net/cert_net/cert_net_fetcher_url_request.h"
#include "net/cookies/cookie_monster.h"
#include "net/dns/host_cache.h"
#include "net/dns/mapped_host_resolver.h"
......@@ -80,7 +81,6 @@
#include "services/network/proxy_config_service_mojo.h"
#include "services/network/proxy_lookup_request.h"
#include "services/network/proxy_resolving_socket_factory_mojo.h"
#include "services/network/public/cpp/cert_verifier/cert_net_fetcher_url_loader.h"
#include "services/network/public/cpp/features.h"
#include "services/network/public/cpp/network_switches.h"
#include "services/network/quic_transport.h"
......@@ -352,13 +352,7 @@ NetworkContext::NetworkContext(
receiver_(this, std::move(receiver)),
cors_preflight_controller_(
params_->cors_extra_safelisted_request_header_names) {
// The URLLoaderFactory used by the |cert_net_fetcher_|, that needs to be
// bound after most initialization is done.
mojo::PendingReceiver<mojom::URLLoaderFactory>
cert_net_url_loader_factory_pending_receiver;
url_request_context_owner_ =
MakeURLRequestContext(&cert_net_url_loader_factory_pending_receiver);
url_request_context_owner_ = MakeURLRequestContext();
url_request_context_ = url_request_context_owner_.url_request_context.get();
network_service_->RegisterNetworkContext(this);
......@@ -382,11 +376,6 @@ NetworkContext::NetworkContext(
->allow_default_credentials);
}
if (cert_net_fetcher_) {
CreateUrlLoaderFactoryForNetworkService(
std::move(cert_net_url_loader_factory_pending_receiver));
}
InitializeCorsParams();
}
......@@ -1653,9 +1642,7 @@ void NetworkContext::OnHttpAuthDynamicParamsChanged(
#endif
}
URLRequestContextOwner NetworkContext::MakeURLRequestContext(
mojo::PendingReceiver<mojom::URLLoaderFactory>*
cert_net_url_loader_factory_pending_receiver) {
URLRequestContextOwner NetworkContext::MakeURLRequestContext() {
URLRequestContextBuilderMojo builder;
const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
......@@ -1667,12 +1654,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
#if defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_CHROMEOS) || \
BUILDFLAG(TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED) || \
BUILDFLAG(BUILTIN_CERT_VERIFIER_FEATURE_SUPPORTED)
mojo::PendingRemote<mojom::URLLoaderFactory> pending_remote;
*cert_net_url_loader_factory_pending_receiver =
pending_remote.InitWithNewPipeAndPassReceiver();
cert_net_fetcher_ =
base::MakeRefCounted<cert_verifier::CertNetFetcherURLLoader>(
std::move(pending_remote));
cert_net_fetcher_ = base::MakeRefCounted<net::CertNetFetcherURLRequest>();
#endif
#if defined(OS_CHROMEOS)
scoped_refptr<net::CertVerifyProc> verify_proc;
......@@ -2114,6 +2096,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
std::move(session_cleanup_cookie_store),
std::move(params_->cookie_manager_params));
if (cert_net_fetcher_)
cert_net_fetcher_->SetURLRequestContext(result.url_request_context.get());
return result;
}
......
......@@ -64,6 +64,7 @@ class UnguessableToken;
namespace net {
class CertNetFetcher;
class CertNetFetcherURLRequest;
class CertVerifier;
class CertVerifyProc;
class HostPortPair;
......@@ -73,10 +74,6 @@ class StaticHttpUserAgentSettings;
class URLRequestContext;
} // namespace net
namespace cert_verifier {
class CertNetFetcherURLLoader;
}
namespace certificate_transparency {
class ChromeRequireCTDelegate;
} // namespace certificate_transparency
......@@ -470,9 +467,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
size_t NumOpenQuicTransports() const;
private:
URLRequestContextOwner MakeURLRequestContext(
mojo::PendingReceiver<mojom::URLLoaderFactory>*
cert_net_url_loader_factory_pending_receiver);
URLRequestContextOwner MakeURLRequestContext();
// Invoked when the HTTP cache was cleared. Invokes |callback|.
void OnHttpCacheCleared(ClearHttpCacheCallback callback,
......@@ -623,7 +618,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
// CertNetFetcher used by the context's CertVerifier. May be nullptr if
// CertNetFetcher is not used by the current platform.
scoped_refptr<cert_verifier::CertNetFetcherURLLoader> cert_net_fetcher_;
scoped_refptr<net::CertNetFetcherURLRequest> cert_net_fetcher_;
// Created on-demand. Null if unused.
std::unique_ptr<HostResolver> internal_host_resolver_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment