提交可操作的网络错误¶
所以你发现了 Firefox 的网络问题,并决定提交一个错误报告。首先,非常感谢!🎉🎉🎉
网络错误生命周期¶
错误提交后,会由 Necko 团队成员之一进行分类。工程师会考虑“重现步骤”,然后执行以下操作之一:
分配优先级。工程师会立即或最终开始处理该错误。
将错误移至另一个团队。
向报告者或其他人请求更多信息。
当 necko 错误具有优先级并且 [necko-triaged]
标签已添加到白板时,则认为该错误已分类。
作为错误报告者,请勿更改 Priority
或 Severity
标志。这样做可能会阻止错误出现在分类队列中。
为了尽快修复错误,工程师应该将时间花在实际修复上,而不是花在弄清楚可能出了什么问题上。因此,仔细阅读以下部分并在错误报告中包含尽可能多的信息非常重要。
确保这是一个 Firefox 错误¶
有时网站可能行为异常,你最初会认为这是由 Firefox 中的错误引起的。但是,扩展程序和其他自定义设置也可能导致问题。在提交错误报告之前,请检查以下事项:
解决扩展程序、主题和硬件加速问题以解决常见的 Firefox 问题
这将确认扩展程序是否导致你遇到的问题。如果关闭扩展程序后错误消失了,你可能需要找出哪个扩展程序导致了问题。关闭每个扩展程序,看看问题是否仍然存在。在错误报告中包含此信息。
-
如果使用新配置文件后错误停止发生,则可能是由于更改的偏好设置或活动配置文件中的一些错误配置引起的。
确保在错误报告中包含
about:support
的内容。
检查错误是否也发生在其他浏览器中
确保错误有清晰的重现步骤¶
这是修复错误的最重要要求之一。清晰的重现步骤将帮助工程师找出问题所在。如果错误只能在需要身份验证的网站上重现,你可以通过私人电子邮件向工程师提供测试帐户。如果需要与 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 来追踪何时/什么开始导致此问题。
首先,你需要安装该工具。然后只需按照说明进行操作即可。在工具追踪到原因之前,可能需要重现错误十几次。
最后,你将看到一个回归范围,其中包含引入该错误的提交。
性能问题¶
如果你遇到性能问题(网站加载速度非常慢等),你应该考虑提交性能配置文件。
在以下位置激活分析器:https://profiler.firefox.com/
使用
Networking
预设并点击Start Recording
。
崩溃¶
如果你正在执行的操作导致崩溃,那么提供堆栈跟踪链接非常有用。
转到
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)。
如果它们包含错误或警告,最好将它们添加到错误报告中(最好以文本形式,但截图也可以接受)。