Bug 1680613 - Enable network.dns.upgrade_with_https_rr and fix some tests r=necko-reviewers,dragana

Differential Revision: https://phabricator.services.mozilla.com/D99078
This commit is contained in:
Kershaw Chang 2021-01-12 13:14:07 +00:00
Родитель 229ea0d95c
Коммит f005165f1b
5 изменённых файлов: 7 добавлений и 59 удалений

Просмотреть файл

@ -8839,7 +8839,7 @@
# available.
- name: network.dns.upgrade_with_https_rr
type: RelaxedAtomicBool
value: false
value: @IS_EARLY_BETA_OR_EARLIER@
mirror: always
# Whether to use HTTPS RR as AltSvc

Просмотреть файл

@ -18,6 +18,7 @@
#include "mozilla/net/NeckoChild.h"
#include "mozilla/net/DNSListenerProxy.h"
#include "mozilla/net/TRRServiceParent.h"
#include "nsHostResolver.h"
#include "nsServiceManagerUtils.h"
#include "prsystem.h"
#include "DNSResolverInfo.h"
@ -94,6 +95,11 @@ nsresult ChildDNSService::AsyncResolveInternal(
bool resolveDNSInSocketProcess = false;
if (XRE_IsParentProcess() && nsIOService::UseSocketProcess()) {
resolveDNSInSocketProcess = true;
if (type != nsIDNSService::RESOLVE_TYPE_DEFAULT &&
(mTRRServiceParent->Mode() != MODE_TRRFIRST &&
mTRRServiceParent->Mode() != MODE_TRRONLY)) {
return NS_ERROR_UNKNOWN_HOST;
}
}
if (mDisablePrefetch && (flags & RESOLVE_SPECULATE)) {

Просмотреть файл

@ -178,27 +178,3 @@ add_task(async function testTXTRecordPushPart2() {
.getRecordsAsOneString();
Assert.equal(answer, test_answer, "got correct answer");
});
add_task(async function testHTTPSSVCResolve() {
prefs.setCharPref(
"network.trr.uri",
"https://foo.example.com:" + h2Port + "/doh"
);
let listenerEsni = new DNSListener();
let request = dns.asyncResolve(
"httpssvc_esni.example.com",
dns.RESOLVE_TYPE_HTTPSSVC,
0,
null, // resolverInfo
listenerEsni,
mainThread,
defaultOriginAttributes
);
let [inRequest, inRecord, inStatus] = await listenerEsni;
Assert.equal(inRequest, request, "correct request was used");
Assert.equal(inStatus, Cr.NS_OK, "status OK");
let answer = inRecord.QueryInterface(Ci.nsIDNSHTTPSSVCRecord).records;
let esni = answer[0].values[0].QueryInterface(Ci.nsISVCParamEchConfig);
Assert.equal(esni.echconfig, "testytestystringstring", "got correct answer");
});

Просмотреть файл

@ -53,24 +53,3 @@ add_task(async function testTXTResolve() {
.getRecordsAsOneString();
Assert.equal(answer, test_answer, "got correct answer");
});
add_task(async function testHTTPSSVCResolve() {
// use the h2 server as DOH provider
let listenerEsni = new DNSListener();
let request = dns.asyncResolve(
"httpssvc_esni.example.com",
dns.RESOLVE_TYPE_HTTPSSVC,
0,
null, // resolverInfo
listenerEsni,
mainThread,
defaultOriginAttributes
);
let [inRequest, inRecord, inStatus] = await listenerEsni;
Assert.equal(inRequest, request, "correct request was used");
Assert.equal(inStatus, Cr.NS_OK, "status OK");
let answer = inRecord.QueryInterface(Ci.nsIDNSHTTPSSVCRecord).records;
let esni = answer[0].values[0].QueryInterface(Ci.nsISVCParamEchConfig);
Assert.equal(esni.echconfig, "testytestystringstring", "got correct answer");
});

Просмотреть файл

@ -735,19 +735,6 @@ function handleRequest(req, res) {
"hex"
),
});
} else if (packet.questions[0].type == "HTTPS") {
answers.push({
name: packet.questions[0].name,
type: packet.questions[0].type,
ttl: 55,
class: "IN",
flush: false,
data: {
priority: 1,
name: "some.domain.stuff.",
values: [{ key: "echconfig", value: "testytestystringstring" }],
},
});
}
if (u.query.cnameloop) {