Skip to content

Commit f7f289f

Browse files
committed
Backed out 2 changesets (bug 1822495) for causing a very high failure rate in Bug 1775997. CLOSED TREE
Backed out changeset c2121c4069d9 (bug 1822495) Backed out changeset 356e59590921 (bug 1822495)
1 parent a7313d2 commit f7f289f

File tree

2 files changed

+4
-142
lines changed

2 files changed

+4
-142
lines changed

browser/components/doh/DoHHeuristics.sys.mjs

Lines changed: 4 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -188,47 +188,15 @@ async function dnsListLookup(domainList) {
188188
}
189189

190190
// TODO: Confirm the expected behavior when filtering is on
191-
export async function globalCanary() {
192-
// Check that a commonly used domain resolves before and after
193-
// checking the global canary.
194-
// If this check fails, the globalCanary isn't to be trusted, as it's
195-
// an indication it might have failed due to DNS being unavailable.
196-
async function preconditionCheck(domain) {
197-
let { addresses, err } = await dnsLookup(domain);
198-
if (err === NXDOMAIN_ERR || !addresses.length) {
199-
return false;
200-
}
201-
return true;
202-
}
203-
204-
let preCheckSuccess = await preconditionCheck("example.com.");
205-
if (!preCheckSuccess) {
206-
return "enable_doh";
207-
}
208-
209-
// Actual global canary check
191+
async function globalCanary() {
210192
let { addresses, err } = await dnsLookup(GLOBAL_CANARY);
211193

212-
let postCheckSuccess = await preconditionCheck("example.org.");
213-
if (!postCheckSuccess) {
214-
return "enable_doh";
215-
}
216-
217-
function isLocal(addr) {
218-
// hostnameIsLocalIPAddress does not return true for loopback addresses
219-
// so we specifically handle these.
220-
if (addr == "127.0.0.1" || addr == "::1" || addr == "0.0.0.0") {
221-
return true;
222-
}
223-
return Services.io.hostnameIsLocalIPAddress(
224-
Services.io.newURI(`http://${addr}`)
225-
);
226-
}
227-
228194
if (
229195
err === NXDOMAIN_ERR ||
230196
!addresses.length ||
231-
addresses.every(addr => isLocal(addr))
197+
addresses.every(addr =>
198+
Services.io.hostnameIsLocalIPAddress(Services.io.newURI(`http://${addr}`))
199+
)
232200
) {
233201
return "disable_doh";
234202
}

browser/components/doh/test/unit/test_heuristics.js

Lines changed: 0 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -78,109 +78,3 @@ add_task(async function test_parentalControls() {
7878
"By default, parental controls should be disabled and doh should be enabled"
7979
);
8080
});
81-
82-
add_task(async function test_canary() {
83-
let DoHHeuristics = ChromeUtils.importESModule(
84-
"resource:///modules/DoHHeuristics.sys.mjs"
85-
);
86-
const override = Cc["@mozilla.org/network/native-dns-override;1"].getService(
87-
Ci.nsINativeDNSResolverOverride
88-
);
89-
90-
function setCanary(ip, pre, post) {
91-
override.clearOverrides();
92-
override.addIPOverride("use-application-dns.net.", ip);
93-
94-
if (!pre) {
95-
pre = "1.2.3.4";
96-
}
97-
if (!post) {
98-
post = "1.2.3.4";
99-
}
100-
101-
override.addIPOverride("example.com.", pre);
102-
override.addIPOverride("example.org.", post);
103-
}
104-
105-
setCanary("1.2.3.4");
106-
Assert.equal(
107-
await DoHHeuristics.globalCanary(),
108-
"enable_doh",
109-
"Canary should not be triggered"
110-
);
111-
112-
setCanary("0.0.0.0");
113-
Assert.equal(
114-
await DoHHeuristics.globalCanary(),
115-
"disable_doh",
116-
"Canary should be triggered"
117-
);
118-
setCanary("127.0.0.1");
119-
Assert.equal(
120-
await DoHHeuristics.globalCanary(),
121-
"disable_doh",
122-
"Canary should be triggered"
123-
);
124-
setCanary("::1");
125-
Assert.equal(
126-
await DoHHeuristics.globalCanary(),
127-
"disable_doh",
128-
"Canary should be triggered"
129-
);
130-
setCanary("192.168.1.1");
131-
Assert.equal(
132-
await DoHHeuristics.globalCanary(),
133-
"disable_doh",
134-
"Canary should be triggered"
135-
);
136-
setCanary("10.1.1.1");
137-
Assert.equal(
138-
await DoHHeuristics.globalCanary(),
139-
"disable_doh",
140-
"Canary should be triggered"
141-
);
142-
setCanary("N/A");
143-
Assert.equal(
144-
await DoHHeuristics.globalCanary(),
145-
"disable_doh",
146-
"Canary should be triggered"
147-
);
148-
149-
Services.io.offline = true;
150-
setCanary("N/A");
151-
Assert.equal(
152-
await DoHHeuristics.globalCanary(),
153-
"enable_doh",
154-
"Canary should not be triggered when offline"
155-
);
156-
157-
Services.io.offline = false;
158-
Assert.equal(
159-
await DoHHeuristics.globalCanary(),
160-
"disable_doh",
161-
"Canary should be triggered when online"
162-
);
163-
164-
setCanary("N/A", "N/A", "1.2.3.4");
165-
Assert.equal(
166-
await DoHHeuristics.globalCanary(),
167-
"enable_doh",
168-
"Canary should not be triggered when precondition fails"
169-
);
170-
171-
setCanary("N/A", "1.2.3.4", "N/A");
172-
Assert.equal(
173-
await DoHHeuristics.globalCanary(),
174-
"enable_doh",
175-
"Canary should not be triggered when postcondition fails"
176-
);
177-
178-
setCanary("N/A", "N/A", "N/A");
179-
Assert.equal(
180-
await DoHHeuristics.globalCanary(),
181-
"enable_doh",
182-
"Canary should not be triggered when pre&postcondition fails"
183-
);
184-
185-
override.clearOverrides();
186-
});

0 commit comments

Comments
 (0)