Name Description Size
DoHConfig.sys.mjs This module provides an interface to access DoH configuration - e.g. whether DoH is enabled, whether capabilities are enabled, etc. The configuration is sourced from either Remote Settings or pref values, with Remote Settings being preferred. 10602
DoHController.sys.mjs This module runs the automated heuristics to enable/disable DoH on different networks. Heuristics are run at startup and upon network changes. Heuristics are disabled if the user sets their DoH provider or mode manually. 25990
DoHHeuristics.sys.mjs This module implements the heuristics used to determine whether to enable or disable DoH on different networks. DoHController is responsible for running these at startup and upon network changes. 12023
DoHTestUtils.sys.mjs Some helpers for loading and modifying DoH config in Remote Settings. Call resetRemoteSettingsConfig to set up basic default config that omits external URLs. Use waitForConfigFlush to wait for DoH actors to pick up changes. Some tests need to load/reset config while DoH actors are uninitialized. Pass waitForConfigFlushes = false in these cases. 3877 659
TRRPerformance.sys.mjs This module tests TRR performance by issuing DNS requests to TRRs and recording telemetry for the network time for each request. We test each TRR with 5 random subdomains of a canonical domain and also a "popular" domain (which the TRR likely have cached). To ensure data integrity, we run the requests in an aggregator wrapper and collect all the results before sending telemetry. If we detect network loss, the results are discarded. A new run is triggered upon detection of usable network until a full set of results has been captured. We stop retrying after 5 attempts. 11637