||This module provides an interface to acces DoH config settings - e.g. whether
DoH is enabled, whether capabilities are enabled, etc. Currently this just
provides getters for prefs, but imminently will be extended to read config
from a Remote Settings collection and filter by client region etc.
||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.
||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.
||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.