Bug 1596845 - Make DNSServices available as Services.dns r=necko-reviewers,webdriver-reviewers,kershaw

Depends on D164347

Differential Revision: https://phabricator.services.mozilla.com/D164856
This commit is contained in:
Valentin Gosu 2022-12-23 09:26:17 +00:00
parent 1fe810288f
commit df13492ee4
62 changed files with 380 additions and 547 deletions

View file

@ -285,7 +285,6 @@ XPCOMUtils.defineLazyServiceGetters(this, {
"nsIURIClassifier", "nsIURIClassifier",
], ],
Favicons: ["@mozilla.org/browser/favicon-service;1", "nsIFaviconService"], Favicons: ["@mozilla.org/browser/favicon-service;1", "nsIFaviconService"],
gDNSService: ["@mozilla.org/network/dns-service;1", "nsIDNSService"],
WindowsUIUtils: ["@mozilla.org/windows-ui-utils;1", "nsIWindowsUIUtils"], WindowsUIUtils: ["@mozilla.org/windows-ui-utils;1", "nsIWindowsUIUtils"],
BrowserHandler: ["@mozilla.org/browser/clh;1", "nsIBrowserHandler"], BrowserHandler: ["@mozilla.org/browser/clh;1", "nsIBrowserHandler"],
}); });

View file

