Merge pull request #17547 from timvandermeij/remove-dns-resolver-workaround

Remove DNS resolver workaround from the test framework
This commit is contained in:
Tim van der Meij 2024-01-20 20:23:37 +01:00 committed by GitHub
commit 626674553d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -20,7 +20,6 @@ import {
downloadManifestFiles, downloadManifestFiles,
verifyManifestFiles, verifyManifestFiles,
} from "./downloadutils.mjs"; } from "./downloadutils.mjs";
import dns from "dns";
import fs from "fs"; import fs from "fs";
import os from "os"; import os from "os";
import path from "path"; import path from "path";
@ -34,21 +33,6 @@ import yargs from "yargs";
const rimrafSync = rimraf.sync; const rimrafSync = rimraf.sync;
// Chrome uses host `127.0.0.1` in the browser's websocket endpoint URL while
// Firefox uses `localhost`, which before Node.js 17 also resolved to the IPv4
// address `127.0.0.1` by Node.js' DNS resolver. However, this behavior changed
// in Node.js 17 where the default is to prefer an IPv6 address if one is
// offered (which varies based on the OS and/or how the `localhost` hostname
// resolution is configured), so it can now also resolve to `::1`. This causes
// Firefox to not start anymore since it doesn't bind on the `::1` interface.
// To avoid this, we switch Node.js' DNS resolver back to preferring IPv4
// since we connect to a local browser anyway. Only do this for Node.js versions
// that actually have this API since it got introduced in Node.js 14.18.0 and
// it's not relevant for older versions anyway.
if (dns.setDefaultResultOrder !== undefined) {
dns.setDefaultResultOrder("ipv4first");
}
function parseOptions() { function parseOptions() {
const parsedArgs = yargs(process.argv) const parsedArgs = yargs(process.argv)
.usage("Usage: $0") .usage("Usage: $0")