提交可操作的网络错误

所以你发现了 Firefox 的网络问题,并决定提交一个错误报告。首先,非常感谢!🎉🎉🎉

网络错误生命周期

错误提交后,会由 Necko 团队成员之一进行分类。工程师会考虑“重现步骤”,然后执行以下操作之一:

  • 分配优先级。工程师会立即或最终开始处理该错误。

  • 将错误移至另一个团队。

  • 向报告者或其他人请求更多信息。

当 necko 错误具有优先级并且 [necko-triaged] 标签已添加到白板时,则认为该错误已分类。

作为错误报告者,请勿更改 PrioritySeverity 标志。这样做可能会阻止错误出现在分类队列中。

注意

为了尽快修复错误,工程师应该将时间花在实际修复上,而不是花在弄清楚可能出了什么问题上。因此,仔细阅读以下部分并在错误报告中包含尽可能多的信息非常重要。

确保这是一个 Firefox 错误

有时网站可能行为异常,你最初会认为这是由 Firefox 中的错误引起的。但是,扩展程序和其他自定义设置也可能导致问题。在提交错误报告之前,请检查以下事项:

确保错误有清晰的重现步骤

这是修复错误的最重要要求之一。清晰的重现步骤将帮助工程师找出问题所在。如果错误只能在需要身份验证的网站上重现,你可以通过私人电子邮件向工程师提供测试帐户。如果需要与 Web 服务器的特定交互才能重现错误,请随时将一个小型的 nodejs、python 等脚本附加到错误报告中。

有时错误是间歇性的(仅偶尔发生)或重现它的步骤并不明显。仍然需要报告这些错误,但它们应包含下面提到的其他信息,以便工程师能够进行调查。

示例 1:

  1. Load `http://example.com`
  2. Click on button
  3. See that nothing happens and an exception is present in the web console.

示例 2:

  1. Download attached testcase
  2. Run testcase with the following command: `node index.js`
  3. Go to `https://127.0.0.1:8888/test` and click the button

其他问题

  • 你是否使用代理?什么类型的代理?

  • 你是否使用 DNS over HTTPS?

    • 如果 about:networking#dns 中的 DoH mode 为 2 或 3,则答案为是。

  • 你使用的是什么平台?(操作系统、Linux 发行版等)

    • 最好简单地复制 about:support 的输出。

MozRegression

如果错误易于重现,并且你认为它以前可以工作,请考虑使用 MozRegression 来追踪何时/什么开始导致此问题。

首先,你需要安装该工具。然后只需按照说明进行操作即可。在工具追踪到原因之前,可能需要重现错误十几次。

最后,你将看到一个回归范围,其中包含引入该错误的提交。

性能问题

如果你遇到性能问题(网站加载速度非常慢等),你应该考虑提交性能配置文件。

崩溃

如果你正在执行的操作导致崩溃,那么提供堆栈跟踪链接非常有用。

  • 转到 about:crashes

  • 在错误报告中粘贴崩溃的报告 ID

HTTP 日志

请参阅HTTP 日志记录页面以获取捕获 HTTP 日志的步骤。

如果日志很大,你可以创建一个 zip 压缩文件并将其附加到错误报告中。如果压缩文件仍然太大而无法附加,你可以将其上传到 Google Drive 或 OneDrive 等文件存储服务,并提交公共链接。

日志可能包含个人信息,例如 Cookie。尝试使用新的 Firefox 配置文件捕获日志。如果无法做到这一点,你也可以将它们放在受密码保护的压缩文件中,或直接通过电子邮件发送给正在处理该错误的开发人员。

Wireshark 转储

在某些情况下,需要查看 Firefox 在网络上发送和接收的字节。发生这种情况时,正在处理该错误的开发人员可能会要求你提供 Wireshark 捕获文件。

下载它,然后在重现错误时运行它。

如果你正在加载的网站(用于重现错误)通过 HTTPS 传输,则在记录时可能需要解密捕获文件

Web 控制台和浏览器控制台错误

有时网站会因为其对在 Firefox 中执行 JavaScript 的假设错误而中断。发生这种情况时,JavaScript 引擎可能会抛出异常,这可能会破坏你正在查看的网站。

在报告损坏的网站或代理问题时,还要检查Web 控制台按下 Ctrl+Shift+K (在 OS X 上按下 Command+Option+K) 键盘快捷键浏览器控制台键盘:按下 Ctrl+Shift+J (或在 Mac 上按下 Cmd+Shift+J)。

如果它们包含错误或警告,最好将它们添加到错误报告中(最好以文本形式,但截图也可以接受)。