@ -79,13 +79,6 @@ XPCOMUtils.defineLazyServiceGetter(
"nsICaptivePortalService" "nsICaptivePortalService"
); );
XPCOMUtils.defineLazyServiceGetter(
lazy,
"gDNSService",
"@mozilla.org/network/dns-service;1",
"nsIDNSService"
);
XPCOMUtils.defineLazyServiceGetter( XPCOMUtils.defineLazyServiceGetter(
lazy, lazy,
"gNetworkLinkService", "gNetworkLinkService",
@ -369,7 +362,7 @@ const DoHController = {
}; };
if (results.steeredProvider) { if (results.steeredProvider) {
lazy.gDNSService.setDetectedTrrURI(results.steeredProvider.uri); Services.dns.setDetectedTrrURI(results.steeredProvider.uri);
resultsForTelemetry.steeredProvider = results.steeredProvider.id; resultsForTelemetry.steeredProvider = results.steeredProvider.id;
} }

View file

@ -17,13 +17,6 @@ const { XPCOMUtils } = ChromeUtils.importESModule(
const lazy = {}; const lazy = {};
XPCOMUtils.defineLazyServiceGetter(
lazy,
"gDNSService",
"@mozilla.org/network/dns-service;1",
"nsIDNSService"
);
XPCOMUtils.defineLazyServiceGetter( XPCOMUtils.defineLazyServiceGetter(
lazy, lazy,
"gNetworkLinkService", "gNetworkLinkService",
@ -139,7 +132,7 @@ async function dnsLookup(hostname, resolveCanonicalName = false) {
Ci.nsIDNSService.RESOLVE_BYPASS_CACHE | Ci.nsIDNSService.RESOLVE_BYPASS_CACHE |
Ci.nsIDNSService.RESOLVE_CANONICAL_NAME; Ci.nsIDNSService.RESOLVE_CANONICAL_NAME;
try { try {
request = lazy.gDNSService.asyncResolve( request = Services.dns.asyncResolve(
hostname, hostname,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
dnsFlags, dnsFlags,

View file

@ -44,13 +44,6 @@ XPCOMUtils.defineLazyServiceGetter(
"nsICaptivePortalService" "nsICaptivePortalService"
); );
XPCOMUtils.defineLazyServiceGetter(
lazy,
"gDNSService",
"@mozilla.org/network/dns-service;1",
"nsIDNSService"
);
// The canonical domain whose subdomains we will be resolving. // The canonical domain whose subdomains we will be resolving.
XPCOMUtils.defineLazyPreferenceGetter( XPCOMUtils.defineLazyPreferenceGetter(
lazy, lazy,
@ -110,11 +103,11 @@ class DNSLookup {
this.retryCount++; this.retryCount++;
try { try {
this.usedDomain = this._domain || getRandomSubdomain(); this.usedDomain = this._domain || getRandomSubdomain();
lazy.gDNSService.asyncResolve( Services.dns.asyncResolve(
this.usedDomain, this.usedDomain,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_BYPASS_CACHE, Ci.nsIDNSService.RESOLVE_BYPASS_CACHE,
lazy.gDNSService.newAdditionalInfo(this.trrServer, -1), Services.dns.newAdditionalInfo(this.trrServer, -1),
this, this,
Services.tm.currentThread, Services.tm.currentThread,
{} {}

View file

@ -48,12 +48,16 @@ add_task(async function testProviderSteering() {
// We need this check because this topic is observed once immediately // We need this check because this topic is observed once immediately
// after the network change when the URI is reset, and then when the // after the network change when the URI is reset, and then when the
// provider steering heuristic runs and sets it to our uri. // provider steering heuristic runs and sets it to our uri.
return gDNSService.currentTrrURI == expectedURI; return Services.dns.currentTrrURI == expectedURI;
} }
); );
simulateNetworkChange(); simulateNetworkChange();
await trrURIChanged; await trrURIChanged;
is(gDNSService.currentTrrURI, expectedURI, `TRR URI set to ${expectedURI}`); is(
Services.dns.currentTrrURI,
expectedURI,
`TRR URI set to ${expectedURI}`
);
await checkHeuristicsTelemetry( await checkHeuristicsTelemetry(
heuristicsDecision, heuristicsDecision,
"netchange", "netchange",

View file

@ -14,13 +14,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
RemoteSettings: "resource://services-settings/remote-settings.js", RemoteSettings: "resource://services-settings/remote-settings.js",
}); });
XPCOMUtils.defineLazyServiceGetter(
this,
"gDNSService",
"@mozilla.org/network/dns-service;1",
"nsIDNSService"
);
XPCOMUtils.defineLazyServiceGetter( XPCOMUtils.defineLazyServiceGetter(
this, this,
"gDNSOverride", "gDNSOverride",

View file

@ -148,9 +148,7 @@ LocalDevice.prototype = {
// TODO: Bug 1180997: Find the right way to expose an editable name // TODO: Bug 1180997: Find the right way to expose an editable name
this.name = Services.sysinfo.get("device"); this.name = Services.sysinfo.get("device");
} else { } else {
this.name = Cc["@mozilla.org/network/dns-service;1"].getService( this.name = Services.dns.myHostName;
Ci.nsIDNSService
).myHostName;
} }
}, },

View file

@ -16,8 +16,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
loader.lazyGetter(this, "hostname", () => { loader.lazyGetter(this, "hostname", () => {
try { try {
// On some platforms (Linux according to try), this service does not exist and fails. // On some platforms (Linux according to try), this service does not exist and fails.
return Cc["@mozilla.org/network/dns-service;1"].getService(Ci.nsIDNSService) return Services.dns.myHostName;
.myHostName;
} catch (e) { } catch (e) {
return ""; return "";
} }

View file

@ -43,13 +43,6 @@ XPCOMUtils.defineLazyServiceGetter(
"nsIFileProtocolHandler" "nsIFileProtocolHandler"
); );
XPCOMUtils.defineLazyServiceGetter(
lazy,
"gDNSService",
"@mozilla.org/network/dns-service;1",
"nsIDNSService"
);
XPCOMUtils.defineLazyServiceGetter( XPCOMUtils.defineLazyServiceGetter(
lazy, lazy,
"handlerService", "handlerService",
@ -628,7 +621,7 @@ URIFixup.prototype = {
} }
Services.obs.notifyObservers(null, "uri-fixup-check-dns"); Services.obs.notifyObservers(null, "uri-fixup-check-dns");
lazy.gDNSService.asyncResolve( Services.dns.asyncResolve(
lookupName, lookupName,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,

View file

@ -14,13 +14,6 @@ XPCOMUtils.defineLazyServiceGetter(
"nsINativeDNSResolverOverride" "nsINativeDNSResolverOverride"
); );
XPCOMUtils.defineLazyServiceGetter(
lazy,
"gDNSService",
"@mozilla.org/network/dns-service;1",
"nsIDNSService"
);
add_task(async function setup() { add_task(async function setup() {
Services.prefs.setStringPref("browser.fixup.alternate.prefix", "www."); Services.prefs.setStringPref("browser.fixup.alternate.prefix", "www.");
Services.prefs.setStringPref("browser.fixup.alternate.suffix", ".com"); Services.prefs.setStringPref("browser.fixup.alternate.suffix", ".com");
@ -95,7 +88,7 @@ add_task(async function test_uri_with_force_fixup() {
); );
lazy.gDNSOverride.clearHostOverride(fixedURI.displayHost); lazy.gDNSOverride.clearHostOverride(fixedURI.displayHost);
lazy.gDNSService.clearCache(false); Services.dns.clearCache(false);
}); });
add_task(async function test_uri_with_get_fixup() { add_task(async function test_uri_with_get_fixup() {
@ -112,7 +105,7 @@ add_task(async function test_uri_with_get_fixup() {
); );
lazy.gDNSOverride.clearHostOverride(uri.displayHost); lazy.gDNSOverride.clearHostOverride(uri.displayHost);
lazy.gDNSService.clearCache(false); Services.dns.clearCache(false);
}); });
add_task(async function test_intranet_like_uri() { add_task(async function test_intranet_like_uri() {
@ -132,7 +125,7 @@ add_task(async function test_intranet_like_uri() {
lazy.gDNSOverride.clearHostOverride(uri.displayHost); lazy.gDNSOverride.clearHostOverride(uri.displayHost);
lazy.gDNSOverride.clearHostOverride(uri.displayHost + "."); lazy.gDNSOverride.clearHostOverride(uri.displayHost + ".");
lazy.gDNSService.clearCache(false); Services.dns.clearCache(false);
}); });
add_task(async function test_intranet_like_uri_without_fixup() { add_task(async function test_intranet_like_uri_without_fixup() {
@ -156,7 +149,7 @@ add_task(async function test_intranet_like_uri_without_fixup() {
lazy.gDNSOverride.clearHostOverride(uri.displayHost); lazy.gDNSOverride.clearHostOverride(uri.displayHost);
lazy.gDNSOverride.clearHostOverride(uri.displayHost + "."); lazy.gDNSOverride.clearHostOverride(uri.displayHost + ".");
lazy.gDNSService.clearCache(false); Services.dns.clearCache(false);
}); });
add_task(async function test_ip_address() { add_task(async function test_ip_address() {
@ -185,6 +178,6 @@ add_task(async function test_ip_address() {
); );
lazy.gDNSOverride.clearHostOverride(uri.displayHost); lazy.gDNSOverride.clearHostOverride(uri.displayHost);
lazy.gDNSService.clearCache(false); Services.dns.clearCache(false);
Services.obs.removeObserver(observer, topic); Services.obs.removeObserver(observer, topic);
}); });

View file

@ -114,8 +114,11 @@ Classes = [
'headers': ['mozilla/net/Dashboard.h'], 'headers': ['mozilla/net/Dashboard.h'],
}, },
{ {
'name': 'DNS',
'js_name': 'dns',
'cid': '{b0ff4572-dae4-4bef-a092-83c1b88f6be9}', 'cid': '{b0ff4572-dae4-4bef-a092-83c1b88f6be9}',
'contract_ids': ['@mozilla.org/network/dns-service;1'], 'contract_ids': ['@mozilla.org/network/dns-service;1'],
'interfaces': ['nsIDNSService'],
'singleton': True, 'singleton': True,
'type': 'nsIDNSService', 'type': 'nsIDNSService',
'constructor': 'nsDNSService::GetXPCOMSingleton', 'constructor': 'nsDNSService::GetXPCOMSingleton',

View file

@ -14,7 +14,6 @@ const { NodeServer } = ChromeUtils.import("resource://testing-common/httpd.js");
const { AppConstants } = ChromeUtils.importESModule( const { AppConstants } = ChromeUtils.importESModule(
"resource://gre/modules/AppConstants.sys.mjs" "resource://gre/modules/AppConstants.sys.mjs"
); );
let gDNS;
/// Sets the TRR related prefs and adds the certificate we use for the HTTP2 /// Sets the TRR related prefs and adds the certificate we use for the HTTP2
/// server. /// server.
@ -139,18 +138,12 @@ class TRRDNSListener {
); );
const currentThread = threadManager.currentThread; const currentThread = threadManager.currentThread;
if (!gDNS) {
gDNS = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
}
this.additionalInfo = this.additionalInfo =
trrServer == "" && port == -1 trrServer == "" && port == -1
? null ? null
: gDNS.newAdditionalInfo(trrServer, port); : Services.dns.newAdditionalInfo(trrServer, port);
try { try {
this.request = gDNS.asyncResolve( this.request = Services.dns.asyncResolve(
this.name, this.name,
this.type, this.type,
this.options.flags || 0, this.options.flags || 0,
@ -240,7 +233,7 @@ class TRRDNSListener {
} }
cancel(aStatus = Cr.NS_ERROR_ABORT) { cancel(aStatus = Cr.NS_ERROR_ABORT) {
gDNS.cancelAsyncResolve( Services.dns.cancelAsyncResolve(
this.name, this.name,
this.type, this.type,
this.options.flags || 0, this.options.flags || 0,

View file

@ -8,10 +8,6 @@ ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
let h2Port; let h2Port;
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const { TestUtils } = ChromeUtils.importESModule( const { TestUtils } = ChromeUtils.importESModule(
"resource://testing-common/TestUtils.sys.mjs" "resource://testing-common/TestUtils.sys.mjs"
); );
@ -27,6 +23,7 @@ add_setup(async function setup() {
}); });
if (mozinfo.socketprocess_networking) { if (mozinfo.socketprocess_networking) {
Services.dns; // Needed to trigger socket process.
await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched); await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched);
} }
@ -44,7 +41,7 @@ add_task(async function testTXTResolve() {
); );
let { inRecord } = await new TRRDNSListener("_esni.example.com", { let { inRecord } = await new TRRDNSListener("_esni.example.com", {
type: dns.RESOLVE_TYPE_TXT, type: Ci.nsIDNSService.RESOLVE_TYPE_TXT,
}); });
let answer = inRecord let answer = inRecord
@ -60,7 +57,7 @@ add_task(async function testTXTRecordPushPart1() {
"https://foo.example.com:" + h2Port + "/txt-dns-push" "https://foo.example.com:" + h2Port + "/txt-dns-push"
); );
let { inRecord } = await new TRRDNSListener("_esni_push.example.com", { let { inRecord } = await new TRRDNSListener("_esni_push.example.com", {
type: dns.RESOLVE_TYPE_DEFAULT, type: Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
expectedAnswer: "127.0.0.1", expectedAnswer: "127.0.0.1",
}); });
@ -78,7 +75,7 @@ add_task(async function testTXTRecordPushPart2() {
"https://foo.example.com:" + h2Port + "/404" "https://foo.example.com:" + h2Port + "/404"
); );
let { inRecord } = await new TRRDNSListener("_esni_push.example.com", { let { inRecord } = await new TRRDNSListener("_esni_push.example.com", {
type: dns.RESOLVE_TYPE_TXT, type: Ci.nsIDNSService.RESOLVE_TYPE_TXT,
}); });
let answer = inRecord let answer = inRecord

View file

@ -1,7 +1,5 @@
"use strict"; "use strict";
var dns = Cc["@mozilla.org/network/dns-service;1"].getService(Ci.nsIDNSService);
var hostname1 = ""; var hostname1 = "";
var hostname2 = ""; var hostname2 = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
@ -51,7 +49,7 @@ function run_test() {
var flags = Ci.nsIDNSService.RESOLVE_BYPASS_CACHE; var flags = Ci.nsIDNSService.RESOLVE_BYPASS_CACHE;
// This one will be canceled with cancelAsyncResolve. // This one will be canceled with cancelAsyncResolve.
dns.asyncResolve( Services.dns.asyncResolve(
hostname2, hostname2,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
flags, flags,
@ -60,7 +58,7 @@ function run_test() {
mainThread, mainThread,
defaultOriginAttributes defaultOriginAttributes
); );
dns.cancelAsyncResolve( Services.dns.cancelAsyncResolve(
hostname2, hostname2,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
flags, flags,
@ -71,7 +69,7 @@ function run_test() {
); );
// This one will not be canceled. // This one will not be canceled.
requestList1NotCanceled = dns.asyncResolve( requestList1NotCanceled = Services.dns.asyncResolve(
hostname1, hostname1,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
flags, flags,
@ -82,7 +80,7 @@ function run_test() {
); );
// This one will be canceled with cancel(Cr.NS_ERROR_ABORT). // This one will be canceled with cancel(Cr.NS_ERROR_ABORT).
requestList1Canceled2 = dns.asyncResolve( requestList1Canceled2 = Services.dns.asyncResolve(
hostname1, hostname1,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
flags, flags,
@ -94,7 +92,7 @@ function run_test() {
requestList1Canceled2.cancel(Cr.NS_ERROR_ABORT); requestList1Canceled2.cancel(Cr.NS_ERROR_ABORT);
// This one will not be canceled. // This one will not be canceled.
requestList2NotCanceled = dns.asyncResolve( requestList2NotCanceled = Services.dns.asyncResolve(
hostname1, hostname1,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
flags, flags,
@ -105,7 +103,7 @@ function run_test() {
); );
// This one will be canceled with cancel(Cr.NS_ERROR_ABORT). // This one will be canceled with cancel(Cr.NS_ERROR_ABORT).
requestList2Canceled = dns.asyncResolve( requestList2Canceled = Services.dns.asyncResolve(
hostname2, hostname2,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
flags, flags,

View file

@ -5,7 +5,6 @@
"use strict"; "use strict";
var dns = Cc["@mozilla.org/network/dns-service;1"].getService(Ci.nsIDNSService);
const gOverride = Cc["@mozilla.org/network/native-dns-override;1"].getService( const gOverride = Cc["@mozilla.org/network/native-dns-override;1"].getService(
Ci.nsINativeDNSResolverOverride Ci.nsINativeDNSResolverOverride
); );
@ -21,7 +20,7 @@ add_task(async function test_none() {
QueryInterface: ChromeUtils.generateQI(["nsIDNSListener"]), QueryInterface: ChromeUtils.generateQI(["nsIDNSListener"]),
}; };
dns.asyncResolve( Services.dns.asyncResolve(
"example.org", "example.org",
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_DISABLE_IPV4, Ci.nsIDNSService.RESOLVE_DISABLE_IPV4,
@ -41,7 +40,7 @@ add_task(async function test_none() {
}); });
add_task(async function test_some() { add_task(async function test_some() {
dns.clearCache(true); Services.dns.clearCache(true);
gOverride.addIPOverride("example.com", "1.1.1.1"); gOverride.addIPOverride("example.com", "1.1.1.1");
gOverride.addIPOverride("example.org", "::1:2:3"); gOverride.addIPOverride("example.org", "::1:2:3");
let [, inRecord] = await new Promise(resolve => { let [, inRecord] = await new Promise(resolve => {
@ -52,7 +51,7 @@ add_task(async function test_some() {
QueryInterface: ChromeUtils.generateQI(["nsIDNSListener"]), QueryInterface: ChromeUtils.generateQI(["nsIDNSListener"]),
}; };
dns.asyncResolve( Services.dns.asyncResolve(
"example.org", "example.org",
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_DISABLE_IPV4, Ci.nsIDNSService.RESOLVE_DISABLE_IPV4,

View file

@ -5,8 +5,6 @@
"use strict"; "use strict";
var dns = Cc["@mozilla.org/network/dns-service;1"].getService(Ci.nsIDNSService);
var listener = { var listener = {
onLookupComplete(inRequest, inRecord, inStatus) { onLookupComplete(inRequest, inRecord, inStatus) {
if (inStatus != Cr.NS_OK) { if (inStatus != Cr.NS_OK) {
@ -36,7 +34,7 @@ const defaultOriginAttributes = {};
function run_test() { function run_test() {
do_test_pending(); do_test_pending();
try { try {
dns.asyncResolve( Services.dns.asyncResolve(
"example.com", "example.com",
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_DISABLE_IPV6, Ci.nsIDNSService.RESOLVE_DISABLE_IPV6,

View file

@ -1,8 +1,5 @@
"use strict"; "use strict";
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const override = Cc["@mozilla.org/network/native-dns-override;1"].getService( const override = Cc["@mozilla.org/network/native-dns-override;1"].getService(
Ci.nsINativeDNSResolverOverride Ci.nsINativeDNSResolverOverride
); );
@ -37,7 +34,7 @@ function do_test({ dnsDisabled, mustBlock, testDomain, expectedAnswer }) {
return new Promise(resolve => { return new Promise(resolve => {
Services.prefs.setBoolPref("network.dns.disabled", dnsDisabled); Services.prefs.setBoolPref("network.dns.disabled", dnsDisabled);
try { try {
dns.asyncResolve( Services.dns.asyncResolve(
testDomain, testDomain,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,

View file

@ -1,6 +1,5 @@
"use strict"; "use strict";
var dns = Cc["@mozilla.org/network/dns-service;1"].getService(Ci.nsIDNSService);
var prefs = Services.prefs; var prefs = Services.prefs;
var nextTest; var nextTest;
@ -24,7 +23,7 @@ function run_test() {
var mainThread = Services.tm.currentThread; var mainThread = Services.tm.currentThread;
nextTest = do_test_2; nextTest = do_test_2;
dns.asyncResolve( Services.dns.asyncResolve(
"local.vingtetun.org", "local.vingtetun.org",
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -41,7 +40,7 @@ function do_test_2() {
var mainThread = Services.tm.currentThread; var mainThread = Services.tm.currentThread;
nextTest = testsDone; nextTest = testsDone;
prefs.setCharPref("network.dns.forceResolve", "localhost"); prefs.setCharPref("network.dns.forceResolve", "localhost");
dns.asyncResolve( Services.dns.asyncResolve(
"www.example.com", "www.example.com",
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,

View file

@ -1,6 +1,5 @@
"use strict"; "use strict";
var dns = Cc["@mozilla.org/network/dns-service;1"].getService(Ci.nsIDNSService);
var ioService = Services.io; var ioService = Services.io;
var prefs = Services.prefs; var prefs = Services.prefs;
var mainThread = Services.tm.currentThread; var mainThread = Services.tm.currentThread;
@ -44,7 +43,7 @@ function run_test() {
prefs.setBoolPref("network.proxy.allow_hijacking_localhost", true); prefs.setBoolPref("network.proxy.allow_hijacking_localhost", true);
ioService.offline = true; ioService.offline = true;
try { try {
dns.asyncResolve( Services.dns.asyncResolve(
"localhost", "localhost",
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -70,7 +69,7 @@ function test2() {
} }
function test2Continued() { function test2Continued() {
dns.asyncResolve( Services.dns.asyncResolve(
"localhost", "localhost",
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -89,7 +88,7 @@ function test3() {
} }
function test3Continued() { function test3Continued() {
dns.asyncResolve( Services.dns.asyncResolve(
"localhost", "localhost",
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,

View file

@ -1,6 +1,5 @@
"use strict"; "use strict";
var dns = Cc["@mozilla.org/network/dns-service;1"].getService(Ci.nsIDNSService);
var mainThread = Services.tm.currentThread; var mainThread = Services.tm.currentThread;
var onionPref; var onionPref;
@ -31,7 +30,7 @@ const defaultOriginAttributes = {};
function do_test_dontBlock() { function do_test_dontBlock() {
prefs.setBoolPref("network.dns.blockDotOnion", false); prefs.setBoolPref("network.dns.blockDotOnion", false);
dns.asyncResolve( Services.dns.asyncResolve(
"private.onion", "private.onion",
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -45,7 +44,7 @@ function do_test_dontBlock() {
function do_test_block() { function do_test_block() {
prefs.setBoolPref("network.dns.blockDotOnion", true); prefs.setBoolPref("network.dns.blockDotOnion", true);
try { try {
dns.asyncResolve( Services.dns.asyncResolve(
"private.onion", "private.onion",
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,

View file

@ -1,6 +1,5 @@
"use strict"; "use strict";
var dns = Cc["@mozilla.org/network/dns-service;1"].getService(Ci.nsIDNSService);
var prefs = Services.prefs; var prefs = Services.prefs;
var mainThread = Services.tm.currentThread; var mainThread = Services.tm.currentThread;
@ -41,7 +40,7 @@ const secondOriginAttributes = { userContextId: 2 };
function run_test() { function run_test() {
do_test_pending(); do_test_pending();
prefs.setBoolPref("network.proxy.allow_hijacking_localhost", true); prefs.setBoolPref("network.proxy.allow_hijacking_localhost", true);
dns.asyncResolve( Services.dns.asyncResolve(
"localhost", "localhost",
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -56,7 +55,7 @@ function run_test() {
// correctly. // correctly.
function test2() { function test2() {
do_test_pending(); do_test_pending();
dns.asyncResolve( Services.dns.asyncResolve(
"localhost", "localhost",
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_OFFLINE, Ci.nsIDNSService.RESOLVE_OFFLINE,
@ -73,7 +72,7 @@ function test2() {
function test3() { function test3() {
do_test_pending(); do_test_pending();
try { try {
dns.asyncResolve( Services.dns.asyncResolve(
"localhost", "localhost",
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_OFFLINE, Ci.nsIDNSService.RESOLVE_OFFLINE,

View file

@ -1,8 +1,5 @@
"use strict"; "use strict";
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const override = Cc["@mozilla.org/network/native-dns-override;1"].getService( const override = Cc["@mozilla.org/network/native-dns-override;1"].getService(
Ci.nsINativeDNSResolverOverride Ci.nsINativeDNSResolverOverride
); );
@ -77,7 +74,7 @@ add_task(async function test_bad_IPs() {
add_task(async function test_ipv4() { add_task(async function test_ipv4() {
let listener = new Listener(); let listener = new Listener();
override.addIPOverride(DOMAIN, "1.2.3.4"); override.addIPOverride(DOMAIN, "1.2.3.4");
dns.asyncResolve( Services.dns.asyncResolve(
DOMAIN, DOMAIN,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -88,14 +85,14 @@ add_task(async function test_ipv4() {
); );
Assert.equal(await listener.firstAddress(), "1.2.3.4"); Assert.equal(await listener.firstAddress(), "1.2.3.4");
dns.clearCache(false); Services.dns.clearCache(false);
override.clearOverrides(); override.clearOverrides();
}); });
add_task(async function test_ipv6() { add_task(async function test_ipv6() {
let listener = new Listener(); let listener = new Listener();
override.addIPOverride(DOMAIN, "fe80::6a99:9b2b:6ccc:6e1b"); override.addIPOverride(DOMAIN, "fe80::6a99:9b2b:6ccc:6e1b");
dns.asyncResolve( Services.dns.asyncResolve(
DOMAIN, DOMAIN,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -106,14 +103,14 @@ add_task(async function test_ipv6() {
); );
Assert.equal(await listener.firstAddress(), "fe80::6a99:9b2b:6ccc:6e1b"); Assert.equal(await listener.firstAddress(), "fe80::6a99:9b2b:6ccc:6e1b");
dns.clearCache(false); Services.dns.clearCache(false);
override.clearOverrides(); override.clearOverrides();
}); });
add_task(async function test_clearOverrides() { add_task(async function test_clearOverrides() {
let listener = new Listener(); let listener = new Listener();
override.addIPOverride(DOMAIN, "1.2.3.4"); override.addIPOverride(DOMAIN, "1.2.3.4");
dns.asyncResolve( Services.dns.asyncResolve(
DOMAIN, DOMAIN,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -124,11 +121,11 @@ add_task(async function test_clearOverrides() {
); );
Assert.equal(await listener.firstAddress(), "1.2.3.4"); Assert.equal(await listener.firstAddress(), "1.2.3.4");
dns.clearCache(false); Services.dns.clearCache(false);
override.clearOverrides(); override.clearOverrides();
listener = new Listener(); listener = new Listener();
dns.asyncResolve( Services.dns.asyncResolve(
DOMAIN, DOMAIN,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -140,7 +137,7 @@ add_task(async function test_clearOverrides() {
Assert.notEqual(await listener.firstAddress(), "1.2.3.4"); Assert.notEqual(await listener.firstAddress(), "1.2.3.4");
await new Promise(resolve => do_timeout(1000, resolve)); await new Promise(resolve => do_timeout(1000, resolve));
dns.clearCache(false); Services.dns.clearCache(false);
override.clearOverrides(); override.clearOverrides();
}); });
@ -149,7 +146,7 @@ add_task(async function test_clearHostOverride() {
override.addIPOverride(OTHER, "2.2.2.2"); override.addIPOverride(OTHER, "2.2.2.2");
override.clearHostOverride(DOMAIN); override.clearHostOverride(DOMAIN);
let listener = new Listener(); let listener = new Listener();
dns.asyncResolve( Services.dns.asyncResolve(
DOMAIN, DOMAIN,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -162,7 +159,7 @@ add_task(async function test_clearHostOverride() {
Assert.notEqual(await listener.firstAddress(), "2.2.2.2"); Assert.notEqual(await listener.firstAddress(), "2.2.2.2");
listener = new Listener(); listener = new Listener();
dns.asyncResolve( Services.dns.asyncResolve(
OTHER, OTHER,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -181,7 +178,7 @@ add_task(async function test_clearHostOverride() {
// If the next task ever starts failing, with an IP that is not in this // If the next task ever starts failing, with an IP that is not in this
// file, then likely the timeout is too small. // file, then likely the timeout is too small.
await new Promise(resolve => do_timeout(1000, resolve)); await new Promise(resolve => do_timeout(1000, resolve));
dns.clearCache(false); Services.dns.clearCache(false);
override.clearOverrides(); override.clearOverrides();
}); });
@ -191,7 +188,7 @@ add_task(async function test_multiple_IPs() {
override.addIPOverride(DOMAIN, "::1"); override.addIPOverride(DOMAIN, "::1");
override.addIPOverride(DOMAIN, "fe80::6a99:9b2b:6ccc:6e1b"); override.addIPOverride(DOMAIN, "fe80::6a99:9b2b:6ccc:6e1b");
let listener = new Listener(); let listener = new Listener();
dns.asyncResolve( Services.dns.asyncResolve(
DOMAIN, DOMAIN,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -207,7 +204,7 @@ add_task(async function test_multiple_IPs() {
"fe80::6a99:9b2b:6ccc:6e1b", "fe80::6a99:9b2b:6ccc:6e1b",
]); ]);
dns.clearCache(false); Services.dns.clearCache(false);
override.clearOverrides(); override.clearOverrides();
}); });
@ -217,7 +214,7 @@ add_task(async function test_address_family_flags() {
override.addIPOverride(DOMAIN, "::1"); override.addIPOverride(DOMAIN, "::1");
override.addIPOverride(DOMAIN, "fe80::6a99:9b2b:6ccc:6e1b"); override.addIPOverride(DOMAIN, "fe80::6a99:9b2b:6ccc:6e1b");
let listener = new Listener(); let listener = new Listener();
dns.asyncResolve( Services.dns.asyncResolve(
DOMAIN, DOMAIN,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_DISABLE_IPV4, Ci.nsIDNSService.RESOLVE_DISABLE_IPV4,
@ -232,7 +229,7 @@ add_task(async function test_address_family_flags() {
]); ]);
listener = new Listener(); listener = new Listener();
dns.asyncResolve( Services.dns.asyncResolve(
DOMAIN, DOMAIN,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_DISABLE_IPV6, Ci.nsIDNSService.RESOLVE_DISABLE_IPV6,
@ -243,14 +240,14 @@ add_task(async function test_address_family_flags() {
); );
Assert.deepEqual(await listener.addresses(), ["2.2.2.2", "1.1.1.1"]); Assert.deepEqual(await listener.addresses(), ["2.2.2.2", "1.1.1.1"]);
dns.clearCache(false); Services.dns.clearCache(false);
override.clearOverrides(); override.clearOverrides();
}); });
add_task(async function test_cname_flag() { add_task(async function test_cname_flag() {
override.addIPOverride(DOMAIN, "2.2.2.2"); override.addIPOverride(DOMAIN, "2.2.2.2");
let listener = new Listener(); let listener = new Listener();
dns.asyncResolve( Services.dns.asyncResolve(
DOMAIN, DOMAIN,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -269,7 +266,7 @@ add_task(async function test_cname_flag() {
Assert.equal(inRecord.getNextAddrAsString(), "2.2.2.2"); Assert.equal(inRecord.getNextAddrAsString(), "2.2.2.2");
listener = new Listener(); listener = new Listener();
dns.asyncResolve( Services.dns.asyncResolve(
DOMAIN, DOMAIN,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_CANONICAL_NAME, Ci.nsIDNSService.RESOLVE_CANONICAL_NAME,
@ -283,13 +280,13 @@ add_task(async function test_cname_flag() {
Assert.equal(inRecord.canonicalName, DOMAIN, "No canonical name specified"); Assert.equal(inRecord.canonicalName, DOMAIN, "No canonical name specified");
Assert.equal(inRecord.getNextAddrAsString(), "2.2.2.2"); Assert.equal(inRecord.getNextAddrAsString(), "2.2.2.2");
dns.clearCache(false); Services.dns.clearCache(false);
override.clearOverrides(); override.clearOverrides();
override.addIPOverride(DOMAIN, "2.2.2.2"); override.addIPOverride(DOMAIN, "2.2.2.2");
override.setCnameOverride(DOMAIN, OTHER); override.setCnameOverride(DOMAIN, OTHER);
listener = new Listener(); listener = new Listener();
dns.asyncResolve( Services.dns.asyncResolve(
DOMAIN, DOMAIN,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_CANONICAL_NAME, Ci.nsIDNSService.RESOLVE_CANONICAL_NAME,
@ -303,14 +300,14 @@ add_task(async function test_cname_flag() {
Assert.equal(inRecord.canonicalName, OTHER, "Must have correct CNAME"); Assert.equal(inRecord.canonicalName, OTHER, "Must have correct CNAME");
Assert.equal(inRecord.getNextAddrAsString(), "2.2.2.2"); Assert.equal(inRecord.getNextAddrAsString(), "2.2.2.2");
dns.clearCache(false); Services.dns.clearCache(false);
override.clearOverrides(); override.clearOverrides();
}); });
add_task(async function test_nxdomain() { add_task(async function test_nxdomain() {
override.addIPOverride(DOMAIN, "N/A"); override.addIPOverride(DOMAIN, "N/A");
let listener = new Listener(); let listener = new Listener();
dns.asyncResolve( Services.dns.asyncResolve(
DOMAIN, DOMAIN,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_CANONICAL_NAME, Ci.nsIDNSService.RESOLVE_CANONICAL_NAME,

View file

@ -1,8 +1,5 @@
"use strict"; "use strict";
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const override = Cc["@mozilla.org/network/native-dns-override;1"].getService( const override = Cc["@mozilla.org/network/native-dns-override;1"].getService(
Ci.nsINativeDNSResolverOverride Ci.nsINativeDNSResolverOverride
); );
@ -54,7 +51,7 @@ DOMAINS.forEach(domain => {
}); });
// Verify that loopback host names are not overridden. // Verify that loopback host names are not overridden.
dns.asyncResolve( Services.dns.asyncResolve(
domain, domain,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -73,7 +70,7 @@ DOMAINS.forEach(domain => {
// registered above are taken into account. // registered above are taken into account.
Services.prefs.setBoolPref("network.proxy.allow_hijacking_localhost", true); Services.prefs.setBoolPref("network.proxy.allow_hijacking_localhost", true);
let listener2 = new Listener(); let listener2 = new Listener();
dns.asyncResolve( Services.dns.asyncResolve(
domain, domain,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -89,7 +86,7 @@ DOMAINS.forEach(domain => {
); );
Services.prefs.clearUserPref("network.proxy.allow_hijacking_localhost"); Services.prefs.clearUserPref("network.proxy.allow_hijacking_localhost");
dns.clearCache(false); Services.dns.clearCache(false);
override.clearOverrides(); override.clearOverrides();
}); });
}); });

View file

@ -24,9 +24,6 @@ XPCOMUtils.defineLazyGetter(this, "URL6b", function() {
return `http://example6b.com:${httpServerIPv6.identity.primaryPort}${testpath}`; return `http://example6b.com:${httpServerIPv6.identity.primaryPort}${testpath}`;
}); });
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const ncs = Cc[ const ncs = Cc[
"@mozilla.org/network/network-connectivity-service;1" "@mozilla.org/network/network-connectivity-service;1"
].getService(Ci.nsINetworkConnectivityService); ].getService(Ci.nsINetworkConnectivityService);
@ -77,6 +74,7 @@ add_task(async function test_setup() {
await trrServer.start(); await trrServer.start();
if (mozinfo.socketprocess_networking) { if (mozinfo.socketprocess_networking) {
Services.dns; // Needed to trigger socket process.
await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched); await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched);
} }
@ -126,7 +124,7 @@ async function registerDoHAnswers(ipv4, ipv6) {
}); });
} }
dns.clearCache(true); Services.dns.clearCache(true);
} }
let StatusCounter = function() { let StatusCounter = function() {
@ -273,7 +271,7 @@ add_task(async function test_prefer_address_version_fail_trr3_1() {
// Make IPv6 connectivity check fail // Make IPv6 connectivity check fail
await setup_connectivity(false, true); await setup_connectivity(false, true);
dns.clearCache(true); Services.dns.clearCache(true);
// This will succeed as we query both DNS records // This will succeed as we query both DNS records
await make_request(URL6a, true, true); await make_request(URL6a, true, true);
@ -305,7 +303,7 @@ add_task(async function test_prefer_address_version_fail_trr3_2() {
// Make IPv6 connectivity check fail // Make IPv6 connectivity check fail
await setup_connectivity(false, true); await setup_connectivity(false, true);
dns.clearCache(true); Services.dns.clearCache(true);
// This will succeed as we query both DNS records // This will succeed as we query both DNS records
await make_request(URL6b, false, true); await make_request(URL6b, false, true);

View file

@ -1,8 +1,5 @@
"use strict"; "use strict";
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const defaultOriginAttributes = {}; const defaultOriginAttributes = {};
const mainThread = Services.tm.currentThread; const mainThread = Services.tm.currentThread;
@ -36,7 +33,7 @@ const ADDR2 = "::1";
add_task(async function test_dns_localhost() { add_task(async function test_dns_localhost() {
let listener = new Listener(); let listener = new Listener();
dns.asyncResolve( Services.dns.asyncResolve(
"localhost", "localhost",
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
0, 0,
@ -53,7 +50,7 @@ add_task(async function test_dns_localhost() {
add_task(async function test_idn_cname() { add_task(async function test_idn_cname() {
let listener = new Listener(); let listener = new Listener();
dns.asyncResolve( Services.dns.asyncResolve(
DOMAIN_IDN, DOMAIN_IDN,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_CANONICAL_NAME, Ci.nsIDNSService.RESOLVE_CANONICAL_NAME,
@ -76,7 +73,7 @@ add_task(
let listener = new Listener(); let listener = new Listener();
let domain = "a".repeat(253); let domain = "a".repeat(253);
overrideService.addIPOverride(domain, "1.2.3.4"); overrideService.addIPOverride(domain, "1.2.3.4");
dns.asyncResolve( Services.dns.asyncResolve(
domain, domain,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_CANONICAL_NAME, Ci.nsIDNSService.RESOLVE_CANONICAL_NAME,
@ -96,7 +93,7 @@ add_task(
if (mozinfo.socketprocess_networking) { if (mozinfo.socketprocess_networking) {
// When using the socket process, the call fails asynchronously. // When using the socket process, the call fails asynchronously.
dns.asyncResolve( Services.dns.asyncResolve(
domain, domain,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_CANONICAL_NAME, Ci.nsIDNSService.RESOLVE_CANONICAL_NAME,
@ -110,7 +107,7 @@ add_task(
} else { } else {
Assert.throws( Assert.throws(
() => { () => {
dns.asyncResolve( Services.dns.asyncResolve(
domain, domain,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_CANONICAL_NAME, Ci.nsIDNSService.RESOLVE_CANONICAL_NAME,
@ -128,7 +125,7 @@ add_task(
listener = new Listener(); listener = new Listener();
domain = "a".repeat(254); domain = "a".repeat(254);
Services.prefs.setBoolPref("network.dns.limit_253_chars", false); Services.prefs.setBoolPref("network.dns.limit_253_chars", false);
dns.asyncResolve( Services.dns.asyncResolve(
domain, domain,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_CANONICAL_NAME, Ci.nsIDNSService.RESOLVE_CANONICAL_NAME,

View file

@ -13,9 +13,6 @@ let h2Port;
let h3Port; let h3Port;
let trrServer; let trrServer;
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const { TestUtils } = ChromeUtils.importESModule( const { TestUtils } = ChromeUtils.importESModule(
"resource://testing-common/TestUtils.sys.mjs" "resource://testing-common/TestUtils.sys.mjs"
); );
@ -35,6 +32,7 @@ add_setup(async function setup() {
trr_test_setup(); trr_test_setup();
if (mozinfo.socketprocess_networking) { if (mozinfo.socketprocess_networking) {
Services.dns; // Needed to trigger socket process.
await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched); await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched);
} }
@ -772,7 +770,7 @@ add_task(async function testTwoFastFallbackTimers() {
Services.obs.notifyObservers(null, "net:prune-all-connections"); Services.obs.notifyObservers(null, "net:prune-all-connections");
Services.obs.notifyObservers(null, "network:reset-http3-excluded-list"); Services.obs.notifyObservers(null, "network:reset-http3-excluded-list");
dns.clearCache(true); Services.dns.clearCache(true);
// Do the same test again, but with a different configuration. // Do the same test again, but with a different configuration.
Services.prefs.setIntPref( Services.prefs.setIntPref(

View file

@ -8,10 +8,6 @@ ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
let trrServer; let trrServer;
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
function setup() { function setup() {
trr_test_setup(); trr_test_setup();
@ -101,7 +97,7 @@ add_task(async function testEchConfigEnabled() {
}); });
let { inRecord } = await new TRRDNSListener("test.bar.com", { let { inRecord } = await new TRRDNSListener("test.bar.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
}); });
checkResult(inRecord, false, false, { checkResult(inRecord, false, false, {
@ -122,10 +118,10 @@ add_task(async function testEchConfigEnabled() {
checkResult(inRecord, true, true); checkResult(inRecord, true, true);
Services.prefs.setBoolPref("network.dns.echconfig.enabled", true); Services.prefs.setBoolPref("network.dns.echconfig.enabled", true);
dns.clearCache(true); Services.dns.clearCache(true);
({ inRecord } = await new TRRDNSListener("test.bar.com", { ({ inRecord } = await new TRRDNSListener("test.bar.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
})); }));
checkResult(inRecord, false, false, { checkResult(inRecord, false, false, {
@ -156,7 +152,7 @@ add_task(async function testEchConfigEnabled() {
// When network.dns.http3_echconfig.enabled is false, we should try to // When network.dns.http3_echconfig.enabled is false, we should try to
// connect with h2 and echConfig. // connect with h2 and echConfig.
add_task(async function testTwoRecordsHaveEchConfig() { add_task(async function testTwoRecordsHaveEchConfig() {
dns.clearCache(true); Services.dns.clearCache(true);
let trrServer = new TRRServer(); let trrServer = new TRRServer();
await trrServer.start(); await trrServer.start();
@ -203,7 +199,7 @@ add_task(async function testTwoRecordsHaveEchConfig() {
}); });
let { inRecord } = await new TRRDNSListener("test.foo.com", { let { inRecord } = await new TRRDNSListener("test.foo.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
}); });
checkResult(inRecord, false, false, { checkResult(inRecord, false, false, {
@ -224,9 +220,9 @@ add_task(async function testTwoRecordsHaveEchConfig() {
checkResult(inRecord, true, true); checkResult(inRecord, true, true);
Services.prefs.setBoolPref("network.dns.http3_echconfig.enabled", true); Services.prefs.setBoolPref("network.dns.http3_echconfig.enabled", true);
dns.clearCache(true); Services.dns.clearCache(true);
({ inRecord } = await new TRRDNSListener("test.foo.com", { ({ inRecord } = await new TRRDNSListener("test.foo.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
})); }));
checkResult(inRecord, false, false, { checkResult(inRecord, false, false, {
@ -255,7 +251,7 @@ add_task(async function testTwoRecordsHaveEchConfig() {
// When network.dns.http3_echconfig.enabled is false, we should use the record // When network.dns.http3_echconfig.enabled is false, we should use the record
// that supports h3 and h2 (the alpn is h2). // that supports h3 and h2 (the alpn is h2).
add_task(async function testTwoRecordsHaveEchConfig1() { add_task(async function testTwoRecordsHaveEchConfig1() {
dns.clearCache(true); Services.dns.clearCache(true);
let trrServer = new TRRServer(); let trrServer = new TRRServer();
await trrServer.start(); await trrServer.start();
@ -302,7 +298,7 @@ add_task(async function testTwoRecordsHaveEchConfig1() {
}); });
let { inRecord } = await new TRRDNSListener("test.foo.com", { let { inRecord } = await new TRRDNSListener("test.foo.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
}); });
checkResult(inRecord, false, false, { checkResult(inRecord, false, false, {
@ -327,9 +323,9 @@ add_task(async function testTwoRecordsHaveEchConfig1() {
}); });
Services.prefs.setBoolPref("network.dns.http3_echconfig.enabled", true); Services.prefs.setBoolPref("network.dns.http3_echconfig.enabled", true);
dns.clearCache(true); Services.dns.clearCache(true);
({ inRecord } = await new TRRDNSListener("test.foo.com", { ({ inRecord } = await new TRRDNSListener("test.foo.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
})); }));
checkResult(inRecord, false, false, { checkResult(inRecord, false, false, {
@ -361,7 +357,7 @@ add_task(async function testTwoRecordsHaveEchConfig1() {
// There are two records: only one support h3 and only one has echConfig. // There are two records: only one support h3 and only one has echConfig.
// This test is about never usng the record without echConfig. // This test is about never usng the record without echConfig.
add_task(async function testOneRecordsHasEchConfig() { add_task(async function testOneRecordsHasEchConfig() {
dns.clearCache(true); Services.dns.clearCache(true);
let trrServer = new TRRServer(); let trrServer = new TRRServer();
await trrServer.start(); await trrServer.start();
@ -405,7 +401,7 @@ add_task(async function testOneRecordsHasEchConfig() {
}); });
let { inRecord } = await new TRRDNSListener("test.foo.com", { let { inRecord } = await new TRRDNSListener("test.foo.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
}); });
checkResult(inRecord, false, false, { checkResult(inRecord, false, false, {
@ -426,9 +422,9 @@ add_task(async function testOneRecordsHasEchConfig() {
checkResult(inRecord, true, true); checkResult(inRecord, true, true);
Services.prefs.setBoolPref("network.dns.http3_echconfig.enabled", true); Services.prefs.setBoolPref("network.dns.http3_echconfig.enabled", true);
dns.clearCache(true); Services.dns.clearCache(true);
({ inRecord } = await new TRRDNSListener("test.foo.com", { ({ inRecord } = await new TRRDNSListener("test.foo.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
})); }));
checkResult(inRecord, false, false, { checkResult(inRecord, false, false, {
@ -455,7 +451,7 @@ add_task(async function testOneRecordsHasEchConfig() {
// Test the case that "network.http.http3.enable" and // Test the case that "network.http.http3.enable" and
// "network.http.http2.enabled" are true/false. // "network.http.http2.enabled" are true/false.
add_task(async function testHttp3AndHttp2Pref() { add_task(async function testHttp3AndHttp2Pref() {
dns.clearCache(true); Services.dns.clearCache(true);
let trrServer = new TRRServer(); let trrServer = new TRRServer();
await trrServer.start(); await trrServer.start();
@ -503,7 +499,7 @@ add_task(async function testHttp3AndHttp2Pref() {
}); });
let { inRecord } = await new TRRDNSListener("test.foo.com", { let { inRecord } = await new TRRDNSListener("test.foo.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
}); });
checkResult(inRecord, false, false, { checkResult(inRecord, false, false, {

View file

@ -8,10 +8,6 @@ ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
let trrServer; let trrServer;
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const { TestUtils } = ChromeUtils.importESModule( const { TestUtils } = ChromeUtils.importESModule(
"resource://testing-common/TestUtils.sys.mjs" "resource://testing-common/TestUtils.sys.mjs"
); );
@ -28,6 +24,7 @@ add_setup(async function setup() {
}); });
if (mozinfo.socketprocess_networking) { if (mozinfo.socketprocess_networking) {
Services.dns; // Needed to trigger socket process.
await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched); await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched);
} }
}); });
@ -55,7 +52,7 @@ function checkResult(inRecord, noHttp2, noHttp3, result) {
} }
add_task(async function testSortedAlpnH3() { add_task(async function testSortedAlpnH3() {
dns.clearCache(true); Services.dns.clearCache(true);
trrServer = new TRRServer(); trrServer = new TRRServer();
await trrServer.start(); await trrServer.start();
@ -83,7 +80,7 @@ add_task(async function testSortedAlpnH3() {
}); });
let { inRecord } = await new TRRDNSListener("test.alpn.com", { let { inRecord } = await new TRRDNSListener("test.alpn.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
}); });
checkResult(inRecord, false, false, { checkResult(inRecord, false, false, {
@ -178,7 +175,7 @@ add_task(async function testSortedAlpnH3() {
}); });
add_task(async function testSortedAlpnH2() { add_task(async function testSortedAlpnH2() {
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 3); Services.prefs.setIntPref("network.trr.mode", 3);
Services.prefs.setCharPref( Services.prefs.setCharPref(
@ -202,7 +199,7 @@ add_task(async function testSortedAlpnH2() {
}); });
let { inRecord } = await new TRRDNSListener("test.alpn_2.com", { let { inRecord } = await new TRRDNSListener("test.alpn_2.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
}); });
checkResult(inRecord, false, false, { checkResult(inRecord, false, false, {

View file

@ -6,10 +6,6 @@
ChromeUtils.import("resource://gre/modules/NetUtil.jsm"); ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const certOverrideService = Cc[ const certOverrideService = Cc[
"@mozilla.org/security/certoverride;1" "@mozilla.org/security/certoverride;1"
].getService(Ci.nsICertOverrideService); ].getService(Ci.nsICertOverrideService);
@ -56,6 +52,7 @@ add_setup(async function setup() {
}); });
if (mozinfo.socketprocess_networking) { if (mozinfo.socketprocess_networking) {
Services.dns; // Needed to trigger socket process.
await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched); await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched);
} }
@ -115,7 +112,7 @@ EventSinkListener.prototype.QueryInterface = ChromeUtils.generateQI([
// Test if the request is upgraded to https with a HTTPSSVC record. // Test if the request is upgraded to https with a HTTPSSVC record.
add_task(async function testUseHTTPSSVCAsHSTS() { add_task(async function testUseHTTPSSVCAsHSTS() {
dns.clearCache(true); Services.dns.clearCache(true);
// Do DNS resolution before creating the channel, so the HTTPSSVC record will // Do DNS resolution before creating the channel, so the HTTPSSVC record will
// be resolved from the cache. // be resolved from the cache.
await new TRRDNSListener("test.httpssvc.com", { await new TRRDNSListener("test.httpssvc.com", {
@ -147,7 +144,7 @@ add_task(async function testUseHTTPSSVCAsHSTS() {
// nsHttpChannel::OnHTTPSRRAvailable is called after // nsHttpChannel::OnHTTPSRRAvailable is called after
// nsHttpChannel::MaybeUseHTTPSRRForUpgrade. // nsHttpChannel::MaybeUseHTTPSRRForUpgrade.
add_task(async function testInvalidDNSResult() { add_task(async function testInvalidDNSResult() {
dns.clearCache(true); Services.dns.clearCache(true);
let httpserv = new HttpServer(); let httpserv = new HttpServer();
let content = "ok"; let content = "ok";
@ -173,7 +170,7 @@ add_task(async function testInvalidDNSResult() {
// The same test as above, but nsHttpChannel::MaybeUseHTTPSRRForUpgrade is // The same test as above, but nsHttpChannel::MaybeUseHTTPSRRForUpgrade is
// called after nsHttpChannel::OnHTTPSRRAvailable. // called after nsHttpChannel::OnHTTPSRRAvailable.
add_task(async function testInvalidDNSResult1() { add_task(async function testInvalidDNSResult1() {
dns.clearCache(true); Services.dns.clearCache(true);
let httpserv = new HttpServer(); let httpserv = new HttpServer();
let content = "ok"; let content = "ok";
@ -202,7 +199,7 @@ add_task(async function testInvalidDNSResult1() {
channel.suspend(); channel.suspend();
new TRRDNSListener("foo.notexisted.com", { new TRRDNSListener("foo.notexisted.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
expectedSuccess: false, expectedSuccess: false,
}).then(() => channel.resume()); }).then(() => channel.resume());
} }
@ -232,7 +229,7 @@ add_task(async function testLiteralIP() {
// Test the case that an HTTPS RR is available and the server returns a 307 // Test the case that an HTTPS RR is available and the server returns a 307
// for redirecting back to http. // for redirecting back to http.
add_task(async function testEndlessUpgradeDowngrade() { add_task(async function testEndlessUpgradeDowngrade() {
dns.clearCache(true); Services.dns.clearCache(true);
let httpserv = new HttpServer(); let httpserv = new HttpServer();
let content = "okok"; let content = "okok";
@ -257,7 +254,7 @@ add_task(async function testEndlessUpgradeDowngrade() {
}); });
add_task(async function testHttpRequestBlocked() { add_task(async function testHttpRequestBlocked() {
dns.clearCache(true); Services.dns.clearCache(true);
let dnsRequestObserver = { let dnsRequestObserver = {
register() { register() {
@ -324,7 +321,7 @@ function createPrincipal(url) {
// Test if the Origin header stays the same after an internal HTTPS upgrade // Test if the Origin header stays the same after an internal HTTPS upgrade
// caused by HTTPS RR. // caused by HTTPS RR.
add_task(async function testHTTPSRRUpgradeWithOriginHeader() { add_task(async function testHTTPSRRUpgradeWithOriginHeader() {
dns.clearCache(true); Services.dns.clearCache(true);
const url = "http://test.httpssvc.com:80/origin_header"; const url = "http://test.httpssvc.com:80/origin_header";
const originURL = "http://example.com"; const originURL = "http://example.com";

View file

@ -9,9 +9,6 @@ ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
let h2Port; let h2Port;
let trrServer; let trrServer;
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const certOverrideService = Cc[ const certOverrideService = Cc[
"@mozilla.org/security/certoverride;1" "@mozilla.org/security/certoverride;1"
].getService(Ci.nsICertOverrideService); ].getService(Ci.nsICertOverrideService);
@ -38,6 +35,7 @@ add_setup(async function setup() {
}); });
if (mozinfo.socketprocess_networking) { if (mozinfo.socketprocess_networking) {
Services.dns; // Needed to trigger socket process.
await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched); await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched);
} }
}); });
@ -175,7 +173,7 @@ function channelOpenPromise(chan, flags) {
// Test if we can connect to the server with the IP hint address. // Test if we can connect to the server with the IP hint address.
add_task(async function testConnectionWithIPHint() { add_task(async function testConnectionWithIPHint() {
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 3); Services.prefs.setIntPref("network.trr.mode", 3);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.uri", "network.trr.uri",
@ -263,7 +261,7 @@ add_task(async function testIPHintWithFreshDNS() {
}); });
let { inRecord } = await new TRRDNSListener("test.iphint.org", { let { inRecord } = await new TRRDNSListener("test.iphint.org", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
}); });
let answer = inRecord.QueryInterface(Ci.nsIDNSHTTPSSVCRecord).records; let answer = inRecord.QueryInterface(Ci.nsIDNSHTTPSSVCRecord).records;

View file

@ -12,10 +12,6 @@ registerCleanupFunction(async () => {
Services.prefs.clearUserPref("network.dns.echconfig.enabled"); Services.prefs.clearUserPref("network.dns.echconfig.enabled");
}); });
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
add_task(async function testPriorityAndECHConfig() { add_task(async function testPriorityAndECHConfig() {
let trrServer = new TRRServer(); let trrServer = new TRRServer();
registerCleanupFunction(async () => { registerCleanupFunction(async () => {
@ -99,7 +95,7 @@ add_task(async function testPriorityAndECHConfig() {
Assert.equal(answer[3].name, "test.p4.com"); Assert.equal(answer[3].name, "test.p4.com");
Services.prefs.setBoolPref("network.dns.echconfig.enabled", true); Services.prefs.setBoolPref("network.dns.echconfig.enabled", true);
dns.clearCache(true); Services.dns.clearCache(true);
({ inRecord } = await new TRRDNSListener("test.priority.com", { ({ inRecord } = await new TRRDNSListener("test.priority.com", {
type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
})); }));

View file

@ -13,9 +13,6 @@ let trrServer;
let h3Port; let h3Port;
let h3EchConfig; let h3EchConfig;
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const certOverrideService = Cc[ const certOverrideService = Cc[
"@mozilla.org/security/certoverride;1" "@mozilla.org/security/certoverride;1"
].getService(Ci.nsICertOverrideService); ].getService(Ci.nsICertOverrideService);
@ -250,7 +247,7 @@ add_task(async function testEchRetry() {
// eslint-disable-next-line mozilla/no-arbitrary-setTimeout // eslint-disable-next-line mozilla/no-arbitrary-setTimeout
await new Promise(resolve => setTimeout(resolve, 1000)); await new Promise(resolve => setTimeout(resolve, 1000));
dns.clearCache(true); Services.dns.clearCache(true);
const ECH_CONFIG_TRUSTED_RETRY = const ECH_CONFIG_TRUSTED_RETRY =
"AEn+DQBFTQAgACCKB1Y5SfrGIyk27W82xPpzWTDs3q72c04xSurDWlb9CgAEAAMAA2QWZWNoLXB1YmxpYy5leGFtcGxlLmNvbQAA"; "AEn+DQBFTQAgACCKB1Y5SfrGIyk27W82xPpzWTDs3q72c04xSurDWlb9CgAEAAMAA2QWZWNoLXB1YmxpYy5leGFtcGxlLmNvbQAA";
@ -411,7 +408,7 @@ add_task(async function testH3ConnectWithECH() {
}); });
add_task(async function testH3ConnectWithECHRetry() { add_task(async function testH3ConnectWithECHRetry() {
dns.clearCache(true); Services.dns.clearCache(true);
Services.obs.notifyObservers(null, "net:cancel-all-connections"); Services.obs.notifyObservers(null, "net:cancel-all-connections");
// eslint-disable-next-line mozilla/no-arbitrary-setTimeout // eslint-disable-next-line mozilla/no-arbitrary-setTimeout
await new Promise(resolve => setTimeout(resolve, 1000)); await new Promise(resolve => setTimeout(resolve, 1000));

View file

@ -145,6 +145,7 @@ add_task(async function testSimpleRequestAfterCrash() {
info("wait socket process restart..."); info("wait socket process restart...");
// eslint-disable-next-line mozilla/no-arbitrary-setTimeout // eslint-disable-next-line mozilla/no-arbitrary-setTimeout
await new Promise(resolve => setTimeout(resolve, 1000)); await new Promise(resolve => setTimeout(resolve, 1000));
Services.dns; // Needed to trigger socket process.
await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched); await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched);
await doTestSimpleRequest(true); await doTestSimpleRequest(true);

View file

@ -52,6 +52,7 @@ add_setup(async function setup() {
}); });
if (mozinfo.socketprocess_networking) { if (mozinfo.socketprocess_networking) {
Services.dns; // Needed to trigger socket process.
await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched); await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched);
} }
@ -97,7 +98,7 @@ async function ODoHConfigTest(query, ODoHHost, expectedResult = false) {
} }
await topicObserved("odoh-service-activated"); await topicObserved("odoh-service-activated");
Assert.equal(dns.ODoHActivated, expectedResult); Assert.equal(Services.dns.ODoHActivated, expectedResult);
} }
add_task(async function testODoHConfig1() { add_task(async function testODoHConfig1() {
@ -127,12 +128,12 @@ add_task(async function testODoHConfig6() {
// This is triggered by the expiration of the TTL. // This is triggered by the expiration of the TTL.
await topicObserved("odoh-service-activated"); await topicObserved("odoh-service-activated");
Assert.ok(!dns.ODoHActivated); Assert.ok(!Services.dns.ODoHActivated);
Services.prefs.clearUserPref("network.trr.odoh.min_ttl"); Services.prefs.clearUserPref("network.trr.odoh.min_ttl");
}); });
add_task(async function testODoHConfig7() { add_task(async function testODoHConfig7() {
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 2); // TRR-first Services.prefs.setIntPref("network.trr.mode", 2); // TRR-first
Services.prefs.setBoolPref("network.trr.odoh.enabled", true); Services.prefs.setBoolPref("network.trr.odoh.enabled", true);
// At this point, we've queried the ODoHConfig, but there is no usable config // At this point, we've queried the ODoHConfig, but there is no usable config
@ -147,11 +148,11 @@ async function ODoHConfigTestHTTP(configUri, expectedResult) {
Services.prefs.setCharPref("network.trr.odoh.configs_uri", configUri); Services.prefs.setCharPref("network.trr.odoh.configs_uri", configUri);
await topicObserved("odoh-service-activated"); await topicObserved("odoh-service-activated");
Assert.equal(dns.ODoHActivated, expectedResult); Assert.equal(Services.dns.ODoHActivated, expectedResult);
} }
add_task(async function testODoHConfig8() { add_task(async function testODoHConfig8() {
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref("network.trr.uri", ""); Services.prefs.setCharPref("network.trr.uri", "");
await ODoHConfigTestHTTP( await ODoHConfigTestHTTP(
@ -178,7 +179,7 @@ add_task(async function testODoHConfig9() {
Services.prefs.clearUserPref("network.trr.odoh.configs_uri"); Services.prefs.clearUserPref("network.trr.odoh.configs_uri");
await topicObserved("odoh-service-activated"); await topicObserved("odoh-service-activated");
Assert.ok(dns.ODoHActivated); Assert.ok(Services.dns.ODoHActivated);
await ODoHConfigTestHTTP( await ODoHConfigTestHTTP(
`https://foo.example.com:${h2Port}/odohconfig?downloadFrom=http`, `https://foo.example.com:${h2Port}/odohconfig?downloadFrom=http`,
@ -187,7 +188,7 @@ add_task(async function testODoHConfig9() {
// This is triggered by the expiration of the TTL. // This is triggered by the expiration of the TTL.
await topicObserved("odoh-service-activated"); await topicObserved("odoh-service-activated");
Assert.ok(dns.ODoHActivated); Assert.ok(Services.dns.ODoHActivated);
Services.prefs.clearUserPref("network.trr.odoh.min_ttl"); Services.prefs.clearUserPref("network.trr.odoh.min_ttl");
}); });
@ -269,7 +270,7 @@ add_task(test_no_retry_without_doh);
add_task(test_connection_reuse_and_cycling).skip(); // Bug 1742743 add_task(test_connection_reuse_and_cycling).skip(); // Bug 1742743
add_task(async function testODoHConfigNotAvailableInMode3() { add_task(async function testODoHConfigNotAvailableInMode3() {
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 3); Services.prefs.setIntPref("network.trr.mode", 3);
Services.prefs.setCharPref("network.trr.uri", ""); Services.prefs.setCharPref("network.trr.uri", "");
@ -284,7 +285,7 @@ add_task(async function testODoHConfigNotAvailableInMode3() {
}); });
add_task(async function testODoHConfigNotAvailableInMode2() { add_task(async function testODoHConfigNotAvailableInMode2() {
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 2); Services.prefs.setIntPref("network.trr.mode", 2);
Services.prefs.setCharPref("network.trr.uri", ""); Services.prefs.setCharPref("network.trr.uri", "");

View file

@ -10,9 +10,6 @@ const { TestUtils } = ChromeUtils.importESModule(
const override = Cc["@mozilla.org/network/native-dns-override;1"].getService( const override = Cc["@mozilla.org/network/native-dns-override;1"].getService(
Ci.nsINativeDNSResolverOverride Ci.nsINativeDNSResolverOverride
); );
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
class ConsoleListener { class ConsoleListener {
messages = []; messages = [];
@ -111,7 +108,7 @@ add_task(async function test_bug1724345() {
override.clearOverrides(); override.clearOverrides();
override.addIPOverride("example.org", "N/A"); override.addIPOverride("example.org", "N/A");
override.addIPOverride("null", "127.0.0.1"); override.addIPOverride("null", "127.0.0.1");
dns.clearCache(true); Services.dns.clearCache(true);
let chan = NetUtil.newChannel({ let chan = NetUtil.newChannel({
uri: `http://example.org:1234/`, uri: `http://example.org:1234/`,

View file

@ -98,7 +98,7 @@ add_task(async function test_trr_flags() {
Ci.nsIRequest.TRR_FIRST_MODE, Ci.nsIRequest.TRR_FIRST_MODE,
Ci.nsIRequest.TRR_ONLY_MODE, Ci.nsIRequest.TRR_ONLY_MODE,
]) { ]) {
dns.clearCache(true); Services.dns.clearCache(true);
let chan = makeChan(URL, flag); let chan = makeChan(URL, flag);
let expectTRR = let expectTRR =
([2, 3].includes(mode) && flag != Ci.nsIRequest.TRR_DISABLED_MODE) || ([2, 3].includes(mode) && flag != Ci.nsIRequest.TRR_DISABLED_MODE) ||
@ -127,7 +127,7 @@ add_task(test_A_record);
add_task(async function test_push() { add_task(async function test_push() {
info("Verify DOH push"); info("Verify DOH push");
dns.clearCache(true); Services.dns.clearCache(true);
info("Asking server to push us a record"); info("Asking server to push us a record");
setModeAndURI(3, "doh?responseIP=5.5.5.5&push=true"); setModeAndURI(3, "doh?responseIP=5.5.5.5&push=true");
@ -188,7 +188,7 @@ add_task(test_connection_closed);
add_task(async function test_clearCacheOnURIChange() { add_task(async function test_clearCacheOnURIChange() {
info("Check that the TRR cache should be cleared by a pref change."); info("Check that the TRR cache should be cleared by a pref change.");
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref("network.trr.clear-cache-on-pref-change", true); Services.prefs.setBoolPref("network.trr.clear-cache-on-pref-change", true);
setModeAndURI(2, "doh?responseIP=7.7.7.7"); setModeAndURI(2, "doh?responseIP=7.7.7.7");
@ -207,7 +207,7 @@ add_task(async function test_clearCacheOnURIChange() {
add_task(async function test_dnsSuffix() { add_task(async function test_dnsSuffix() {
info("Checking that domains matching dns suffix list use Do53"); info("Checking that domains matching dns suffix list use Do53");
async function checkDnsSuffixInMode(mode) { async function checkDnsSuffixInMode(mode) {
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(mode, "doh?responseIP=1.2.3.4&push=true"); setModeAndURI(mode, "doh?responseIP=1.2.3.4&push=true");
await new TRRDNSListener("example.org", "1.2.3.4"); await new TRRDNSListener("example.org", "1.2.3.4");
await new TRRDNSListener("push.example.org", "2018::2018"); await new TRRDNSListener("push.example.org", "2018::2018");
@ -253,7 +253,7 @@ add_task(async function test_dnsSuffix() {
add_task(async function test_async_resolve_with_trr_server() { add_task(async function test_async_resolve_with_trr_server() {
info("Checking asyncResolveWithTrrServer"); info("Checking asyncResolveWithTrrServer");
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 0); // TRR-disabled Services.prefs.setIntPref("network.trr.mode", 0); // TRR-disabled
await new TRRDNSListener( await new TRRDNSListener(
@ -268,7 +268,7 @@ add_task(async function test_async_resolve_with_trr_server() {
await new TRRDNSListener("bar_with_trr1.example.com", "127.0.0.1"); await new TRRDNSListener("bar_with_trr1.example.com", "127.0.0.1");
// Mode 2 // Mode 2
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2"); setModeAndURI(2, "doh?responseIP=2.2.2.2");
await new TRRDNSListener( await new TRRDNSListener(
@ -283,7 +283,7 @@ add_task(async function test_async_resolve_with_trr_server() {
await new TRRDNSListener("bar_with_trr2.example.com", "2.2.2.2"); await new TRRDNSListener("bar_with_trr2.example.com", "2.2.2.2");
// Mode 3 // Mode 3
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=2.2.2.2"); setModeAndURI(3, "doh?responseIP=2.2.2.2");
await new TRRDNSListener( await new TRRDNSListener(
@ -298,7 +298,7 @@ add_task(async function test_async_resolve_with_trr_server() {
await new TRRDNSListener("bar_with_trr3.example.com", "2.2.2.2"); await new TRRDNSListener("bar_with_trr3.example.com", "2.2.2.2");
// Mode 5 // Mode 5
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(5, "doh?responseIP=2.2.2.2"); setModeAndURI(5, "doh?responseIP=2.2.2.2");
// When dns is resolved in socket process, we can't set |expectEarlyFail| to true. // When dns is resolved in socket process, we can't set |expectEarlyFail| to true.
@ -316,7 +316,7 @@ add_task(async function test_async_resolve_with_trr_server() {
await new TRRDNSListener("bar_with_trr3.example.com", "127.0.0.1"); await new TRRDNSListener("bar_with_trr3.example.com", "127.0.0.1");
// Check that cache is ignored when server is different // Check that cache is ignored when server is different
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=2.2.2.2"); setModeAndURI(3, "doh?responseIP=2.2.2.2");
await new TRRDNSListener("bar_with_trr4.example.com", "2.2.2.2", true); await new TRRDNSListener("bar_with_trr4.example.com", "2.2.2.2", true);
@ -340,7 +340,7 @@ add_task(async function test_async_resolve_with_trr_server() {
); );
// Check no fallback and no blocklisting upon failure // Check no fallback and no blocklisting upon failure
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2"); setModeAndURI(2, "doh?responseIP=2.2.2.2");
let { inStatus } = await new TRRDNSListener( let { inStatus } = await new TRRDNSListener(
@ -358,7 +358,7 @@ add_task(async function test_async_resolve_with_trr_server() {
await new TRRDNSListener("bar_with_trr6.example.com", "2.2.2.2", true); await new TRRDNSListener("bar_with_trr6.example.com", "2.2.2.2", true);
// Check that DoH push doesn't work // Check that DoH push doesn't work
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2"); setModeAndURI(2, "doh?responseIP=2.2.2.2");
await new TRRDNSListener( await new TRRDNSListener(
@ -384,7 +384,7 @@ add_task(async function test_async_resolve_with_trr_server() {
await new TRRDNSListener("push.example.org", "127.0.0.1"); await new TRRDNSListener("push.example.org", "127.0.0.1");
// Check confirmation is ignored // Check confirmation is ignored
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=1::ffff"); setModeAndURI(2, "doh?responseIP=1::ffff");
Services.prefs.clearUserPref("network.trr.useGET"); Services.prefs.clearUserPref("network.trr.useGET");
Services.prefs.clearUserPref("network.trr.disable-ECS"); Services.prefs.clearUserPref("network.trr.disable-ECS");
@ -405,7 +405,7 @@ add_task(async function test_async_resolve_with_trr_server() {
Services.prefs.setCharPref("network.trr.confirmationNS", "skip"); Services.prefs.setCharPref("network.trr.confirmationNS", "skip");
// Bad port // Bad port
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2"); setModeAndURI(2, "doh?responseIP=2.2.2.2");
({ inStatus } = await new TRRDNSListener( ({ inStatus } = await new TRRDNSListener(
@ -429,7 +429,7 @@ add_task(test_fetch_time);
add_task(async function test_content_encoding_gzip() { add_task(async function test_content_encoding_gzip() {
info("Checking gzip content encoding"); info("Checking gzip content encoding");
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref( Services.prefs.setBoolPref(
"network.trr.send_empty_accept-encoding_headers", "network.trr.send_empty_accept-encoding_headers",
false false
@ -446,7 +446,7 @@ add_task(async function test_redirect() {
info("Check handling of redirect"); info("Check handling of redirect");
// GET // GET
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?redirect=4.4.4.4{&dns}"); setModeAndURI(3, "doh?redirect=4.4.4.4{&dns}");
Services.prefs.setBoolPref("network.trr.useGET", true); Services.prefs.setBoolPref("network.trr.useGET", true);
Services.prefs.setBoolPref("network.trr.disable-ECS", true); Services.prefs.setBoolPref("network.trr.disable-ECS", true);
@ -454,7 +454,7 @@ add_task(async function test_redirect() {
await new TRRDNSListener("ecs.example.com", "4.4.4.4"); await new TRRDNSListener("ecs.example.com", "4.4.4.4");
// POST // POST
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref("network.trr.useGET", false); Services.prefs.setBoolPref("network.trr.useGET", false);
setModeAndURI(3, "doh?redirect=4.4.4.4"); setModeAndURI(3, "doh?redirect=4.4.4.4");
@ -469,7 +469,7 @@ add_task(async function test_redirect() {
// and wait-for-confirmation pref is true // and wait-for-confirmation pref is true
add_task(async function test_confirmation() { add_task(async function test_confirmation() {
info("Checking that we fall back correctly when confirmation is pending"); info("Checking that we fall back correctly when confirmation is pending");
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref("network.trr.wait-for-confirmation", true); Services.prefs.setBoolPref("network.trr.wait-for-confirmation", true);
setModeAndURI(2, "doh?responseIP=7.7.7.7&slowConfirm=true"); setModeAndURI(2, "doh?responseIP=7.7.7.7&slowConfirm=true");
Services.prefs.setCharPref( Services.prefs.setCharPref(
@ -487,7 +487,7 @@ add_task(async function test_confirmation() {
info("Check that confirmation is skipped in mode 3"); info("Check that confirmation is skipped in mode 3");
// This is just a smoke test to make sure lookups succeed immediately // This is just a smoke test to make sure lookups succeed immediately
// in mode 3 without waiting for confirmation. // in mode 3 without waiting for confirmation.
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=1::ffff&slowConfirm=true"); setModeAndURI(3, "doh?responseIP=1::ffff&slowConfirm=true");
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.confirmationNS", "network.trr.confirmationNS",
@ -499,7 +499,7 @@ add_task(async function test_confirmation() {
// Reset between each test to force re-confirm // Reset between each test to force re-confirm
Services.prefs.setCharPref("network.trr.confirmationNS", "skip"); Services.prefs.setCharPref("network.trr.confirmationNS", "skip");
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref("network.trr.wait-for-confirmation", false); Services.prefs.setBoolPref("network.trr.wait-for-confirmation", false);
setModeAndURI(2, "doh?responseIP=7.7.7.7&slowConfirm=true"); setModeAndURI(2, "doh?responseIP=7.7.7.7&slowConfirm=true");
Services.prefs.setCharPref( Services.prefs.setCharPref(
@ -514,7 +514,7 @@ add_task(async function test_confirmation() {
Services.prefs.setCharPref("network.trr.confirmationNS", "skip"); Services.prefs.setCharPref("network.trr.confirmationNS", "skip");
// Fallback when confirmation fails // Fallback when confirmation fails
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref("network.trr.wait-for-confirmation", true); Services.prefs.setBoolPref("network.trr.wait-for-confirmation", true);
setModeAndURI(2, "404"); setModeAndURI(2, "404");
Services.prefs.setCharPref( Services.prefs.setCharPref(
@ -535,7 +535,7 @@ add_task(test_fqdn);
add_task(async function test_detected_uri() { add_task(async function test_detected_uri() {
info("Test setDetectedTrrURI"); info("Test setDetectedTrrURI");
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 3); Services.prefs.setIntPref("network.trr.mode", 3);
Services.prefs.clearUserPref("network.trr.uri"); Services.prefs.clearUserPref("network.trr.uri");
let defaultURI = gDefaultPref.getCharPref("network.trr.default_provider_uri"); let defaultURI = gDefaultPref.getCharPref("network.trr.default_provider_uri");
@ -544,25 +544,25 @@ add_task(async function test_detected_uri() {
`https://foo.example.com:${h2Port}/doh?responseIP=3.4.5.6` `https://foo.example.com:${h2Port}/doh?responseIP=3.4.5.6`
); );
await new TRRDNSListener("domainA.example.org.", "3.4.5.6"); await new TRRDNSListener("domainA.example.org.", "3.4.5.6");
dns.setDetectedTrrURI( Services.dns.setDetectedTrrURI(
`https://foo.example.com:${h2Port}/doh?responseIP=1.2.3.4` `https://foo.example.com:${h2Port}/doh?responseIP=1.2.3.4`
); );
await new TRRDNSListener("domainB.example.org.", "1.2.3.4"); await new TRRDNSListener("domainB.example.org.", "1.2.3.4");
gDefaultPref.setCharPref("network.trr.default_provider_uri", defaultURI); gDefaultPref.setCharPref("network.trr.default_provider_uri", defaultURI);
// With a user-set doh uri this time. // With a user-set doh uri this time.
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=4.5.6.7"); setModeAndURI(2, "doh?responseIP=4.5.6.7");
await new TRRDNSListener("domainA.example.org.", "4.5.6.7"); await new TRRDNSListener("domainA.example.org.", "4.5.6.7");
// This should be a no-op, since we have a user-set URI // This should be a no-op, since we have a user-set URI
dns.setDetectedTrrURI( Services.dns.setDetectedTrrURI(
`https://foo.example.com:${h2Port}/doh?responseIP=1.2.3.4` `https://foo.example.com:${h2Port}/doh?responseIP=1.2.3.4`
); );
await new TRRDNSListener("domainB.example.org.", "4.5.6.7"); await new TRRDNSListener("domainB.example.org.", "4.5.6.7");
// Test network link status change // Test network link status change
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 3); Services.prefs.setIntPref("network.trr.mode", 3);
Services.prefs.clearUserPref("network.trr.uri"); Services.prefs.clearUserPref("network.trr.uri");
gDefaultPref.setCharPref( gDefaultPref.setCharPref(
@ -570,7 +570,7 @@ add_task(async function test_detected_uri() {
`https://foo.example.com:${h2Port}/doh?responseIP=3.4.5.6` `https://foo.example.com:${h2Port}/doh?responseIP=3.4.5.6`
); );
await new TRRDNSListener("domainA.example.org.", "3.4.5.6"); await new TRRDNSListener("domainA.example.org.", "3.4.5.6");
dns.setDetectedTrrURI( Services.dns.setDetectedTrrURI(
`https://foo.example.com:${h2Port}/doh?responseIP=1.2.3.4` `https://foo.example.com:${h2Port}/doh?responseIP=1.2.3.4`
); );
await new TRRDNSListener("domainB.example.org.", "1.2.3.4"); await new TRRDNSListener("domainB.example.org.", "1.2.3.4");
@ -605,7 +605,7 @@ add_task(async function test_pref_changes() {
if (expectChange) { if (expectChange) {
await uriChanged; await uriChanged;
} }
equal(dns.currentTrrURI, expectedURI); equal(Services.dns.currentTrrURI, expectedURI);
} }
// setting the default value of the pref should be reflected in the URI // setting the default value of the pref should be reflected in the URI
@ -643,7 +643,9 @@ add_task(async function test_pref_changes() {
// When the URI is set by the rollout addon, detection is allowed // When the URI is set by the rollout addon, detection is allowed
await doThenCheckURI(() => { await doThenCheckURI(() => {
dns.setDetectedTrrURI(`https://foo.example.com:${h2Port}/doh?detected`); Services.dns.setDetectedTrrURI(
`https://foo.example.com:${h2Port}/doh?detected`
);
}, `https://foo.example.com:${h2Port}/doh?detected`); }, `https://foo.example.com:${h2Port}/doh?detected`);
// Should switch back to the default provided by the rollout addon // Should switch back to the default provided by the rollout addon
@ -670,7 +672,9 @@ add_task(async function test_pref_changes() {
// Detection should not work with a user set pref // Detection should not work with a user set pref
await doThenCheckURI( await doThenCheckURI(
() => { () => {
dns.setDetectedTrrURI(`https://foo.example.com:${h2Port}/doh?detected`); Services.dns.setDetectedTrrURI(
`https://foo.example.com:${h2Port}/doh?detected`
);
}, },
`https://foo.example.com:${h2Port}/doh?user`, `https://foo.example.com:${h2Port}/doh?user`,
false false
@ -702,11 +706,11 @@ add_task(async function test_dohrollout_mode() {
Services.prefs.clearUserPref("network.trr.mode"); Services.prefs.clearUserPref("network.trr.mode");
Services.prefs.clearUserPref("doh-rollout.mode"); Services.prefs.clearUserPref("doh-rollout.mode");
equal(dns.currentTrrMode, 0); equal(Services.dns.currentTrrMode, 0);
async function doThenCheckMode(trrMode, rolloutMode, expectedMode, message) { async function doThenCheckMode(trrMode, rolloutMode, expectedMode, message) {
let modeChanged; let modeChanged;
if (dns.currentTrrMode != expectedMode) { if (Services.dns.currentTrrMode != expectedMode) {
modeChanged = topicObserved("network:trr-mode-changed"); modeChanged = topicObserved("network:trr-mode-changed");
} }
@ -721,7 +725,7 @@ add_task(async function test_dohrollout_mode() {
if (modeChanged) { if (modeChanged) {
await modeChanged; await modeChanged;
} }
equal(dns.currentTrrMode, expectedMode, message); equal(Services.dns.currentTrrMode, expectedMode, message);
} }
await doThenCheckMode(2, undefined, 2); await doThenCheckMode(2, undefined, 2);
@ -755,9 +759,9 @@ add_task(async function test_dohrollout_mode() {
await doThenCheckMode(3, undefined, 3); await doThenCheckMode(3, undefined, 3);
Services.prefs.clearUserPref("network.trr.mode"); Services.prefs.clearUserPref("network.trr.mode");
equal(dns.currentTrrMode, 2); equal(Services.dns.currentTrrMode, 2);
Services.prefs.clearUserPref("doh-rollout.mode"); Services.prefs.clearUserPref("doh-rollout.mode");
equal(dns.currentTrrMode, 0); equal(Services.dns.currentTrrMode, 0);
}); });
add_task(test_ipv6_trr_fallback); add_task(test_ipv6_trr_fallback);
@ -790,7 +794,7 @@ add_task(async function test_purge_trr_cache_on_mode_change() {
}); });
add_task(async function test_old_bootstrap_pref() { add_task(async function test_old_bootstrap_pref() {
dns.clearCache(true); Services.dns.clearCache(true);
// Note this is a remote address. Setting this pref should have no effect, // Note this is a remote address. Setting this pref should have no effect,
// as this is the old name for the bootstrap pref. // as this is the old name for the bootstrap pref.
// If this were to be used, the test would crash when accessing a non-local // If this were to be used, the test would crash when accessing a non-local
@ -811,22 +815,22 @@ add_task(async function test_padding() {
ecsPadding ecsPadding
) { ) {
Services.prefs.setIntPref("network.trr.padding.length", pad_length); Services.prefs.setIntPref("network.trr.padding.length", pad_length);
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref("network.trr.padding", false); Services.prefs.setBoolPref("network.trr.padding", false);
Services.prefs.setBoolPref("network.trr.disable-ECS", false); Services.prefs.setBoolPref("network.trr.disable-ECS", false);
await new TRRDNSListener(request, none); await new TRRDNSListener(request, none);
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref("network.trr.padding", false); Services.prefs.setBoolPref("network.trr.padding", false);
Services.prefs.setBoolPref("network.trr.disable-ECS", true); Services.prefs.setBoolPref("network.trr.disable-ECS", true);
await new TRRDNSListener(request, ecs); await new TRRDNSListener(request, ecs);
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref("network.trr.padding", true); Services.prefs.setBoolPref("network.trr.padding", true);
Services.prefs.setBoolPref("network.trr.disable-ECS", false); Services.prefs.setBoolPref("network.trr.disable-ECS", false);
await new TRRDNSListener(request, padding); await new TRRDNSListener(request, padding);
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref("network.trr.padding", true); Services.prefs.setBoolPref("network.trr.padding", true);
Services.prefs.setBoolPref("network.trr.disable-ECS", true); Services.prefs.setBoolPref("network.trr.disable-ECS", true);
await new TRRDNSListener(request, ecsPadding); await new TRRDNSListener(request, ecsPadding);

View file

@ -4,10 +4,6 @@
"use strict"; "use strict";
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
trr_test_setup(); trr_test_setup();
registerCleanupFunction(async () => { registerCleanupFunction(async () => {
trr_clear_prefs(); trr_clear_prefs();
@ -43,7 +39,7 @@ add_task(async function setup_server() {
}); });
add_task(async function test_parse_additional_section() { add_task(async function test_parse_additional_section() {
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 3); Services.prefs.setIntPref("network.trr.mode", 3);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.uri", "network.trr.uri",
@ -306,7 +302,7 @@ add_task(async function test_additional_after_resolve() {
// record field and this addditional record was previously unsuccessfully // record field and this addditional record was previously unsuccessfully
// resolved // resolved
add_task(async function test_additional_cached_record_override() { add_task(async function test_additional_cached_record_override() {
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 2); Services.prefs.setIntPref("network.trr.mode", 2);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.uri", "network.trr.uri",

View file

@ -4,10 +4,6 @@
"use strict"; "use strict";
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const gOverride = Cc["@mozilla.org/network/native-dns-override;1"].getService( const gOverride = Cc["@mozilla.org/network/native-dns-override;1"].getService(
Ci.nsINativeDNSResolverOverride Ci.nsINativeDNSResolverOverride
); );
@ -35,7 +31,7 @@ add_task(async function start_trr_server() {
add_task(async function unspec_first() { add_task(async function unspec_first() {
gOverride.clearOverrides(); gOverride.clearOverrides();
dns.clearCache(true); Services.dns.clearCache(true);
gOverride.addIPOverride("example.org", "1.1.1.1"); gOverride.addIPOverride("example.org", "1.1.1.1");
gOverride.addIPOverride("example.org", "::1"); gOverride.addIPOverride("example.org", "::1");
@ -66,7 +62,7 @@ add_task(async function unspec_first() {
add_task(async function A_then_AAAA_fails() { add_task(async function A_then_AAAA_fails() {
gOverride.clearOverrides(); gOverride.clearOverrides();
dns.clearCache(true); Services.dns.clearCache(true);
gOverride.addIPOverride("example.org", "1.1.1.1"); gOverride.addIPOverride("example.org", "1.1.1.1");
gOverride.addIPOverride("example.org", "::1"); gOverride.addIPOverride("example.org", "::1");
@ -96,7 +92,7 @@ add_task(async function A_then_AAAA_fails() {
add_task(async function just_AAAA_fails() { add_task(async function just_AAAA_fails() {
gOverride.clearOverrides(); gOverride.clearOverrides();
dns.clearCache(true); Services.dns.clearCache(true);
gOverride.addIPOverride("example.org", "1.1.1.1"); gOverride.addIPOverride("example.org", "1.1.1.1");
gOverride.addIPOverride("example.org", "::1"); gOverride.addIPOverride("example.org", "::1");

View file

@ -4,9 +4,6 @@
"use strict"; "use strict";
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const override = Cc["@mozilla.org/network/native-dns-override;1"].getService( const override = Cc["@mozilla.org/network/native-dns-override;1"].getService(
Ci.nsINativeDNSResolverOverride Ci.nsINativeDNSResolverOverride
); );
@ -25,7 +22,7 @@ add_task(async function checkBlocklisting() {
await trrServer.start(); await trrServer.start();
info(`port = ${trrServer.port}\n`); info(`port = ${trrServer.port}\n`);
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.uri", "network.trr.uri",
`https://foo.example.com:${trrServer.port}/dns-query` `https://foo.example.com:${trrServer.port}/dns-query`
@ -43,7 +40,7 @@ add_task(async function checkBlocklisting() {
// Clear the cache so that we need to consult the blocklist and not simply // Clear the cache so that we need to consult the blocklist and not simply
// return the cached DNS record. // return the cached DNS record.
dns.clearCache(true); Services.dns.clearCache(true);
await new TRRDNSListener("sub.top.test.com", { await new TRRDNSListener("sub.top.test.com", {
expectedAnswer: "2.2.2.2", expectedAnswer: "2.2.2.2",
}); });
@ -68,7 +65,7 @@ add_task(async function checkBlocklisting() {
// The blocklist should instantly expire. // The blocklist should instantly expire.
Services.prefs.setIntPref("network.trr.temp_blocklist_duration_sec", 0); Services.prefs.setIntPref("network.trr.temp_blocklist_duration_sec", 0);
dns.clearCache(true); Services.dns.clearCache(true);
await new TRRDNSListener("sub.top.test.com", { await new TRRDNSListener("sub.top.test.com", {
expectedAnswer: "2.2.2.2", expectedAnswer: "2.2.2.2",
}); });

View file

@ -4,10 +4,6 @@
"use strict"; "use strict";
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
trr_test_setup(); trr_test_setup();
registerCleanupFunction(async () => { registerCleanupFunction(async () => {
trr_clear_prefs(); trr_clear_prefs();
@ -70,7 +66,7 @@ add_task(
equal(await trrServer.requestCount("example.org", "A"), 1); equal(await trrServer.requestCount("example.org", "A"), 1);
// Now we cancel both of them // Now we cancel both of them
dns.clearCache(true); Services.dns.clearCache(true);
r1 = new TRRDNSListener("example.org", { expectedSuccess: false }); r1 = new TRRDNSListener("example.org", { expectedSuccess: false });
r2 = new TRRDNSListener("example.org", { expectedSuccess: false }); r2 = new TRRDNSListener("example.org", { expectedSuccess: false });
r1.cancel(); r1.cancel();
@ -85,7 +81,7 @@ add_task(
); );
add_task(async function cancel_delayed() { add_task(async function cancel_delayed() {
dns.clearCache(true); Services.dns.clearCache(true);
await trrServer.registerDoHAnswers("example.com", "A", { await trrServer.registerDoHAnswers("example.com", "A", {
answers: [ answers: [
{ {
@ -108,7 +104,7 @@ add_task(async function cancel_delayed() {
}); });
add_task(async function cancel_after_completed() { add_task(async function cancel_after_completed() {
dns.clearCache(true); Services.dns.clearCache(true);
await trrServer.registerDoHAnswers("example.com", "A", { await trrServer.registerDoHAnswers("example.com", "A", {
answers: [ answers: [
{ {
@ -129,7 +125,7 @@ add_task(async function cancel_after_completed() {
}); });
add_task(async function clearCacheWhileResolving() { add_task(async function clearCacheWhileResolving() {
dns.clearCache(true); Services.dns.clearCache(true);
await trrServer.registerDoHAnswers("example.com", "A", { await trrServer.registerDoHAnswers("example.com", "A", {
answers: [ answers: [
{ {
@ -145,7 +141,7 @@ add_task(async function clearCacheWhileResolving() {
// Check that calling clearCache does not leave the request hanging. // Check that calling clearCache does not leave the request hanging.
let r1 = new TRRDNSListener("example.com", { expectedAnswer: "3.3.3.3" }); let r1 = new TRRDNSListener("example.com", { expectedAnswer: "3.3.3.3" });
let r2 = new TRRDNSListener("example.com", { expectedAnswer: "3.3.3.3" }); let r2 = new TRRDNSListener("example.com", { expectedAnswer: "3.3.3.3" });
dns.clearCache(true); Services.dns.clearCache(true);
await r1; await r1;
await r2; await r2;
@ -172,11 +168,11 @@ add_task(async function clearCacheWhileResolving() {
let r4 = new TRRDNSListener("httpsvc.com", { let r4 = new TRRDNSListener("httpsvc.com", {
type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
}); });
dns.clearCache(true); Services.dns.clearCache(true);
await r3; await r3;
await r4; await r4;
equal(await trrServer.requestCount("httpsvc.com", "HTTPS"), 1); equal(await trrServer.requestCount("httpsvc.com", "HTTPS"), 1);
dns.clearCache(true); Services.dns.clearCache(true);
await new TRRDNSListener("httpsvc.com", { await new TRRDNSListener("httpsvc.com", {
type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
}); });

View file

@ -4,10 +4,6 @@
"use strict"; "use strict";
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
trr_test_setup(); trr_test_setup();
registerCleanupFunction(async () => { registerCleanupFunction(async () => {
trr_clear_prefs(); trr_clear_prefs();
@ -41,7 +37,7 @@ add_task(async function test_trr_casing() {
let [, resp] = await channelOpenPromise(chan); let [, resp] = await channelOpenPromise(chan);
equal(resp, "<h1> 404 Path not found: /test?bla=some</h1>"); equal(resp, "<h1> 404 Path not found: /test?bla=some</h1>");
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 3); Services.prefs.setIntPref("network.trr.mode", 3);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.uri", "network.trr.uri",

View file

@ -4,9 +4,6 @@
"use strict"; "use strict";
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
let trrServer; let trrServer;
function makeChan(url) { function makeChan(url) {
@ -42,7 +39,7 @@ add_setup(async function setup() {
let [, resp] = await channelOpenPromise(chan); let [, resp] = await channelOpenPromise(chan);
equal(resp, "<h1> 404 Path not found: /test?bla=some</h1>"); equal(resp, "<h1> 404 Path not found: /test?bla=some</h1>");
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 3); Services.prefs.setIntPref("network.trr.mode", 3);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.uri", "network.trr.uri",
@ -226,7 +223,7 @@ add_task(async function test_cname_nodata() {
}); });
let { inStatus } = await new TRRDNSListener("first.bar", { let { inStatus } = await new TRRDNSListener("first.bar", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
}); });
Assert.ok(Components.isSuccessCode(inStatus), `${inStatus} should work`); Assert.ok(Components.isSuccessCode(inStatus), `${inStatus} should work`);
equal(await trrServer.requestCount("first.bar", "HTTPS"), 1); equal(await trrServer.requestCount("first.bar", "HTTPS"), 1);

View file

@ -4,21 +4,22 @@
"use strict"; "use strict";
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const { TestUtils } = ChromeUtils.importESModule( const { TestUtils } = ChromeUtils.importESModule(
"resource://testing-common/TestUtils.sys.mjs" "resource://testing-common/TestUtils.sys.mjs"
); );
async function waitForConfirmationState(state, msToWait = 0) { async function waitForConfirmationState(state, msToWait = 0) {
await TestUtils.waitForCondition( await TestUtils.waitForCondition(
() => dns.currentTrrConfirmationState == state, () => Services.dns.currentTrrConfirmationState == state,
`Timed out waiting for ${state}. Currently ${dns.currentTrrConfirmationState}`, `Timed out waiting for ${state}. Currently ${Services.dns.currentTrrConfirmationState}`,
1, 1,
msToWait msToWait
); );
equal(dns.currentTrrConfirmationState, state, "expected confirmation state"); equal(
Services.dns.currentTrrConfirmationState,
state,
"expected confirmation state"
);
} }
const CONFIRM_OFF = 0; const CONFIRM_OFF = 0;
@ -73,7 +74,7 @@ add_task(async function start_trr_server() {
function trigger15Failures() { function trigger15Failures() {
// We need to clear the cache in case a previous call to this method // We need to clear the cache in case a previous call to this method
// put the results in the DNS cache. // put the results in the DNS cache.
dns.clearCache(true); Services.dns.clearCache(true);
let dnsRequests = []; let dnsRequests = [];
// There are actually two TRR requests sent for A and AAAA records, so doing // There are actually two TRR requests sent for A and AAAA records, so doing
@ -113,9 +114,9 @@ add_task(async function confirm_off() {
"network.trr.mode", "network.trr.mode",
Ci.nsIDNSService.MODE_NATIVEONLY Ci.nsIDNSService.MODE_NATIVEONLY
); );
equal(dns.currentTrrConfirmationState, CONFIRM_OFF); equal(Services.dns.currentTrrConfirmationState, CONFIRM_OFF);
Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRROFF); Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRROFF);
equal(dns.currentTrrConfirmationState, CONFIRM_OFF); equal(Services.dns.currentTrrConfirmationState, CONFIRM_OFF);
}); });
add_task(async function confirm_disabled() { add_task(async function confirm_disabled() {
@ -124,14 +125,14 @@ add_task(async function confirm_disabled() {
"confirm.example.com" "confirm.example.com"
); );
Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRONLY); Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRONLY);
equal(dns.currentTrrConfirmationState, CONFIRM_DISABLED); equal(Services.dns.currentTrrConfirmationState, CONFIRM_DISABLED);
Services.prefs.setCharPref("network.trr.confirmationNS", "skip"); Services.prefs.setCharPref("network.trr.confirmationNS", "skip");
Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRFIRST); Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRFIRST);
equal(dns.currentTrrConfirmationState, CONFIRM_DISABLED); equal(Services.dns.currentTrrConfirmationState, CONFIRM_DISABLED);
}); });
add_task(async function confirm_ok() { add_task(async function confirm_ok() {
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.confirmationNS", "network.trr.confirmationNS",
"confirm.example.com" "confirm.example.com"
@ -154,7 +155,7 @@ add_task(async function confirm_ok() {
); );
Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRFIRST); Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRFIRST);
equal( equal(
dns.currentTrrConfirmationState, Services.dns.currentTrrConfirmationState,
CONFIRM_TRYING_OK, CONFIRM_TRYING_OK,
"Should be CONFIRM_TRYING_OK" "Should be CONFIRM_TRYING_OK"
); );
@ -169,13 +170,13 @@ add_task(async function confirm_ok() {
); );
Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRFIRST); Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRFIRST);
equal( equal(
dns.currentTrrConfirmationState, Services.dns.currentTrrConfirmationState,
CONFIRM_TRYING_OK, CONFIRM_TRYING_OK,
"Should be CONFIRM_TRYING_OK" "Should be CONFIRM_TRYING_OK"
); );
await new Promise(resolve => do_timeout(100, resolve)); await new Promise(resolve => do_timeout(100, resolve));
equal( equal(
dns.currentTrrConfirmationState, Services.dns.currentTrrConfirmationState,
CONFIRM_TRYING_OK, CONFIRM_TRYING_OK,
"Confirmation should still be pending" "Confirmation should still be pending"
); );
@ -187,11 +188,11 @@ add_task(async function confirm_timeout() {
"network.trr.mode", "network.trr.mode",
Ci.nsIDNSService.MODE_NATIVEONLY Ci.nsIDNSService.MODE_NATIVEONLY
); );
equal(dns.currentTrrConfirmationState, CONFIRM_OFF); equal(Services.dns.currentTrrConfirmationState, CONFIRM_OFF);
await registerNS(7000); await registerNS(7000);
Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRFIRST); Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRFIRST);
equal( equal(
dns.currentTrrConfirmationState, Services.dns.currentTrrConfirmationState,
CONFIRM_TRYING_OK, CONFIRM_TRYING_OK,
"Should be CONFIRM_TRYING_OK" "Should be CONFIRM_TRYING_OK"
); );
@ -206,13 +207,13 @@ add_task(async function confirm_fail_fast() {
"network.trr.mode", "network.trr.mode",
Ci.nsIDNSService.MODE_NATIVEONLY Ci.nsIDNSService.MODE_NATIVEONLY
); );
equal(dns.currentTrrConfirmationState, CONFIRM_OFF); equal(Services.dns.currentTrrConfirmationState, CONFIRM_OFF);
await trrServer.registerDoHAnswers("confirm.example.com", "NS", { await trrServer.registerDoHAnswers("confirm.example.com", "NS", {
error: 404, error: 404,
}); });
Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRFIRST); Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRFIRST);
equal( equal(
dns.currentTrrConfirmationState, Services.dns.currentTrrConfirmationState,
CONFIRM_TRYING_OK, CONFIRM_TRYING_OK,
"Should be CONFIRM_TRYING_OK" "Should be CONFIRM_TRYING_OK"
); );
@ -224,12 +225,12 @@ add_task(async function multiple_failures() {
"network.trr.mode", "network.trr.mode",
Ci.nsIDNSService.MODE_NATIVEONLY Ci.nsIDNSService.MODE_NATIVEONLY
); );
equal(dns.currentTrrConfirmationState, CONFIRM_OFF); equal(Services.dns.currentTrrConfirmationState, CONFIRM_OFF);
await registerNS(100); await registerNS(100);
Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRFIRST); Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRFIRST);
equal( equal(
dns.currentTrrConfirmationState, Services.dns.currentTrrConfirmationState,
CONFIRM_TRYING_OK, CONFIRM_TRYING_OK,
"Should be CONFIRM_TRYING_OK" "Should be CONFIRM_TRYING_OK"
); );
@ -241,7 +242,7 @@ add_task(async function multiple_failures() {
// Check that failures during confirmation are ignored. // Check that failures during confirmation are ignored.
await trigger15Failures(); await trigger15Failures();
equal( equal(
dns.currentTrrConfirmationState, Services.dns.currentTrrConfirmationState,
CONFIRM_TRYING_OK, CONFIRM_TRYING_OK,
"Should be CONFIRM_TRYING_OK" "Should be CONFIRM_TRYING_OK"
); );
@ -260,7 +261,7 @@ add_task(async function test_connectivity_change() {
); );
Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRFIRST); Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRFIRST);
equal( equal(
dns.currentTrrConfirmationState, Services.dns.currentTrrConfirmationState,
CONFIRM_TRYING_OK, CONFIRM_TRYING_OK,
"Should be CONFIRM_TRYING_OK" "Should be CONFIRM_TRYING_OK"
); );
@ -276,7 +277,7 @@ add_task(async function test_connectivity_change() {
); );
// This means a CP check completed successfully. But no CP was previously // This means a CP check completed successfully. But no CP was previously
// detected, so this is mostly a no-op. // detected, so this is mostly a no-op.
equal(dns.currentTrrConfirmationState, CONFIRM_OK); equal(Services.dns.currentTrrConfirmationState, CONFIRM_OK);
Services.obs.notifyObservers( Services.obs.notifyObservers(
null, null,
@ -285,7 +286,7 @@ add_task(async function test_connectivity_change() {
); );
// This basically a successful CP login event. Wasn't captive before. // This basically a successful CP login event. Wasn't captive before.
// Still treating as a no-op. // Still treating as a no-op.
equal(dns.currentTrrConfirmationState, CONFIRM_OK); equal(Services.dns.currentTrrConfirmationState, CONFIRM_OK);
// This makes the TRR service set mCaptiveIsPassed=false // This makes the TRR service set mCaptiveIsPassed=false
Services.obs.notifyObservers( Services.obs.notifyObservers(
@ -309,7 +310,7 @@ add_task(async function test_connectivity_change() {
); );
// The notification should cause us to send a new confirmation request // The notification should cause us to send a new confirmation request
equal( equal(
dns.currentTrrConfirmationState, Services.dns.currentTrrConfirmationState,
CONFIRM_TRYING_OK, CONFIRM_TRYING_OK,
"Should be CONFIRM_TRYING_OK" "Should be CONFIRM_TRYING_OK"
); );
@ -326,10 +327,10 @@ add_task(async function test_network_change() {
"confirm.example.com", "confirm.example.com",
"NS" "NS"
); );
equal(dns.currentTrrConfirmationState, CONFIRM_OK); equal(Services.dns.currentTrrConfirmationState, CONFIRM_OK);
Services.obs.notifyObservers(null, "network:link-status-changed", "up"); Services.obs.notifyObservers(null, "network:link-status-changed", "up");
equal(dns.currentTrrConfirmationState, CONFIRM_OK); equal(Services.dns.currentTrrConfirmationState, CONFIRM_OK);
equal( equal(
await trrServer.requestCount("confirm.example.com", "NS"), await trrServer.requestCount("confirm.example.com", "NS"),
confirmationCount confirmationCount
@ -342,7 +343,7 @@ add_task(async function test_network_change() {
// The network up event should reset the confirmation to TRYING_OK and do // The network up event should reset the confirmation to TRYING_OK and do
// another NS req // another NS req
Services.obs.notifyObservers(null, "network:link-status-changed", "up"); Services.obs.notifyObservers(null, "network:link-status-changed", "up");
equal(dns.currentTrrConfirmationState, CONFIRM_TRYING_OK); equal(Services.dns.currentTrrConfirmationState, CONFIRM_TRYING_OK);
await waitForConfirmationState(CONFIRM_OK, 1000); await waitForConfirmationState(CONFIRM_OK, 1000);
// two extra confirmation events should have been received by the server // two extra confirmation events should have been received by the server
equal( equal(
@ -356,12 +357,12 @@ add_task(async function test_uri_pref_change() {
"confirm.example.com", "confirm.example.com",
"NS" "NS"
); );
equal(dns.currentTrrConfirmationState, CONFIRM_OK); equal(Services.dns.currentTrrConfirmationState, CONFIRM_OK);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.uri", "network.trr.uri",
`https://foo.example.com:${trrServer.port}/dns-query?changed` `https://foo.example.com:${trrServer.port}/dns-query?changed`
); );
equal(dns.currentTrrConfirmationState, CONFIRM_TRYING_OK); equal(Services.dns.currentTrrConfirmationState, CONFIRM_TRYING_OK);
await waitForConfirmationState(CONFIRM_OK, 1000); await waitForConfirmationState(CONFIRM_OK, 1000);
equal( equal(
await trrServer.requestCount("confirm.example.com", "NS"), await trrServer.requestCount("confirm.example.com", "NS"),
@ -385,10 +386,10 @@ add_task(async function test_autodetected_uri() {
"confirm.example.com", "confirm.example.com",
"NS" "NS"
); );
dns.setDetectedTrrURI( Services.dns.setDetectedTrrURI(
`https://foo.example.com:${trrServer.port}/dns-query?changed2` `https://foo.example.com:${trrServer.port}/dns-query?changed2`
); );
equal(dns.currentTrrConfirmationState, CONFIRM_TRYING_OK); equal(Services.dns.currentTrrConfirmationState, CONFIRM_TRYING_OK);
await waitForConfirmationState(CONFIRM_OK, 1000); await waitForConfirmationState(CONFIRM_OK, 1000);
equal( equal(
await trrServer.requestCount("confirm.example.com", "NS"), await trrServer.requestCount("confirm.example.com", "NS"),

View file

@ -10,9 +10,6 @@
// Immediately after the native DNS starts working, it should connect to the // Immediately after the native DNS starts working, it should connect to the
// TRR server and start working. // TRR server and start working.
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const override = Cc["@mozilla.org/network/native-dns-override;1"].getService( const override = Cc["@mozilla.org/network/native-dns-override;1"].getService(
Ci.nsINativeDNSResolverOverride Ci.nsINativeDNSResolverOverride
); );
@ -37,7 +34,7 @@ add_task(async function intermittent_dns_mode3() {
}); });
await trrServer.start(); await trrServer.start();
info(`port = ${trrServer.port}\n`); info(`port = ${trrServer.port}\n`);
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.uri", "network.trr.uri",
`https://foo.example.com:${trrServer.port}/dns-query` `https://foo.example.com:${trrServer.port}/dns-query`
@ -83,7 +80,7 @@ add_task(async function intermittent_dns_mode2() {
await trrServer.start(); await trrServer.start();
info(`port = ${trrServer.port}\n`); info(`port = ${trrServer.port}\n`);
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref( Services.prefs.setIntPref(
"network.trr.mode", "network.trr.mode",
Ci.nsIDNSService.MODE_NATIVEONLY Ci.nsIDNSService.MODE_NATIVEONLY

View file

@ -4,10 +4,6 @@
"use strict"; "use strict";
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
trr_test_setup(); trr_test_setup();
registerCleanupFunction(async () => { registerCleanupFunction(async () => {
trr_clear_prefs(); trr_clear_prefs();
@ -58,10 +54,10 @@ add_task(async function test_enterprise_policy_locked() {
"example.com,example.org" "example.com,example.org"
); );
equal(Services.prefs.prefIsLocked("network.trr.excluded-domains"), true); equal(Services.prefs.prefIsLocked("network.trr.excluded-domains"), true);
equal(dns.currentTrrMode, 2); equal(Services.dns.currentTrrMode, 2);
equal(dns.currentTrrURI, "https://example.com/provider"); equal(Services.dns.currentTrrURI, "https://example.com/provider");
dns.setDetectedTrrURI("https://autodetect.example.com/provider"); Services.dns.setDetectedTrrURI("https://autodetect.example.com/provider");
equal(dns.currentTrrURI, "https://example.com/provider"); equal(Services.dns.currentTrrURI, "https://example.com/provider");
}); });
add_task(async function test_enterprise_policy_unlocked() { add_task(async function test_enterprise_policy_unlocked() {
@ -87,9 +83,9 @@ add_task(async function test_enterprise_policy_unlocked() {
"example.com,example.org" "example.com,example.org"
); );
equal(Services.prefs.prefIsLocked("network.trr.excluded-domains"), false); equal(Services.prefs.prefIsLocked("network.trr.excluded-domains"), false);
equal(dns.currentTrrMode, 5); equal(Services.dns.currentTrrMode, 5);
equal(dns.currentTrrURI, "https://example.org/provider"); equal(Services.dns.currentTrrURI, "https://example.org/provider");
dns.setDetectedTrrURI("https://autodetect.example.com/provider"); Services.dns.setDetectedTrrURI("https://autodetect.example.com/provider");
equal(dns.currentTrrMode, 5); equal(Services.dns.currentTrrMode, 5);
equal(dns.currentTrrURI, "https://example.org/provider"); equal(Services.dns.currentTrrURI, "https://example.org/provider");
}); });

View file

@ -4,10 +4,6 @@
"use strict"; "use strict";
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
trr_test_setup(); trr_test_setup();
registerCleanupFunction(async () => { registerCleanupFunction(async () => {
trr_clear_prefs(); trr_clear_prefs();
@ -42,7 +38,7 @@ add_task(async function setup() {
let [, resp] = await channelOpenPromise(chan); let [, resp] = await channelOpenPromise(chan);
equal(resp, "<h1> 404 Path not found: /test?bla=some</h1>"); equal(resp, "<h1> 404 Path not found: /test?bla=some</h1>");
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 2); Services.prefs.setIntPref("network.trr.mode", 2);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.uri", "network.trr.uri",

View file

@ -14,9 +14,6 @@ let h3Port;
let h3NoResponsePort; let h3NoResponsePort;
let trrServer; let trrServer;
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const certOverrideService = Cc[ const certOverrideService = Cc[
"@mozilla.org/security/certoverride;1" "@mozilla.org/security/certoverride;1"
].getService(Ci.nsICertOverrideService); ].getService(Ci.nsICertOverrideService);
@ -60,6 +57,7 @@ add_setup(async function setup() {
}); });
if (mozinfo.socketprocess_networking) { if (mozinfo.socketprocess_networking) {
Services.dns; // Needed to trigger socket process.
await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched); await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched);
} }
@ -396,7 +394,7 @@ add_task(async function testFallbackToTheOrigin2() {
// Test when some records have echConfig and some not, we directly fallback to // Test when some records have echConfig and some not, we directly fallback to
// the origin one. // the origin one.
add_task(async function testFallbackToTheOrigin3() { add_task(async function testFallbackToTheOrigin3() {
dns.clearCache(true); Services.dns.clearCache(true);
trrServer = new TRRServer(); trrServer = new TRRServer();
await trrServer.start(); await trrServer.start();
@ -713,7 +711,7 @@ add_task(async function testFastfallbackToH2() {
add_task(async function testFailedH3Connection() { add_task(async function testFailedH3Connection() {
trrServer = new TRRServer(); trrServer = new TRRServer();
await trrServer.start(); await trrServer.start();
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 3); Services.prefs.setIntPref("network.trr.mode", 3);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.uri", "network.trr.uri",
@ -760,7 +758,7 @@ add_task(async function testFailedH3Connection() {
add_task(async function testHttp3ExcludedList() { add_task(async function testHttp3ExcludedList() {
trrServer = new TRRServer(); trrServer = new TRRServer();
await trrServer.start(); await trrServer.start();
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 3); Services.prefs.setIntPref("network.trr.mode", 3);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.uri", "network.trr.uri",
@ -832,7 +830,7 @@ add_task(async function testHttp3ExcludedList() {
add_task(async function testAllRecordsInHttp3ExcludedList() { add_task(async function testAllRecordsInHttp3ExcludedList() {
trrServer = new TRRServer(); trrServer = new TRRServer();
await trrServer.start(); await trrServer.start();
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.mode", 3); Services.prefs.setIntPref("network.trr.mode", 3);
Services.prefs.setBoolPref("network.dns.http3_echconfig.enabled", true); Services.prefs.setBoolPref("network.dns.http3_echconfig.enabled", true);
Services.prefs.setCharPref( Services.prefs.setCharPref(
@ -924,7 +922,7 @@ add_task(async function testAllRecordsInHttp3ExcludedList() {
type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
}); });
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.http.speculative-parallel-limit", 0); Services.prefs.setIntPref("network.http.speculative-parallel-limit", 0);
Services.obs.notifyObservers(null, "net:prune-all-connections"); Services.obs.notifyObservers(null, "net:prune-all-connections");

View file

@ -16,10 +16,6 @@ function inChildProcess() {
return Services.appinfo.processType != Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT; return Services.appinfo.processType != Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT;
} }
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
add_setup(async function setup() { add_setup(async function setup() {
if (inChildProcess()) { if (inChildProcess()) {
return; return;
@ -37,6 +33,7 @@ add_setup(async function setup() {
}); });
if (mozinfo.socketprocess_networking) { if (mozinfo.socketprocess_networking) {
Services.dns; // Needed to trigger socket process.
await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched); await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched);
} }
@ -53,7 +50,7 @@ add_task(async function testHTTPSSVC() {
} }
let { inRecord } = await new TRRDNSListener("test.httpssvc.com", { let { inRecord } = await new TRRDNSListener("test.httpssvc.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
}); });
let answer = inRecord.QueryInterface(Ci.nsIDNSHTTPSSVCRecord).records; let answer = inRecord.QueryInterface(Ci.nsIDNSHTTPSSVCRecord).records;
Assert.equal(answer[0].priority, 1); Assert.equal(answer[0].priority, 1);
@ -230,7 +227,7 @@ add_task(async function test_aliasform() {
{ {
let { inStatus, inRecord } = await new TRRDNSListener("test.com", { let { inStatus, inRecord } = await new TRRDNSListener("test.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
expectedSuccess: false, expectedSuccess: false,
}); });
Assert.ok(Components.isSuccessCode(inStatus), `${inStatus} should succeed`); Assert.ok(Components.isSuccessCode(inStatus), `${inStatus} should succeed`);
@ -299,7 +296,7 @@ add_task(async function test_aliasform() {
}); });
let { inStatus, inRecord } = await new TRRDNSListener("x.com", { let { inStatus, inRecord } = await new TRRDNSListener("x.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
expectedSuccess: false, expectedSuccess: false,
}); });
Assert.ok(Components.isSuccessCode(inStatus), `${inStatus} should succeed`); Assert.ok(Components.isSuccessCode(inStatus), `${inStatus} should succeed`);
@ -373,7 +370,7 @@ add_task(async function test_aliasform() {
Assert.equal(await trrServer.requestCount("loop2.com", "HTTPS"), 0); Assert.equal(await trrServer.requestCount("loop2.com", "HTTPS"), 0);
({ inStatus } = await new TRRDNSListener("loop.com", { ({ inStatus } = await new TRRDNSListener("loop.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
expectedSuccess: false, expectedSuccess: false,
})); }));
Assert.ok( Assert.ok(
@ -445,7 +442,7 @@ add_task(async function test_aliasform() {
}); });
let { inStatus: inStatus2 } = await new TRRDNSListener("multi.com", { let { inStatus: inStatus2 } = await new TRRDNSListener("multi.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
expectedSuccess: false, expectedSuccess: false,
}); });
Assert.ok( Assert.ok(
@ -478,7 +475,7 @@ add_task(async function test_aliasform() {
}); });
({ inStatus: inStatus2 } = await new TRRDNSListener("order.com", { ({ inStatus: inStatus2 } = await new TRRDNSListener("order.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
expectedSuccess: false, expectedSuccess: false,
})); }));
Assert.ok( Assert.ok(
@ -507,7 +504,7 @@ add_task(async function test_aliasform() {
}); });
({ inStatus: inStatus2 } = await new TRRDNSListener("duplicate.com", { ({ inStatus: inStatus2 } = await new TRRDNSListener("duplicate.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
expectedSuccess: false, expectedSuccess: false,
})); }));
Assert.ok( Assert.ok(
@ -537,7 +534,7 @@ add_task(async function test_aliasform() {
}); });
({ inStatus: inStatus2 } = await new TRRDNSListener("mandatory.com", { ({ inStatus: inStatus2 } = await new TRRDNSListener("mandatory.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
expectedSuccess: false, expectedSuccess: false,
})); }));
Assert.ok(!Components.isSuccessCode(inStatus2), `${inStatus2} should fail`); Assert.ok(!Components.isSuccessCode(inStatus2), `${inStatus2} should fail`);
@ -578,7 +575,7 @@ add_task(async function test_aliasform() {
}); });
({ inStatus: inStatus2 } = await new TRRDNSListener("mandatory2.com", { ({ inStatus: inStatus2 } = await new TRRDNSListener("mandatory2.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
})); }));
Assert.ok(Components.isSuccessCode(inStatus2), `${inStatus2} should succeed`); Assert.ok(Components.isSuccessCode(inStatus2), `${inStatus2} should succeed`);
@ -601,7 +598,7 @@ add_task(async function test_aliasform() {
}); });
({ inStatus: inStatus2 } = await new TRRDNSListener("no-alias.com", { ({ inStatus: inStatus2 } = await new TRRDNSListener("no-alias.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
expectedSuccess: false, expectedSuccess: false,
})); }));
@ -625,7 +622,7 @@ add_task(async function test_aliasform() {
}); });
({ inRecord, inStatus: inStatus2 } = await new TRRDNSListener("service.com", { ({ inRecord, inStatus: inStatus2 } = await new TRRDNSListener("service.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
})); }));
Assert.ok(Components.isSuccessCode(inStatus2), `${inStatus2} should work`); Assert.ok(Components.isSuccessCode(inStatus2), `${inStatus2} should work`);
answer = inRecord.QueryInterface(Ci.nsIDNSHTTPSSVCRecord).records; answer = inRecord.QueryInterface(Ci.nsIDNSHTTPSSVCRecord).records;
@ -635,7 +632,7 @@ add_task(async function test_aliasform() {
add_task(async function testNegativeResponse() { add_task(async function testNegativeResponse() {
let { inStatus } = await new TRRDNSListener("negative_test.com", { let { inStatus } = await new TRRDNSListener("negative_test.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
expectedSuccess: false, expectedSuccess: false,
}); });
Assert.ok( Assert.ok(
@ -661,7 +658,7 @@ add_task(async function testNegativeResponse() {
// Should still be failed because a negative response is from DNS cache. // Should still be failed because a negative response is from DNS cache.
({ inStatus } = await new TRRDNSListener("negative_test.com", { ({ inStatus } = await new TRRDNSListener("negative_test.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
expectedSuccess: false, expectedSuccess: false,
})); }));
Assert.ok( Assert.ok(
@ -673,12 +670,12 @@ add_task(async function testNegativeResponse() {
do_send_remote_message("clearCache"); do_send_remote_message("clearCache");
await do_await_remote_message("clearCache-done"); await do_await_remote_message("clearCache-done");
} else { } else {
dns.clearCache(true); Services.dns.clearCache(true);
} }
let inRecord; let inRecord;
({ inRecord, inStatus } = await new TRRDNSListener("negative_test.com", { ({ inRecord, inStatus } = await new TRRDNSListener("negative_test.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
})); }));
Assert.ok(Components.isSuccessCode(inStatus), `${inStatus} should work`); Assert.ok(Components.isSuccessCode(inStatus), `${inStatus} should work`);
let answer = inRecord.QueryInterface(Ci.nsIDNSHTTPSSVCRecord).records; let answer = inRecord.QueryInterface(Ci.nsIDNSHTTPSSVCRecord).records;
@ -720,7 +717,7 @@ add_task(async function testPortPrefixedName() {
let { inRecord, inStatus } = await new TRRDNSListener( let { inRecord, inStatus } = await new TRRDNSListener(
"port_prefix.test.com", "port_prefix.test.com",
{ {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
port: 4433, port: 4433,
} }
); );

View file

@ -7,9 +7,6 @@
const override = Cc["@mozilla.org/network/native-dns-override;1"].getService( const override = Cc["@mozilla.org/network/native-dns-override;1"].getService(
Ci.nsINativeDNSResolverOverride Ci.nsINativeDNSResolverOverride
); );
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
trr_test_setup(); trr_test_setup();
registerCleanupFunction(async () => { registerCleanupFunction(async () => {
@ -64,7 +61,7 @@ add_task(async function test_add_nat64_prefix_to_trr() {
let chan = makeChan(`https://localhost:${trrServer.port}/test?bla=some`); let chan = makeChan(`https://localhost:${trrServer.port}/test?bla=some`);
let [, resp] = await channelOpenPromise(chan); let [, resp] = await channelOpenPromise(chan);
equal(resp, "<h1> 404 Path not found: /test?bla=some</h1>"); equal(resp, "<h1> 404 Path not found: /test?bla=some</h1>");
dns.clearCache(true); Services.dns.clearCache(true);
override.addIPOverride("ipv4only.arpa", "fe80::9b2b:c000:00aa"); override.addIPOverride("ipv4only.arpa", "fe80::9b2b:c000:00aa");
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.connectivity-service.nat64-prefix", "network.connectivity-service.nat64-prefix",

View file

@ -4,10 +4,6 @@
"use strict"; "use strict";
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
function setup() { function setup() {
trr_test_setup(); trr_test_setup();
} }
@ -24,7 +20,7 @@ add_task(async function checkBlocklisting() {
await trrServer.start(); await trrServer.start();
info(`port = ${trrServer.port}\n`); info(`port = ${trrServer.port}\n`);
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.uri", "network.trr.uri",
`https://foo.example.com:${trrServer.port}/dns-query` `https://foo.example.com:${trrServer.port}/dns-query`
@ -44,13 +40,13 @@ add_task(async function checkBlocklisting() {
await new TRRDNSListener(`sub${i}.blocklisted.com`, { await new TRRDNSListener(`sub${i}.blocklisted.com`, {
expectedAnswer: "127.0.0.1", expectedAnswer: "127.0.0.1",
}); });
dns.clearCache(true); Services.dns.clearCache(true);
await new TRRDNSListener(`sub${i}.blocklisted.com`, { await new TRRDNSListener(`sub${i}.blocklisted.com`, {
expectedAnswer: "127.0.0.1", expectedAnswer: "127.0.0.1",
}); });
await new TRRDNSListener(`sub.sub${i}.blocklisted.com`, { await new TRRDNSListener(`sub.sub${i}.blocklisted.com`, {
expectedAnswer: "127.0.0.1", expectedAnswer: "127.0.0.1",
}); });
dns.clearCache(true); Services.dns.clearCache(true);
} }
}); });

View file

@ -71,7 +71,7 @@ class ProxyFilter {
async function doTest(proxySetup, delay) { async function doTest(proxySetup, delay) {
info("Verifying a basic A record"); info("Verifying a basic A record");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2"); // TRR-first setModeAndURI(2, "doh?responseIP=2.2.2.2"); // TRR-first
trrProxy = new TRRProxy(); trrProxy = new TRRProxy();
@ -200,12 +200,12 @@ add_task(async function test_trr_proxy() {
add_task(async function test_trr_uri_change() { add_task(async function test_trr_uri_change() {
Services.prefs.setIntPref("network.proxy.type", 0); Services.prefs.setIntPref("network.proxy.type", 0);
Services.prefs.setBoolPref("network.trr.async_connInfo", true); Services.prefs.setBoolPref("network.trr.async_connInfo", true);
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2", "127.0.0.1"); setModeAndURI(2, "doh?responseIP=2.2.2.2", "127.0.0.1");
await new TRRDNSListener("car.example.com", "127.0.0.1"); await new TRRDNSListener("car.example.com", "127.0.0.1");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2"); setModeAndURI(2, "doh?responseIP=2.2.2.2");
await new TRRDNSListener("car.example.net", "2.2.2.2"); await new TRRDNSListener("car.example.net", "2.2.2.2");
}); });

View file

@ -8,9 +8,6 @@ ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
let h2Port; let h2Port;
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const certOverrideService = Cc[ const certOverrideService = Cc[
"@mozilla.org/security/certoverride;1" "@mozilla.org/security/certoverride;1"
].getService(Ci.nsICertOverrideService); ].getService(Ci.nsICertOverrideService);
@ -35,6 +32,7 @@ add_setup(async function setup() {
}); });
if (mozinfo.socketprocess_networking) { if (mozinfo.socketprocess_networking) {
Services.dns; // Needed to trigger socket process.
await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched); await TestUtils.waitForCondition(() => Services.io.socketProcessLaunched);
} }
@ -69,7 +67,7 @@ add_task(async function testUseHTTPSSVCForHttpsUpgrade() {
"network.trr.uri", "network.trr.uri",
"https://foo.example.com:" + h2Port + "/httpssvc_as_altsvc" "https://foo.example.com:" + h2Port + "/httpssvc_as_altsvc"
); );
dns.clearCache(true); Services.dns.clearCache(true);
certOverrideService.setDisableAllSecurityChecksAndLetAttackersInterceptMyData( certOverrideService.setDisableAllSecurityChecksAndLetAttackersInterceptMyData(
true true
@ -111,7 +109,7 @@ add_task(async function testUseHTTPSSVCAsHSTS() {
"network.trr.uri", "network.trr.uri",
"https://foo.example.com:" + h2Port + "/httpssvc_as_altsvc" "https://foo.example.com:" + h2Port + "/httpssvc_as_altsvc"
); );
dns.clearCache(true); Services.dns.clearCache(true);
certOverrideService.setDisableAllSecurityChecksAndLetAttackersInterceptMyData( certOverrideService.setDisableAllSecurityChecksAndLetAttackersInterceptMyData(
true true
@ -156,7 +154,7 @@ add_task(async function testUseHTTPSSVC() {
// Do DNS resolution before creating the channel, so the HTTPSSVC record will // Do DNS resolution before creating the channel, so the HTTPSSVC record will
// be resolved from the cache. // be resolved from the cache.
await new TRRDNSListener("test.httpssvc.com", { await new TRRDNSListener("test.httpssvc.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
}); });
// We need to skip the security check, since our test cert is signed for // We need to skip the security check, since our test cert is signed for
@ -218,7 +216,7 @@ add_task(async function testFallback() {
}); });
let { inRecord } = await new TRRDNSListener("test.fallback.com", { let { inRecord } = await new TRRDNSListener("test.fallback.com", {
type: dns.RESOLVE_TYPE_HTTPSSVC, type: Ci.nsIDNSService.RESOLVE_TYPE_HTTPSSVC,
}); });
let record = inRecord let record = inRecord

View file

@ -13,10 +13,6 @@ const { TestUtils } = ChromeUtils.importESModule(
"resource://testing-common/TestUtils.sys.mjs" "resource://testing-common/TestUtils.sys.mjs"
); );
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const { HttpServer } = ChromeUtils.import("resource://testing-common/httpd.js"); const { HttpServer } = ChromeUtils.import("resource://testing-common/httpd.js");
const TRR_Domain = "foo.example.com"; const TRR_Domain = "foo.example.com";
@ -38,7 +34,7 @@ async function SetParentalControlEnabled(aEnabled) {
"@mozilla.org/parental-controls-service;1", "@mozilla.org/parental-controls-service;1",
parentalControlsService parentalControlsService
); );
dns.reloadParentalControlEnabled(); Services.dns.reloadParentalControlEnabled();
MockRegistrar.unregister(cid); MockRegistrar.unregister(cid);
} }
@ -75,12 +71,12 @@ function setModeAndURI(mode, path, domain) {
async function test_A_record() { async function test_A_record() {
info("Verifying a basic A record"); info("Verifying a basic A record");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2"); // TRR-first setModeAndURI(2, "doh?responseIP=2.2.2.2"); // TRR-first
await new TRRDNSListener("bar.example.com", "2.2.2.2"); await new TRRDNSListener("bar.example.com", "2.2.2.2");
info("Verifying a basic A record - without bootstrapping"); info("Verifying a basic A record - without bootstrapping");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=3.3.3.3"); // TRR-only setModeAndURI(3, "doh?responseIP=3.3.3.3"); // TRR-only
// Clear bootstrap address and add DoH endpoint hostname to local domains // Clear bootstrap address and add DoH endpoint hostname to local domains
@ -98,14 +94,14 @@ async function test_A_record() {
await new TRRDNSListener("bar.example.com", "3.3.3.3"); await new TRRDNSListener("bar.example.com", "3.3.3.3");
info("verify working credentials in DOH request"); info("verify working credentials in DOH request");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=4.4.4.4&auth=true"); setModeAndURI(3, "doh?responseIP=4.4.4.4&auth=true");
Services.prefs.setCharPref("network.trr.credentials", "user:password"); Services.prefs.setCharPref("network.trr.credentials", "user:password");
await new TRRDNSListener("bar.example.com", "4.4.4.4"); await new TRRDNSListener("bar.example.com", "4.4.4.4");
info("Verify failing credentials in DOH request"); info("Verify failing credentials in DOH request");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=4.4.4.4&auth=true"); setModeAndURI(3, "doh?responseIP=4.4.4.4&auth=true");
Services.prefs.setCharPref("network.trr.credentials", "evil:person"); Services.prefs.setCharPref("network.trr.credentials", "evil:person");
@ -125,17 +121,17 @@ async function test_A_record() {
async function test_AAAA_records() { async function test_AAAA_records() {
info("Verifying AAAA record"); info("Verifying AAAA record");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=2020:2020::2020&delayIPv4=100"); setModeAndURI(3, "doh?responseIP=2020:2020::2020&delayIPv4=100");
await new TRRDNSListener("aaaa.example.com", "2020:2020::2020"); await new TRRDNSListener("aaaa.example.com", "2020:2020::2020");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=2020:2020::2020&delayIPv6=100"); setModeAndURI(3, "doh?responseIP=2020:2020::2020&delayIPv6=100");
await new TRRDNSListener("aaaa.example.com", "2020:2020::2020"); await new TRRDNSListener("aaaa.example.com", "2020:2020::2020");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=2020:2020::2020"); setModeAndURI(3, "doh?responseIP=2020:2020::2020");
await new TRRDNSListener("aaaa.example.com", "2020:2020::2020"); await new TRRDNSListener("aaaa.example.com", "2020:2020::2020");
@ -143,7 +139,7 @@ async function test_AAAA_records() {
async function test_RFC1918() { async function test_RFC1918() {
info("Verifying that RFC1918 address from the server is rejected by default"); info("Verifying that RFC1918 address from the server is rejected by default");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=192.168.0.1"); setModeAndURI(3, "doh?responseIP=192.168.0.1");
let { inStatus } = await new TRRDNSListener( let { inStatus } = await new TRRDNSListener(
@ -168,7 +164,7 @@ async function test_RFC1918() {
); );
info("Verify RFC1918 address from the server is fine when told so"); info("Verify RFC1918 address from the server is fine when told so");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=192.168.0.1"); setModeAndURI(3, "doh?responseIP=192.168.0.1");
Services.prefs.setBoolPref("network.trr.allow-rfc1918", true); Services.prefs.setBoolPref("network.trr.allow-rfc1918", true);
await new TRRDNSListener("rfc1918.example.com", "192.168.0.1"); await new TRRDNSListener("rfc1918.example.com", "192.168.0.1");
@ -181,7 +177,7 @@ async function test_RFC1918() {
async function test_GET_ECS() { async function test_GET_ECS() {
info("Verifying resolution via GET with ECS disabled"); info("Verifying resolution via GET with ECS disabled");
dns.clearCache(true); Services.dns.clearCache(true);
// The template part should be discarded // The template part should be discarded
if (runningODoHTests) { if (runningODoHTests) {
setModeAndURI(3, "odoh"); setModeAndURI(3, "odoh");
@ -194,7 +190,7 @@ async function test_GET_ECS() {
await new TRRDNSListener("ecs.example.com", "5.5.5.5"); await new TRRDNSListener("ecs.example.com", "5.5.5.5");
info("Verifying resolution via GET with ECS enabled"); info("Verifying resolution via GET with ECS enabled");
dns.clearCache(true); Services.dns.clearCache(true);
if (runningODoHTests) { if (runningODoHTests) {
setModeAndURI(3, "odoh"); setModeAndURI(3, "odoh");
} else { } else {
@ -210,7 +206,7 @@ async function test_GET_ECS() {
async function test_timeout_mode3() { async function test_timeout_mode3() {
info("Verifying that a short timeout causes failure with a slow server"); info("Verifying that a short timeout causes failure with a slow server");
dns.clearCache(true); Services.dns.clearCache(true);
// First, mode 3. // First, mode 3.
setModeAndURI(3, "doh?noResponse=true"); setModeAndURI(3, "doh?noResponse=true");
Services.prefs.setIntPref("network.trr.request_timeout_ms", 10); Services.prefs.setIntPref("network.trr.request_timeout_ms", 10);
@ -227,7 +223,7 @@ async function test_timeout_mode3() {
); );
// Now for mode 2 // Now for mode 2
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?noResponse=true"); setModeAndURI(2, "doh?noResponse=true");
await new TRRDNSListener("timeout.example.com", "127.0.0.1"); // Should fallback await new TRRDNSListener("timeout.example.com", "127.0.0.1"); // Should fallback
@ -237,7 +233,7 @@ async function test_timeout_mode3() {
} }
async function test_trr_retry() { async function test_trr_retry() {
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref("network.trr.strict_native_fallback", false); Services.prefs.setBoolPref("network.trr.strict_native_fallback", false);
info("Test fallback to native"); info("Test fallback to native");
@ -268,13 +264,13 @@ async function test_trr_retry() {
await new TRRDNSListener("retry_ok.example.com", "2.2.2.2"); await new TRRDNSListener("retry_ok.example.com", "2.2.2.2");
info("Test Retry Failed"); info("Test Retry Failed");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2&corruptedAnswer=true"); setModeAndURI(2, "doh?responseIP=2.2.2.2&corruptedAnswer=true");
await new TRRDNSListener("retry_ng.example.com", "127.0.0.1"); await new TRRDNSListener("retry_ng.example.com", "127.0.0.1");
} }
async function test_strict_native_fallback() { async function test_strict_native_fallback() {
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref("network.trr.retry_on_recoverable_errors", true); Services.prefs.setBoolPref("network.trr.retry_on_recoverable_errors", true);
Services.prefs.setBoolPref("network.trr.strict_native_fallback", true); Services.prefs.setBoolPref("network.trr.strict_native_fallback", true);
@ -301,10 +297,10 @@ async function test_strict_native_fallback() {
!Components.isSuccessCode(inStatus), !Components.isSuccessCode(inStatus),
`${inStatus} should be an error code` `${inStatus} should be an error code`
); );
dns.clearCache(true); Services.dns.clearCache(true);
await new TRRDNSListener("timeout.example.com", undefined, false); await new TRRDNSListener("timeout.example.com", undefined, false);
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref( Services.prefs.setBoolPref(
"network.trr.strict_native_fallback_allow_timeouts", "network.trr.strict_native_fallback_allow_timeouts",
true true
@ -319,7 +315,7 @@ async function test_strict_native_fallback() {
); );
info("Now a connection error"); info("Now a connection error");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2"); setModeAndURI(2, "doh?responseIP=2.2.2.2");
Services.prefs.clearUserPref("network.trr.request_timeout_ms"); Services.prefs.clearUserPref("network.trr.request_timeout_ms");
Services.prefs.clearUserPref("network.trr.request_timeout_mode_trronly_ms"); Services.prefs.clearUserPref("network.trr.request_timeout_mode_trronly_ms");
@ -333,7 +329,7 @@ async function test_strict_native_fallback() {
); );
info("Now a decode error"); info("Now a decode error");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2&corruptedAnswer=true"); setModeAndURI(2, "doh?responseIP=2.2.2.2&corruptedAnswer=true");
({ inStatus } = await new TRRDNSListener( ({ inStatus } = await new TRRDNSListener(
"bar.example.com", "bar.example.com",
@ -348,7 +344,7 @@ async function test_strict_native_fallback() {
if (!mozinfo.socketprocess_networking) { if (!mozinfo.socketprocess_networking) {
// Confirmation state isn't passed cross-process. // Confirmation state isn't passed cross-process.
info("Now with confirmation failed - should fallback"); info("Now with confirmation failed - should fallback");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2&corruptedAnswer=true"); setModeAndURI(2, "doh?responseIP=2.2.2.2&corruptedAnswer=true");
if (runningODoHTests) { if (runningODoHTests) {
Services.prefs.setCharPref( Services.prefs.setCharPref(
@ -362,9 +358,9 @@ async function test_strict_native_fallback() {
await TestUtils.waitForCondition( await TestUtils.waitForCondition(
// 3 => CONFIRM_FAILED, 4 => CONFIRM_TRYING_FAILED // 3 => CONFIRM_FAILED, 4 => CONFIRM_TRYING_FAILED
() => () =>
dns.currentTrrConfirmationState == 3 || Services.dns.currentTrrConfirmationState == 3 ||
dns.currentTrrConfirmationState == 4, Services.dns.currentTrrConfirmationState == 4,
`Timed out waiting for confirmation failure. Currently ${dns.currentTrrConfirmationState}`, `Timed out waiting for confirmation failure. Currently ${Services.dns.currentTrrConfirmationState}`,
1, 1,
5000 5000
); );
@ -372,7 +368,7 @@ async function test_strict_native_fallback() {
} }
info("Now a successful case."); info("Now a successful case.");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2"); setModeAndURI(2, "doh?responseIP=2.2.2.2");
if (!mozinfo.socketprocess_networking) { if (!mozinfo.socketprocess_networking) {
// Only need to reset confirmation state if we messed with it before. // Only need to reset confirmation state if we messed with it before.
@ -385,8 +381,8 @@ async function test_strict_native_fallback() {
Services.prefs.setCharPref("network.trr.confirmationNS", "skip"); Services.prefs.setCharPref("network.trr.confirmationNS", "skip");
await TestUtils.waitForCondition( await TestUtils.waitForCondition(
// 5 => CONFIRM_DISABLED // 5 => CONFIRM_DISABLED
() => dns.currentTrrConfirmationState == 5, () => Services.dns.currentTrrConfirmationState == 5,
`Timed out waiting for confirmation disabled. Currently ${dns.currentTrrConfirmationState}`, `Timed out waiting for confirmation disabled. Currently ${Services.dns.currentTrrConfirmationState}`,
1, 1,
5000 5000
); );
@ -394,7 +390,7 @@ async function test_strict_native_fallback() {
await new TRRDNSListener("bar.example.com", "2.2.2.2"); await new TRRDNSListener("bar.example.com", "2.2.2.2");
info("Now without strict fallback mode, timeout case"); info("Now without strict fallback mode, timeout case");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?noResponse=true"); setModeAndURI(2, "doh?noResponse=true");
Services.prefs.setIntPref("network.trr.request_timeout_ms", 10); Services.prefs.setIntPref("network.trr.request_timeout_ms", 10);
Services.prefs.setIntPref("network.trr.request_timeout_mode_trronly_ms", 10); Services.prefs.setIntPref("network.trr.request_timeout_mode_trronly_ms", 10);
@ -407,7 +403,7 @@ async function test_strict_native_fallback() {
await new TRRDNSListener("timeout.example.com", "127.0.0.1"); // Should fallback await new TRRDNSListener("timeout.example.com", "127.0.0.1"); // Should fallback
info("Now a connection error"); info("Now a connection error");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2"); setModeAndURI(2, "doh?responseIP=2.2.2.2");
Services.prefs.clearUserPref("network.trr.request_timeout_ms"); Services.prefs.clearUserPref("network.trr.request_timeout_ms");
Services.prefs.clearUserPref("network.trr.request_timeout_mode_trronly_ms"); Services.prefs.clearUserPref("network.trr.request_timeout_mode_trronly_ms");
@ -417,7 +413,7 @@ async function test_strict_native_fallback() {
await new TRRDNSListener("closeme.com", "127.0.0.1"); // Should fallback await new TRRDNSListener("closeme.com", "127.0.0.1"); // Should fallback
info("Now a decode error"); info("Now a decode error");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2&corruptedAnswer=true"); setModeAndURI(2, "doh?responseIP=2.2.2.2&corruptedAnswer=true");
await new TRRDNSListener("bar.example.com", "127.0.0.1"); // Should fallback await new TRRDNSListener("bar.example.com", "127.0.0.1"); // Should fallback
@ -431,28 +427,28 @@ async function test_strict_native_fallback() {
async function test_no_answers_fallback() { async function test_no_answers_fallback() {
info("Verfiying that we correctly fallback to Do53 when no answers from DoH"); info("Verfiying that we correctly fallback to Do53 when no answers from DoH");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=none"); // TRR-first setModeAndURI(2, "doh?responseIP=none"); // TRR-first
await new TRRDNSListener("confirm.example.com", "127.0.0.1"); await new TRRDNSListener("confirm.example.com", "127.0.0.1");
info("Now in strict mode - no fallback"); info("Now in strict mode - no fallback");
Services.prefs.setBoolPref("network.trr.strict_native_fallback", true); Services.prefs.setBoolPref("network.trr.strict_native_fallback", true);
dns.clearCache(true); Services.dns.clearCache(true);
await new TRRDNSListener("confirm.example.com", "127.0.0.1"); await new TRRDNSListener("confirm.example.com", "127.0.0.1");
Services.prefs.setBoolPref("network.trr.strict_native_fallback", false); Services.prefs.setBoolPref("network.trr.strict_native_fallback", false);
} }
async function test_404_fallback() { async function test_404_fallback() {
info("Verfiying that we correctly fallback to Do53 when DoH sends 404"); info("Verfiying that we correctly fallback to Do53 when DoH sends 404");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "404"); // TRR-first setModeAndURI(2, "404"); // TRR-first
await new TRRDNSListener("test404.example.com", "127.0.0.1"); await new TRRDNSListener("test404.example.com", "127.0.0.1");
info("Now in strict mode - no fallback"); info("Now in strict mode - no fallback");
Services.prefs.setBoolPref("network.trr.strict_native_fallback", true); Services.prefs.setBoolPref("network.trr.strict_native_fallback", true);
dns.clearCache(true); Services.dns.clearCache(true);
let { inStatus } = await new TRRDNSListener("test404.example.com", { let { inStatus } = await new TRRDNSListener("test404.example.com", {
expectedSuccess: false, expectedSuccess: false,
}); });
@ -466,15 +462,19 @@ async function test_404_fallback() {
async function test_mode_1_and_4() { async function test_mode_1_and_4() {
info("Verifying modes 1 and 4 are treated as TRR-off"); info("Verifying modes 1 and 4 are treated as TRR-off");
for (let mode of [1, 4]) { for (let mode of [1, 4]) {
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(mode, "doh?responseIP=2.2.2.2"); setModeAndURI(mode, "doh?responseIP=2.2.2.2");
Assert.equal(dns.currentTrrMode, 5, "Effective TRR mode should be 5"); Assert.equal(
Services.dns.currentTrrMode,
5,
"Effective TRR mode should be 5"
);
} }
} }
async function test_CNAME() { async function test_CNAME() {
info("Checking that we follow a CNAME correctly"); info("Checking that we follow a CNAME correctly");
dns.clearCache(true); Services.dns.clearCache(true);
// The dns-cname path alternates between sending us a CNAME pointing to // The dns-cname path alternates between sending us a CNAME pointing to
// another domain, and an A record. If we follow the cname correctly, doing // another domain, and an A record. If we follow the cname correctly, doing
// a lookup with this path as the DoH URI should resolve to that A record. // a lookup with this path as the DoH URI should resolve to that A record.
@ -487,7 +487,7 @@ async function test_CNAME() {
await new TRRDNSListener("cname.example.com", "99.88.77.66"); await new TRRDNSListener("cname.example.com", "99.88.77.66");
info("Verifying that we bail out when we're thrown into a CNAME loop"); info("Verifying that we bail out when we're thrown into a CNAME loop");
dns.clearCache(true); Services.dns.clearCache(true);
// First mode 3. // First mode 3.
if (runningODoHTests) { if (runningODoHTests) {
setModeAndURI(3, "odoh?responseIP=none&cnameloop=true"); setModeAndURI(3, "odoh?responseIP=none&cnameloop=true");
@ -506,7 +506,7 @@ async function test_CNAME() {
); );
// Now mode 2. // Now mode 2.
dns.clearCache(true); Services.dns.clearCache(true);
if (runningODoHTests) { if (runningODoHTests) {
setModeAndURI(2, "ododoh?responseIP=none&cnameloop=trueoh"); setModeAndURI(2, "ododoh?responseIP=none&cnameloop=trueoh");
} else { } else {
@ -516,7 +516,7 @@ async function test_CNAME() {
await new TRRDNSListener("test20.example.com", "127.0.0.1"); // Should fallback await new TRRDNSListener("test20.example.com", "127.0.0.1"); // Should fallback
info("Check that we correctly handle CNAME bundled with an A record"); info("Check that we correctly handle CNAME bundled with an A record");
dns.clearCache(true); Services.dns.clearCache(true);
// "dns-cname-a" path causes server to send a CNAME as well as an A record // "dns-cname-a" path causes server to send a CNAME as well as an A record
if (runningODoHTests) { if (runningODoHTests) {
setModeAndURI(3, "odoh?cname=ARecord"); setModeAndURI(3, "odoh?cname=ARecord");
@ -529,7 +529,7 @@ async function test_CNAME() {
async function test_name_mismatch() { async function test_name_mismatch() {
info("Verify that records that don't match the requested name are rejected"); info("Verify that records that don't match the requested name are rejected");
dns.clearCache(true); Services.dns.clearCache(true);
// Setting hostname param tells server to always send record for bar.example.com // Setting hostname param tells server to always send record for bar.example.com
// regardless of what was requested. // regardless of what was requested.
setModeAndURI(3, "doh?hostname=mismatch.example.com"); setModeAndURI(3, "doh?hostname=mismatch.example.com");
@ -547,7 +547,7 @@ async function test_name_mismatch() {
async function test_mode_2() { async function test_mode_2() {
info("Checking that TRR result is used in mode 2"); info("Checking that TRR result is used in mode 2");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=192.192.192.192"); setModeAndURI(2, "doh?responseIP=192.192.192.192");
Services.prefs.setCharPref("network.trr.excluded-domains", ""); Services.prefs.setCharPref("network.trr.excluded-domains", "");
Services.prefs.setCharPref("network.trr.builtin-excluded-domains", ""); Services.prefs.setCharPref("network.trr.builtin-excluded-domains", "");
@ -556,7 +556,7 @@ async function test_mode_2() {
info("Now in strict mode"); info("Now in strict mode");
Services.prefs.setBoolPref("network.trr.strict_native_fallback", true); Services.prefs.setBoolPref("network.trr.strict_native_fallback", true);
dns.clearCache(true); Services.dns.clearCache(true);
await new TRRDNSListener("bar.example.com", "192.192.192.192"); await new TRRDNSListener("bar.example.com", "192.192.192.192");
Services.prefs.setBoolPref("network.trr.strict_native_fallback", false); Services.prefs.setBoolPref("network.trr.strict_native_fallback", false);
} }
@ -569,7 +569,7 @@ async function test_excluded_domains() {
"network.trr.strict_native_fallback", "network.trr.strict_native_fallback",
strictMode strictMode
); );
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=192.192.192.192"); setModeAndURI(2, "doh?responseIP=192.192.192.192");
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.excluded-domains", "network.trr.excluded-domains",
@ -578,19 +578,19 @@ async function test_excluded_domains() {
await new TRRDNSListener("bar.example.com", "127.0.0.1"); // Do53 result await new TRRDNSListener("bar.example.com", "127.0.0.1"); // Do53 result
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref("network.trr.excluded-domains", "example.com"); Services.prefs.setCharPref("network.trr.excluded-domains", "example.com");
await new TRRDNSListener("bar.example.com", "127.0.0.1"); await new TRRDNSListener("bar.example.com", "127.0.0.1");
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.excluded-domains", "network.trr.excluded-domains",
"foo.test.com, bar.example.com" "foo.test.com, bar.example.com"
); );
await new TRRDNSListener("bar.example.com", "127.0.0.1"); await new TRRDNSListener("bar.example.com", "127.0.0.1");
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.excluded-domains", "network.trr.excluded-domains",
"bar.example.com, foo.test.com" "bar.example.com, foo.test.com"
@ -625,7 +625,7 @@ async function test_captiveportal_canonicalURL() {
"network.trr.strict_native_fallback", "network.trr.strict_native_fallback",
strictMode strictMode
); );
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2"); setModeAndURI(2, "doh?responseIP=2.2.2.2");
const cpServer = new HttpServer(); const cpServer = new HttpServer();
@ -668,7 +668,7 @@ async function test_captiveportal_canonicalURL() {
async function test_parentalcontrols() { async function test_parentalcontrols() {
info("Check that DoH isn't used when parental controls are enabled"); info("Check that DoH isn't used when parental controls are enabled");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2"); setModeAndURI(2, "doh?responseIP=2.2.2.2");
await SetParentalControlEnabled(true); await SetParentalControlEnabled(true);
await new TRRDNSListener("www.example.com", "127.0.0.1"); await new TRRDNSListener("www.example.com", "127.0.0.1");
@ -676,7 +676,7 @@ async function test_parentalcontrols() {
info("Now in strict mode"); info("Now in strict mode");
Services.prefs.setBoolPref("network.trr.strict_native_fallback", true); Services.prefs.setBoolPref("network.trr.strict_native_fallback", true);
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2"); setModeAndURI(2, "doh?responseIP=2.2.2.2");
await SetParentalControlEnabled(true); await SetParentalControlEnabled(true);
await new TRRDNSListener("www.example.com", "127.0.0.1"); await new TRRDNSListener("www.example.com", "127.0.0.1");
@ -692,7 +692,7 @@ async function test_builtin_excluded_domains() {
"network.trr.strict_native_fallback", "network.trr.strict_native_fallback",
strictMode strictMode
); );
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2"); setModeAndURI(2, "doh?responseIP=2.2.2.2");
Services.prefs.setCharPref("network.trr.excluded-domains", ""); Services.prefs.setCharPref("network.trr.excluded-domains", "");
@ -702,14 +702,14 @@ async function test_builtin_excluded_domains() {
); );
await new TRRDNSListener("bar.example.com", "127.0.0.1"); await new TRRDNSListener("bar.example.com", "127.0.0.1");
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.builtin-excluded-domains", "network.trr.builtin-excluded-domains",
"example.com" "example.com"
); );
await new TRRDNSListener("bar.example.com", "127.0.0.1"); await new TRRDNSListener("bar.example.com", "127.0.0.1");
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.builtin-excluded-domains", "network.trr.builtin-excluded-domains",
"foo.test.com, bar.example.com" "foo.test.com, bar.example.com"
@ -721,26 +721,26 @@ async function test_builtin_excluded_domains() {
async function test_excluded_domains_mode3() { async function test_excluded_domains_mode3() {
info("Checking Do53 is used for names in excluded-domains list in mode 3"); info("Checking Do53 is used for names in excluded-domains list in mode 3");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=192.192.192.192"); setModeAndURI(3, "doh?responseIP=192.192.192.192");
Services.prefs.setCharPref("network.trr.excluded-domains", ""); Services.prefs.setCharPref("network.trr.excluded-domains", "");
Services.prefs.setCharPref("network.trr.builtin-excluded-domains", ""); Services.prefs.setCharPref("network.trr.builtin-excluded-domains", "");
await new TRRDNSListener("excluded", "192.192.192.192", true); await new TRRDNSListener("excluded", "192.192.192.192", true);
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref("network.trr.excluded-domains", "excluded"); Services.prefs.setCharPref("network.trr.excluded-domains", "excluded");
await new TRRDNSListener("excluded", "127.0.0.1"); await new TRRDNSListener("excluded", "127.0.0.1");
// Test .local // Test .local
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref("network.trr.excluded-domains", "excluded,local"); Services.prefs.setCharPref("network.trr.excluded-domains", "excluded,local");
await new TRRDNSListener("test.local", "127.0.0.1"); await new TRRDNSListener("test.local", "127.0.0.1");
// Test .other // Test .other
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.excluded-domains", "network.trr.excluded-domains",
"excluded,local,other" "excluded,local,other"
@ -751,7 +751,7 @@ async function test_excluded_domains_mode3() {
async function test25e() { async function test25e() {
info("Check captivedetect.canonicalURL is resolved via native DNS in mode 3"); info("Check captivedetect.canonicalURL is resolved via native DNS in mode 3");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=192.192.192.192"); setModeAndURI(3, "doh?responseIP=192.192.192.192");
const cpServer = new HttpServer(); const cpServer = new HttpServer();
@ -793,7 +793,7 @@ async function test25e() {
async function test_parentalcontrols_mode3() { async function test_parentalcontrols_mode3() {
info("Check DoH isn't used when parental controls are enabled in mode 3"); info("Check DoH isn't used when parental controls are enabled in mode 3");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=192.192.192.192"); setModeAndURI(3, "doh?responseIP=192.192.192.192");
await SetParentalControlEnabled(true); await SetParentalControlEnabled(true);
await new TRRDNSListener("www.example.com", "127.0.0.1"); await new TRRDNSListener("www.example.com", "127.0.0.1");
@ -802,7 +802,7 @@ async function test_parentalcontrols_mode3() {
async function test_builtin_excluded_domains_mode3() { async function test_builtin_excluded_domains_mode3() {
info("Check Do53 used for domains in builtin-excluded-domians list, mode 3"); info("Check Do53 used for domains in builtin-excluded-domians list, mode 3");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=192.192.192.192"); setModeAndURI(3, "doh?responseIP=192.192.192.192");
Services.prefs.setCharPref("network.trr.excluded-domains", ""); Services.prefs.setCharPref("network.trr.excluded-domains", "");
Services.prefs.setCharPref( Services.prefs.setCharPref(
@ -813,7 +813,7 @@ async function test_builtin_excluded_domains_mode3() {
await new TRRDNSListener("excluded", "127.0.0.1"); await new TRRDNSListener("excluded", "127.0.0.1");
// Test .local // Test .local
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.builtin-excluded-domains", "network.trr.builtin-excluded-domains",
"excluded,local" "excluded,local"
@ -822,7 +822,7 @@ async function test_builtin_excluded_domains_mode3() {
await new TRRDNSListener("test.local", "127.0.0.1"); await new TRRDNSListener("test.local", "127.0.0.1");
// Test .other // Test .other
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref( Services.prefs.setCharPref(
"network.trr.builtin-excluded-domains", "network.trr.builtin-excluded-domains",
"excluded,local,other" "excluded,local,other"
@ -839,7 +839,7 @@ async function count_cookies() {
async function test_connection_closed() { async function test_connection_closed() {
info("Check we handle it correctly when the connection is closed"); info("Check we handle it correctly when the connection is closed");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=2.2.2.2"); setModeAndURI(3, "doh?responseIP=2.2.2.2");
Services.prefs.setCharPref("network.trr.excluded-domains", ""); Services.prefs.setCharPref("network.trr.excluded-domains", "");
// We don't need to wait for 30 seconds for the request to fail // We don't need to wait for 30 seconds for the request to fail
@ -861,7 +861,7 @@ async function test_connection_closed() {
// No bootstrap this time // No bootstrap this time
Services.prefs.clearUserPref("network.trr.bootstrapAddr"); Services.prefs.clearUserPref("network.trr.bootstrapAddr");
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref("network.trr.excluded-domains", "excluded,local"); Services.prefs.setCharPref("network.trr.excluded-domains", "excluded,local");
Services.prefs.setCharPref("network.dns.localDomains", TRR_Domain); Services.prefs.setCharPref("network.dns.localDomains", TRR_Domain);
@ -876,7 +876,7 @@ async function test_connection_closed() {
await new TRRDNSListener("bar2.example.com", "2.2.2.2"); await new TRRDNSListener("bar2.example.com", "2.2.2.2");
// No local domains either // No local domains either
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref("network.trr.excluded-domains", "excluded"); Services.prefs.setCharPref("network.trr.excluded-domains", "excluded");
Services.prefs.clearUserPref("network.dns.localDomains"); Services.prefs.clearUserPref("network.dns.localDomains");
Services.prefs.clearUserPref("network.trr.bootstrapAddr"); Services.prefs.clearUserPref("network.trr.bootstrapAddr");
@ -894,7 +894,7 @@ async function test_connection_closed() {
// Now make sure that even in mode 3 without a bootstrap address // Now make sure that even in mode 3 without a bootstrap address
// we are able to restart the TRR connection if it drops - the TRR service // we are able to restart the TRR connection if it drops - the TRR service
// channel will use regular DNS to resolve the TRR address. // channel will use regular DNS to resolve the TRR address.
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setCharPref("network.trr.excluded-domains", ""); Services.prefs.setCharPref("network.trr.excluded-domains", "");
Services.prefs.setCharPref("network.trr.builtin-excluded-domains", ""); Services.prefs.setCharPref("network.trr.builtin-excluded-domains", "");
Services.prefs.clearUserPref("network.dns.localDomains"); Services.prefs.clearUserPref("network.dns.localDomains");
@ -908,13 +908,13 @@ async function test_connection_closed() {
!Components.isSuccessCode(inStatus), !Components.isSuccessCode(inStatus),
`${inStatus} should be an error code` `${inStatus} should be an error code`
); );
dns.clearCache(true); Services.dns.clearCache(true);
await new TRRDNSListener("bar2.example.com", "2.2.2.2"); await new TRRDNSListener("bar2.example.com", "2.2.2.2");
// This test exists to document what happens when we're in TRR only mode // This test exists to document what happens when we're in TRR only mode
// and we don't set a bootstrap address. We use DNS to resolve the // and we don't set a bootstrap address. We use DNS to resolve the
// initial URI, but if the connection fails, we don't fallback to DNS // initial URI, but if the connection fails, we don't fallback to DNS
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=9.9.9.9"); setModeAndURI(2, "doh?responseIP=9.9.9.9");
Services.prefs.setCharPref("network.dns.localDomains", "closeme.com"); Services.prefs.setCharPref("network.dns.localDomains", "closeme.com");
Services.prefs.clearUserPref("network.trr.bootstrapAddr"); Services.prefs.clearUserPref("network.trr.bootstrapAddr");
@ -929,13 +929,13 @@ async function test_connection_closed() {
async function test_fetch_time() { async function test_fetch_time() {
info("Verifying timing"); info("Verifying timing");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2&delayIPv4=20"); setModeAndURI(2, "doh?responseIP=2.2.2.2&delayIPv4=20");
await new TRRDNSListener("bar_time.example.com", "2.2.2.2", true, 20); await new TRRDNSListener("bar_time.example.com", "2.2.2.2", true, 20);
// gets an error from DoH. It will fall back to regular DNS. The TRR timing should be 0. // gets an error from DoH. It will fall back to regular DNS. The TRR timing should be 0.
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "404&delayIPv4=20"); setModeAndURI(2, "404&delayIPv4=20");
await new TRRDNSListener("bar_time1.example.com", "127.0.0.1", true, 0); await new TRRDNSListener("bar_time1.example.com", "127.0.0.1", true, 0);
@ -951,7 +951,7 @@ async function test_fetch_time() {
"network.trr.strict_native_fallback", "network.trr.strict_native_fallback",
strictMode strictMode
); );
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=2.2.2.2&delayIPv4=20"); setModeAndURI(2, "doh?responseIP=2.2.2.2&delayIPv4=20");
await new TRRDNSListener("bar_time2.example.com", "127.0.0.1", true, 0); await new TRRDNSListener("bar_time2.example.com", "127.0.0.1", true, 0);
} }
@ -959,20 +959,20 @@ async function test_fetch_time() {
Services.prefs.setCharPref("network.trr.excluded-domains", ""); Services.prefs.setCharPref("network.trr.excluded-domains", "");
// verify RFC1918 address from the server is rejected and the TRR timing will be not set because the response will be from the native resolver. // verify RFC1918 address from the server is rejected and the TRR timing will be not set because the response will be from the native resolver.
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=192.168.0.1&delayIPv4=20"); setModeAndURI(2, "doh?responseIP=192.168.0.1&delayIPv4=20");
await new TRRDNSListener("rfc1918_time.example.com", "127.0.0.1", true, 0); await new TRRDNSListener("rfc1918_time.example.com", "127.0.0.1", true, 0);
} }
async function test_fqdn() { async function test_fqdn() {
info("Test that we handle FQDN encoding and decoding properly"); info("Test that we handle FQDN encoding and decoding properly");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(3, "doh?responseIP=9.8.7.6"); setModeAndURI(3, "doh?responseIP=9.8.7.6");
await new TRRDNSListener("fqdn.example.org.", "9.8.7.6"); await new TRRDNSListener("fqdn.example.org.", "9.8.7.6");
// GET // GET
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref("network.trr.useGET", true); Services.prefs.setBoolPref("network.trr.useGET", true);
await new TRRDNSListener("fqdn_get.example.org.", "9.8.7.6"); await new TRRDNSListener("fqdn_get.example.org.", "9.8.7.6");
@ -981,7 +981,7 @@ async function test_fqdn() {
async function test_ipv6_trr_fallback() { async function test_ipv6_trr_fallback() {
info("Testing fallback with ipv6"); info("Testing fallback with ipv6");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=4.4.4.4"); setModeAndURI(2, "doh?responseIP=4.4.4.4");
const override = Cc["@mozilla.org/network/native-dns-override;1"].getService( const override = Cc["@mozilla.org/network/native-dns-override;1"].getService(
@ -998,12 +998,12 @@ async function test_ipv6_trr_fallback() {
equal(inStatus, Cr.NS_ERROR_UNKNOWN_HOST); equal(inStatus, Cr.NS_ERROR_UNKNOWN_HOST);
// This time both requests fail, so we do fall back // This time both requests fail, so we do fall back
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=none"); setModeAndURI(2, "doh?responseIP=none");
await new TRRDNSListener("ipv6.host.com", "1:1::2"); await new TRRDNSListener("ipv6.host.com", "1:1::2");
info("In strict mode, the lookup should fail when both reqs fail."); info("In strict mode, the lookup should fail when both reqs fail.");
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref("network.trr.strict_native_fallback", true); Services.prefs.setBoolPref("network.trr.strict_native_fallback", true);
setModeAndURI(2, "doh?responseIP=none"); setModeAndURI(2, "doh?responseIP=none");
await new TRRDNSListener("ipv6.host.com", "1:1::2"); await new TRRDNSListener("ipv6.host.com", "1:1::2");
@ -1014,7 +1014,7 @@ async function test_ipv6_trr_fallback() {
async function test_ipv4_trr_fallback() { async function test_ipv4_trr_fallback() {
info("Testing fallback with ipv4"); info("Testing fallback with ipv4");
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=1:2::3"); setModeAndURI(2, "doh?responseIP=1:2::3");
const override = Cc["@mozilla.org/network/native-dns-override;1"].getService( const override = Cc["@mozilla.org/network/native-dns-override;1"].getService(
@ -1031,12 +1031,12 @@ async function test_ipv4_trr_fallback() {
equal(inStatus, Cr.NS_ERROR_UNKNOWN_HOST); equal(inStatus, Cr.NS_ERROR_UNKNOWN_HOST);
// This time both requests fail, so we do fall back // This time both requests fail, so we do fall back
dns.clearCache(true); Services.dns.clearCache(true);
setModeAndURI(2, "doh?responseIP=none"); setModeAndURI(2, "doh?responseIP=none");
await new TRRDNSListener("ipv4.host.com", "3.4.5.6"); await new TRRDNSListener("ipv4.host.com", "3.4.5.6");
// No fallback with strict mode. // No fallback with strict mode.
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setBoolPref("network.trr.strict_native_fallback", true); Services.prefs.setBoolPref("network.trr.strict_native_fallback", true);
setModeAndURI(2, "doh?responseIP=none"); setModeAndURI(2, "doh?responseIP=none");
await new TRRDNSListener("ipv4.host.com", "3.4.5.6"); await new TRRDNSListener("ipv4.host.com", "3.4.5.6");
@ -1097,7 +1097,7 @@ async function test_no_retry_without_doh() {
} }
async function test_connection_reuse_and_cycling() { async function test_connection_reuse_and_cycling() {
dns.clearCache(true); Services.dns.clearCache(true);
Services.prefs.setIntPref("network.trr.request_timeout_ms", 500); Services.prefs.setIntPref("network.trr.request_timeout_ms", 500);
Services.prefs.setIntPref( Services.prefs.setIntPref(
"network.trr.strict_fallback_request_timeout_ms", "network.trr.strict_fallback_request_timeout_ms",
@ -1110,8 +1110,8 @@ async function test_connection_reuse_and_cycling() {
Services.prefs.setCharPref("network.trr.confirmationNS", "example.com"); Services.prefs.setCharPref("network.trr.confirmationNS", "example.com");
await TestUtils.waitForCondition( await TestUtils.waitForCondition(
// 2 => CONFIRM_OK // 2 => CONFIRM_OK
() => dns.currentTrrConfirmationState == 2, () => Services.dns.currentTrrConfirmationState == 2,
`Timed out waiting for confirmation success. Currently ${dns.currentTrrConfirmationState}`, `Timed out waiting for confirmation success. Currently ${Services.dns.currentTrrConfirmationState}`,
1, 1,
5000 5000
); );
@ -1122,8 +1122,8 @@ async function test_connection_reuse_and_cycling() {
setModeAndURI(2, `doh?responseIP=9.8.7.6&conncycle=true`); setModeAndURI(2, `doh?responseIP=9.8.7.6&conncycle=true`);
await TestUtils.waitForCondition( await TestUtils.waitForCondition(
// 2 => CONFIRM_OK // 2 => CONFIRM_OK
() => dns.currentTrrConfirmationState == 2, () => Services.dns.currentTrrConfirmationState == 2,
`Timed out waiting for confirmation success. Currently ${dns.currentTrrConfirmationState}`, `Timed out waiting for confirmation success. Currently ${Services.dns.currentTrrConfirmationState}`,
1, 1,
5000 5000
); );
@ -1138,8 +1138,8 @@ async function test_connection_reuse_and_cycling() {
await new TRRDNSListener("newconn.example.org.", "9.8.7.6"); await new TRRDNSListener("newconn.example.org.", "9.8.7.6");
await TestUtils.waitForCondition( await TestUtils.waitForCondition(
// 2 => CONFIRM_OK // 2 => CONFIRM_OK
() => dns.currentTrrConfirmationState == 2, () => Services.dns.currentTrrConfirmationState == 2,
`Timed out waiting for confirmation success. Currently ${dns.currentTrrConfirmationState}`, `Timed out waiting for confirmation success. Currently ${Services.dns.currentTrrConfirmationState}`,
1, 1,
5000 5000
); );
@ -1154,8 +1154,8 @@ async function test_connection_reuse_and_cycling() {
await new TRRDNSListener("newconn2.example.org.", "9.8.7.6"); await new TRRDNSListener("newconn2.example.org.", "9.8.7.6");
await TestUtils.waitForCondition( await TestUtils.waitForCondition(
// 2 => CONFIRM_OK // 2 => CONFIRM_OK
() => dns.currentTrrConfirmationState == 2, () => Services.dns.currentTrrConfirmationState == 2,
`Timed out waiting for confirmation success. Currently ${dns.currentTrrConfirmationState}`, `Timed out waiting for confirmation success. Currently ${Services.dns.currentTrrConfirmationState}`,
1, 1,
5000 5000
); );

View file

@ -6,17 +6,13 @@
/* import-globals-from ../unit/head_trr.js */ /* import-globals-from ../unit/head_trr.js */
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
let test_answer = "bXkgdm9pY2UgaXMgbXkgcGFzc3dvcmQ="; let test_answer = "bXkgdm9pY2UgaXMgbXkgcGFzc3dvcmQ=";
let test_answer_addr = "127.0.0.1"; let test_answer_addr = "127.0.0.1";
add_task(async function testTXTResolve() { add_task(async function testTXTResolve() {
// use the h2 server as DOH provider // use the h2 server as DOH provider
let { inRecord, inStatus } = await new TRRDNSListener("_esni.example.com", { let { inRecord, inStatus } = await new TRRDNSListener("_esni.example.com", {
type: dns.RESOLVE_TYPE_TXT, type: Ci.nsIDNSService.RESOLVE_TYPE_TXT,
}); });
Assert.equal(inStatus, Cr.NS_OK, "status OK"); Assert.equal(inStatus, Cr.NS_OK, "status OK");
let answer = inRecord let answer = inRecord

View file

@ -35,12 +35,6 @@ function setup() {
// XXX(valentin): It would be nice to just call trr_test_setup() here, but // XXX(valentin): It would be nice to just call trr_test_setup() here, but
// the relative path here makes it awkward. Would be nice to fix someday. // the relative path here makes it awkward. Would be nice to fix someday.
addCertFromFile(certdb, "../unit/http2-ca.pem", "CTu,u,u"); addCertFromFile(certdb, "../unit/http2-ca.pem", "CTu,u,u");
if (!gDNS) {
gDNS = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
}
} }
setup(); setup();

View file

@ -3,10 +3,6 @@
let h2Port; let h2Port;
let prefs; let prefs;
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
function setup() { function setup() {
h2Port = Services.env.get("MOZHTTP2_PORT"); h2Port = Services.env.get("MOZHTTP2_PORT");
Assert.notEqual(h2Port, null); Assert.notEqual(h2Port, null);
@ -79,7 +75,7 @@ function run_test() {
}); });
do_await_remote_message("clearCache").then(() => { do_await_remote_message("clearCache").then(() => {
dns.clearCache(true); Services.dns.clearCache(true);
do_send_remote_message("clearCache-done"); do_send_remote_message("clearCache-done");
}); });

View file

@ -17,13 +17,6 @@ XPCOMUtils.defineLazyModuleGetters(lazy, {
HttpServer: "chrome://remote/content/server/HTTPD.jsm", HttpServer: "chrome://remote/content/server/HTTPD.jsm",
}); });
XPCOMUtils.defineLazyServiceGetter(
lazy,
"DNSService",
"@mozilla.org/network/dns-service;1",
"nsIDNSService"
);
XPCOMUtils.defineLazyGetter(lazy, "logger", () => lazy.Log.get()); XPCOMUtils.defineLazyGetter(lazy, "logger", () => lazy.Log.get());
XPCOMUtils.defineLazyGetter(lazy, "activeProtocols", () => { XPCOMUtils.defineLazyGetter(lazy, "activeProtocols", () => {
@ -294,7 +287,7 @@ class RemoteAgentParentProcess {
}; };
try { try {
originalRequest = lazy.DNSService.asyncResolve( originalRequest = Services.dns.asyncResolve(
hostname, hostname,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
Ci.nsIDNSService.RESOLVE_BYPASS_CACHE, Ci.nsIDNSService.RESOLVE_BYPASS_CACHE,

View file

@ -118,9 +118,7 @@ class FxAccountsDevice {
let hostname; let hostname;
try { try {
// hostname of the system, usually assigned by the user or admin // hostname of the system, usually assigned by the user or admin
hostname = Cc["@mozilla.org/network/dns-service;1"].getService( hostname = Services.dns.myHostName;
Ci.nsIDNSService
).myHostName;
} catch (ex) { } catch (ex) {
console.error(ex); console.error(ex);
} }

View file

@ -28,10 +28,7 @@ add_test(function test_default_device_name() {
// This is obviously tied to the implementation, but we want early warning // This is obviously tied to the implementation, but we want early warning
// if any of these things fail. // if any of these things fail.
// We really want one of these 2 to provide a value. // We really want one of these 2 to provide a value.
let hostname = let hostname = Services.sysinfo.get("device") || Services.dns.myHostName;
Services.sysinfo.get("device") ||
Cc["@mozilla.org/network/dns-service;1"].getService(Ci.nsIDNSService)
.myHostName;
_("hostname is " + hostname); _("hostname is " + hostname);
ok(!!hostname.length); ok(!!hostname.length);
// the hostname should be in the default. // the hostname should be in the default.

View file

@ -26,9 +26,6 @@ function getErrorString(nsresult) {
this.dns = class extends ExtensionAPI { this.dns = class extends ExtensionAPI {
getAPI(context) { getAPI(context) {
const dnss = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
return { return {
dns: { dns: {
resolve: function(hostname, flags) { resolve: function(hostname, flags) {
@ -69,7 +66,7 @@ this.dns = class extends ExtensionAPI {
}, },
}; };
try { try {
request = dnss.asyncResolve( request = Services.dns.asyncResolve(
hostname, hostname,
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT, Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
dnsFlags, dnsFlags,

View file

@ -18,9 +18,6 @@ const gNetLinkSvc =
Cc["@mozilla.org/network/network-link-service;1"].getService( Cc["@mozilla.org/network/network-link-service;1"].getService(
Ci.nsINetworkLinkService Ci.nsINetworkLinkService
); );
const gDNSService = Cc["@mozilla.org/network/dns-service;1"].getService(
Ci.nsIDNSService
);
const gRequestNetworkingData = { const gRequestNetworkingData = {
http: gDashboard.requestHttpConnections, http: gDashboard.requestHttpConnections,
@ -107,8 +104,8 @@ function displayDns(data) {
let trr_url_tbody = document.createElement("tbody"); let trr_url_tbody = document.createElement("tbody");
trr_url_tbody.id = "dns_trr_url"; trr_url_tbody.id = "dns_trr_url";
let trr_url = document.createElement("tr"); let trr_url = document.createElement("tr");
trr_url.appendChild(col(gDNSService.currentTrrURI)); trr_url.appendChild(col(Services.dns.currentTrrURI));
trr_url.appendChild(col(gDNSService.currentTrrMode)); trr_url.appendChild(col(Services.dns.currentTrrMode));
trr_url_tbody.appendChild(trr_url); trr_url_tbody.appendChild(trr_url);
let prevURL = document.getElementById("dns_trr_url"); let prevURL = document.getElementById("dns_trr_url");
prevURL.parentNode.replaceChild(trr_url_tbody, prevURL); prevURL.parentNode.replaceChild(trr_url_tbody, prevURL);
@ -282,7 +279,7 @@ function init() {
let clearDNSCache = document.getElementById("clearDNSCache"); let clearDNSCache = document.getElementById("clearDNSCache");
clearDNSCache.addEventListener("click", function() { clearDNSCache.addEventListener("click", function() {
gDNSService.clearCache(true); Services.dns.clearCache(true);
}); });
if (location.hash) { if (location.hash) {

View file

@ -18,6 +18,7 @@
"nsIDAPTelemetry": "DAPTelemetry", "nsIDAPTelemetry": "DAPTelemetry",
"nsIDOMRequestService": "DOMRequest", "nsIDOMRequestService": "DOMRequest",
"nsIDOMStorageManager": "domStorageManager", "nsIDOMStorageManager": "domStorageManager",
"nsIDNSService": "dns",
"nsIDirectoryService": "dirsvc", "nsIDirectoryService": "dirsvc",
"nsIDroppedLinkHandler": "droppedLinkHandler", "nsIDroppedLinkHandler": "droppedLinkHandler",
"nsIEffectiveTLDService": "eTLD", "nsIEffectiveTLDService": "eTLD",