Name Description Size
DoHConfig.jsm 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. 10055
DoHController.jsm 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. 23663
DoHHeuristics.jsm 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. 10498
DoHTestUtils.jsm 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. 3917 637
test 2
TRRPerformance.jsm 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. 11915