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 @@ ...@@ -45,6 +45,7 @@
#include "net/cert/cert_verifier.h" #include "net/cert/cert_verifier.h"
#include "net/cert/coalescing_cert_verifier.h" #include "net/cert/coalescing_cert_verifier.h"
#include "net/cert/ct_verify_result.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/cookies/cookie_monster.h"
#include "net/dns/host_cache.h" #include "net/dns/host_cache.h"
#include "net/dns/mapped_host_resolver.h" #include "net/dns/mapped_host_resolver.h"
...@@ -80,7 +81,6 @@ ...@@ -80,7 +81,6 @@
#include "services/network/proxy_config_service_mojo.h" #include "services/network/proxy_config_service_mojo.h"
#include "services/network/proxy_lookup_request.h" #include "services/network/proxy_lookup_request.h"
#include "services/network/proxy_resolving_socket_factory_mojo.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/features.h"
#include "services/network/public/cpp/network_switches.h" #include "services/network/public/cpp/network_switches.h"
#include "services/network/quic_transport.h" #include "services/network/quic_transport.h"
...@@ -352,13 +352,7 @@ NetworkContext::NetworkContext( ...@@ -352,13 +352,7 @@ NetworkContext::NetworkContext(
receiver_(this, std::move(receiver)), receiver_(this, std::move(receiver)),
cors_preflight_controller_( cors_preflight_controller_(
params_->cors_extra_safelisted_request_header_names) { params_->cors_extra_safelisted_request_header_names) {
// The URLLoaderFactory used by the |cert_net_fetcher_|, that needs to be url_request_context_owner_ = MakeURLRequestContext();
// 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_ = url_request_context_owner_.url_request_context.get(); url_request_context_ = url_request_context_owner_.url_request_context.get();
network_service_->RegisterNetworkContext(this); network_service_->RegisterNetworkContext(this);
...@@ -382,11 +376,6 @@ NetworkContext::NetworkContext( ...@@ -382,11 +376,6 @@ NetworkContext::NetworkContext(
->allow_default_credentials); ->allow_default_credentials);
} }
if (cert_net_fetcher_) {
CreateUrlLoaderFactoryForNetworkService(
std::move(cert_net_url_loader_factory_pending_receiver));
}
InitializeCorsParams(); InitializeCorsParams();
} }
...@@ -1653,9 +1642,7 @@ void NetworkContext::OnHttpAuthDynamicParamsChanged( ...@@ -1653,9 +1642,7 @@ void NetworkContext::OnHttpAuthDynamicParamsChanged(
#endif #endif
} }
URLRequestContextOwner NetworkContext::MakeURLRequestContext( URLRequestContextOwner NetworkContext::MakeURLRequestContext() {
mojo::PendingReceiver<mojom::URLLoaderFactory>*
cert_net_url_loader_factory_pending_receiver) {
URLRequestContextBuilderMojo builder; URLRequestContextBuilderMojo builder;
const base::CommandLine* command_line = const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess(); base::CommandLine::ForCurrentProcess();
...@@ -1667,12 +1654,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( ...@@ -1667,12 +1654,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
#if defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_CHROMEOS) || \ #if defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_CHROMEOS) || \
BUILDFLAG(TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED) || \ BUILDFLAG(TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED) || \
BUILDFLAG(BUILTIN_CERT_VERIFIER_FEATURE_SUPPORTED) BUILDFLAG(BUILTIN_CERT_VERIFIER_FEATURE_SUPPORTED)
mojo::PendingRemote<mojom::URLLoaderFactory> pending_remote; cert_net_fetcher_ = base::MakeRefCounted<net::CertNetFetcherURLRequest>();
*cert_net_url_loader_factory_pending_receiver =
pending_remote.InitWithNewPipeAndPassReceiver();
cert_net_fetcher_ =
base::MakeRefCounted<cert_verifier::CertNetFetcherURLLoader>(
std::move(pending_remote));
#endif #endif
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
scoped_refptr<net::CertVerifyProc> verify_proc; scoped_refptr<net::CertVerifyProc> verify_proc;
...@@ -2114,6 +2096,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( ...@@ -2114,6 +2096,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
std::move(session_cleanup_cookie_store), std::move(session_cleanup_cookie_store),
std::move(params_->cookie_manager_params)); std::move(params_->cookie_manager_params));
if (cert_net_fetcher_)
cert_net_fetcher_->SetURLRequestContext(result.url_request_context.get());
return result; return result;
} }
......
...@@ -64,6 +64,7 @@ class UnguessableToken; ...@@ -64,6 +64,7 @@ class UnguessableToken;
namespace net { namespace net {
class CertNetFetcher; class CertNetFetcher;
class CertNetFetcherURLRequest;
class CertVerifier; class CertVerifier;
class CertVerifyProc; class CertVerifyProc;
class HostPortPair; class HostPortPair;
...@@ -73,10 +74,6 @@ class StaticHttpUserAgentSettings; ...@@ -73,10 +74,6 @@ class StaticHttpUserAgentSettings;
class URLRequestContext; class URLRequestContext;
} // namespace net } // namespace net
namespace cert_verifier {
class CertNetFetcherURLLoader;
}
namespace certificate_transparency { namespace certificate_transparency {
class ChromeRequireCTDelegate; class ChromeRequireCTDelegate;
} // namespace certificate_transparency } // namespace certificate_transparency
...@@ -470,9 +467,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext ...@@ -470,9 +467,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
size_t NumOpenQuicTransports() const; size_t NumOpenQuicTransports() const;
private: private:
URLRequestContextOwner MakeURLRequestContext( URLRequestContextOwner MakeURLRequestContext();
mojo::PendingReceiver<mojom::URLLoaderFactory>*
cert_net_url_loader_factory_pending_receiver);
// Invoked when the HTTP cache was cleared. Invokes |callback|. // Invoked when the HTTP cache was cleared. Invokes |callback|.
void OnHttpCacheCleared(ClearHttpCacheCallback callback, void OnHttpCacheCleared(ClearHttpCacheCallback callback,
...@@ -623,7 +618,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext ...@@ -623,7 +618,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
// CertNetFetcher used by the context's CertVerifier. May be nullptr if // CertNetFetcher used by the context's CertVerifier. May be nullptr if
// CertNetFetcher is not used by the current platform. // 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. // Created on-demand. Null if unused.
std::unique_ptr<HostResolver> internal_host_resolver_; 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