Commit 526dec8a authored by Matt Mueller's avatar Matt Mueller Committed by Commit Bot

net_unittests: hook up SecureDnsInterceptor in HTTPSCertNetFetchingTest.

SecureDnsInterceptor was added in 88b36dab to ensure that unittests of
certificate network fetches had secure DNS disabled, but it was only
added to HTTPSOCSPTest (which is the base class for SpawnedTestServer
based tests), but not to HTTPSCertNetFetchingTest (which is the base
class for EmbeddedTestServer based tests).

Bug: 846909
Change-Id: I1ea0af37227ee5804f55a78478ad2354211bcb75
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2161938Reviewed-by: default avatarEric Roman <eroman@chromium.org>
Commit-Queue: Matt Mueller <mattm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#761986}
parent cc9e9d81
...@@ -9542,6 +9542,24 @@ TEST_F(HTTPSSessionTest, DontResumeSessionsForInvalidCertificates) { ...@@ -9542,6 +9542,24 @@ TEST_F(HTTPSSessionTest, DontResumeSessionsForInvalidCertificates) {
} }
} }
// Interceptor to check that secure DNS has been disabled. Secure DNS should be
// disabled for any network fetch triggered during certificate verification as
// it could cause a deadlock.
class SecureDnsInterceptor : public net::URLRequestInterceptor {
public:
SecureDnsInterceptor() = default;
~SecureDnsInterceptor() override = default;
private:
// URLRequestInterceptor implementation:
net::URLRequestJob* MaybeInterceptRequest(
net::URLRequest* request,
net::NetworkDelegate* network_delegate) const override {
EXPECT_TRUE(request->disable_secure_dns());
return nullptr;
}
};
class HTTPSCertNetFetchingTest : public HTTPSRequestTest { class HTTPSCertNetFetchingTest : public HTTPSRequestTest {
public: public:
HTTPSCertNetFetchingTest() : context_(true) {} HTTPSCertNetFetchingTest() : context_(true) {}
...@@ -9553,6 +9571,9 @@ class HTTPSCertNetFetchingTest : public HTTPSRequestTest { ...@@ -9553,6 +9571,9 @@ class HTTPSCertNetFetchingTest : public HTTPSRequestTest {
context_.SetCTPolicyEnforcer(std::make_unique<DefaultCTPolicyEnforcer>()); context_.SetCTPolicyEnforcer(std::make_unique<DefaultCTPolicyEnforcer>());
context_.Init(); context_.Init();
net::URLRequestFilter::GetInstance()->AddHostnameInterceptor(
"http", "127.0.0.1", std::make_unique<SecureDnsInterceptor>());
cert_net_fetcher_->SetURLRequestContext(&context_); cert_net_fetcher_->SetURLRequestContext(&context_);
context_.cert_verifier()->SetConfig(GetCertVerifierConfig()); context_.cert_verifier()->SetConfig(GetCertVerifierConfig());
#if defined(USE_NSS_CERTS) #if defined(USE_NSS_CERTS)
...@@ -9565,6 +9586,7 @@ class HTTPSCertNetFetchingTest : public HTTPSRequestTest { ...@@ -9565,6 +9586,7 @@ class HTTPSCertNetFetchingTest : public HTTPSRequestTest {
#if defined(USE_NSS_CERTS) #if defined(USE_NSS_CERTS)
SetURLRequestContextForNSSHttpIO(nullptr); SetURLRequestContextForNSSHttpIO(nullptr);
#endif #endif
net::URLRequestFilter::GetInstance()->ClearHandlers();
} }
protected: protected:
...@@ -9601,22 +9623,6 @@ static const SHA256HashValue kOCSPTestCertSPKI = {{ ...@@ -9601,22 +9623,6 @@ static const SHA256HashValue kOCSPTestCertSPKI = {{
// generates. // generates.
static const char kOCSPTestCertPolicy[] = "1.3.6.1.4.1.11129.2.4.1"; static const char kOCSPTestCertPolicy[] = "1.3.6.1.4.1.11129.2.4.1";
// Interceptor to check that secure DNS has been disabled.
class SecureDnsInterceptor : public net::URLRequestInterceptor {
public:
SecureDnsInterceptor() = default;
~SecureDnsInterceptor() override = default;
private:
// URLRequestInterceptor implementation:
net::URLRequestJob* MaybeInterceptRequest(
net::URLRequest* request,
net::NetworkDelegate* network_delegate) const override {
EXPECT_TRUE(request->disable_secure_dns());
return nullptr;
}
};
class HTTPSOCSPTest : public HTTPSRequestTest { class HTTPSOCSPTest : public HTTPSRequestTest {
public: public:
HTTPSOCSPTest() HTTPSOCSPTest()
......
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