TRRSkippedReasons

这些值在 TRRSkippedReason.h 中定义,并在每个解析的 nsHostRecord 上记录。我们通常将它们用于遥测或确定 TRR 失败的原因。

TRR_UNSET

值:0

在尝试解析域名之前,此原因会设置在 nsHostRecord 上。通常我们不应该将此值报告到遥测 - 如果我们这样做,意味着代码中存在错误。

TRR_OK

值:1

当我们获得正向 TRR 结果时,会设置此原因。这意味着我们使用 TRR 进行 DNS 解析,HTTPS 请求获得了 200 响应,响应被正确解码为 DNS 数据包,并且该数据包包含相关答案。

TRR_NO_GSERVICE

值:2

仅当在尝试为请求计算 TRR 模式时没有 TRR 服务实例时,才会设置此原因。它表示实现中的错误。

TRR_PARENTAL_CONTROL

值:3

当我们检测到系统级家长控制已启用时,会设置此原因。在这种情况下,我们将不会对任何请求使用 TRR。

TRR_OFF_EXPLICIT

值:4

当用户显式禁用 DNS over HTTPS(通过将 network.trr.mode 设置为 5)时,会设置此原因。在这种情况下,我们将不会对任何请求使用 TRR。

TRR_REQ_MODE_DISABLED

值:5

请求的 nsIRequest::TRRMode 设置为 TRR_DISABLED_MODE。对于不应使用 TRR 的请求,通常情况下是这样的,例如 TRRServiceChannel、网络接入点和连接检查、DoHHeuristics 检查、源自 PAC 脚本的请求等。

TRR_MODE_NOT_ENABLED

值:6

当 TRRService 未启用时,会设置此原因。我们最终将此报告到遥测的唯一方法是,当请求分派时 TRRService 已启用,但在处理请求时 TRRService 已禁用。

TRR_FAILED

值:7

TRR 请求由于未知原因失败。

TRR_MODE_UNHANDLED_DEFAULT

值:8

此原因不再使用。此值将来可能会被回收以表示其他含义。

TRR_MODE_UNHANDLED_DISABLED

值:9

此原因不再使用。此值将来可能会被回收以表示其他含义。

TRR_DISABLED_FLAG

值:10

此原因用于重试失败的连接、在主线程上同步 DNS 解析或来自选择跳过 TRR 的 webextensions 的请求。

TRR_TIMEOUT

值:11

TRR 请求超时。

TRR_CHANNEL_DNS_FAIL

值:12

当我们无法解析 DNS over HTTPS 服务器的名称时,会设置此原因。

TRR_BROWSER_IS_OFFLINE

值:13

当 TRR 请求失败且浏览器脱机(没有活动接口)时,会记录此原因。

TRR_NOT_CONFIRMED

值:14

当 TRR 服务尚未确认可以工作时,会记录此原因。仅当启用 Do53 备用时,才会启用确认。

TRR_DID_NOT_MAKE_QUERY

值:15

TrrLookup 退出时未执行 TRR 查询,会发送此原因。它可能在关闭期间设置,也可能表示实现错误。

TRR_UNKNOWN_CHANNEL_FAILURE

值:16

TRR 请求由于未知的通道故障原因而失败。

TRR_HOST_BLOCKED_TEMPORARY

值:17

当主机被暂时阻止时,会记录此原因。当先前尝试使用 TRR 解析它失败,但回退到 Do53 成功时,就会发生这种情况。

TRR_SEND_FAILED

值:18

对 TRR::SendHTTPRequest 的调用失败。

TRR_NET_RESET

值:19

请求失败,因为与 TRR 服务器的连接已重置。

TRR_NET_TIMEOUT

值:20

请求失败,因为与 TRR 服务器的连接超时。

TRR_NET_REFUSED

值:21

请求失败,因为与 TRR 服务器的连接被拒绝。

TRR_NET_INTERRUPT

值:22

请求失败,因为与 TRR 服务器的连接中断。

TRR_NET_INADEQ_SEQURITY

值:23

请求失败,因为与 TRR 服务器的连接使用了无效的 TLS 配置。

TRR_NO_ANSWERS

值:24

TRR 请求成功,但编码的 DNS 数据包不包含任何答案。

TRR_DECODE_FAILED

值:25

TRR 请求成功,但解码 DNS 数据包失败。

TRR_EXCLUDED

值:26

当要解析的域名从 TRR 中排除时,会设置此原因,无论是通过 network.trr.excluded-domains 首选项,还是因为它被用户网络的 DNS 后缀覆盖。

TRR_SERVER_RESPONSE_ERR

值:27

服务器返回了非 200 代码。

TRR_RCODE_FAIL

值:28

解码的 DNS 数据包包含一个与 NOERROR 不同的 rcode。

TRR_NO_CONNECTIVITY

值:29

当浏览器没有连接时,会设置此原因。

TRR_NXDOMAIN

值:30

当 DNS 响应包含 NXDOMAIN rcode (0x03) 时,会设置此原因。

TRR_REQ_CANCELLED

值:31

当请求在完成之前被取消时,会设置此原因。

ODOH_KEY_NOT_USABLE

值:32

当我们没有可用的有效 ODoHConfig 时,会设置此原因。

ODOH_UPDATE_KEY_FAILED

值:33

当我们无法更新 ODoHConfigs 时,会设置此原因。

ODOH_KEY_NOT_AVAILABLE

值:34

由于没有密钥,ODoH 请求超时时,会设置此原因。

ODOH_ENCRYPTION_FAILED

值:35

当我们无法加密 DNS 数据包时,会设置此原因。

ODOH_DECRYPTION_FAILED

值:36

当我们无法解密 DNS 数据包时,会设置此原因。

TRR_HEURISTIC_TRIPPED_GOOGLE_SAFESEARCH

值:37

当 Google 安全搜索启发式触发时,会设置此原因。

TRR_HEURISTIC_TRIPPED_YOUTUBE_SAFESEARCH

值:38

当 YouTube 安全搜索启发式触发时,会设置此原因。

TRR_HEURISTIC_TRIPPED_ZSCALER_CANARY

值:39

当 Zscaler Canary 启发式触发时,会设置此原因。

TRR_HEURISTIC_TRIPPED_CANARY

值:40

当全局 Canary 启发式触发时,会设置此原因。

TRR_HEURISTIC_TRIPPED_MODIFIED_ROOTS

值:41

当修改后的根证书 (enterprise_roots 证书首选项) 启发式触发时,会设置此原因。

TRR_HEURISTIC_TRIPPED_PARENTAL_CONTROLS

值:42

当检测到家长控制时,会设置此原因。

TRR_HEURISTIC_TRIPPED_THIRD_PARTY_ROOTS

值:43

当第三方根证书启发式触发时,会设置此原因。

TRR_HEURISTIC_TRIPPED_ENTERPRISE_POLICY

值:44

当企业策略启发式触发时,会设置此原因。

TRR_HEURISTIC_TRIPPED_VPN

值:45

当启发式被检测到的 VPN 触发时,会设置此原因。

TRR_HEURISTIC_TRIPPED_PROXY

值:46

当启发式被检测到的代理触发时,会设置此原因。

TRR_HEURISTIC_TRIPPED_NRPT

值:47

当启发式被检测到的 NRPT 触发时,会设置此原因。