1# Submitting actionable networking bugs 2 3So you've found a networking issue with Firefox and decided to file a bug. First of all **Thanks!**. 4 5## Networking bugs lifecycle 6 7After a bug is filed, it gets triaged by one of the Necko team members. 8The engineer will consider the *steps to reproduce* then will do one of the following: 9- Assign a priority. An engineer will immediately or eventually start working on the bug. 10- Move the bug to another team. 11- Request more info from the reporter or someone else. 12 13A necko bug is considered triaged when it has a priority and the `[necko-triaged]` tag has been added to the whiteboard. 14 15As a bug reporter, please do not change the `Priority` or `Severity` flags. Doing so could prevent the bug from showing up in the triage queue. 16 17<div class="note"> 18<div class="admonition-title">Note</div> 19 20> For bugs to get fixed as quickly as possible engineers should spend their time 21on the actual fix, not on figuring out what might be wrong. That's why it's 22important to go through the sections below and include as much information as 23possible in the bug report. 24 25</div> 26 27 28## Make sure it's a Firefox bug 29 30Sometimes a website may be misbehaving and you'll initially think it's caused by a bug in Firefox. However, extensions and other customizations could also cause an issue. Here are a few things to check before submitting the bug: 31- [Troubleshoot extensions, themes and hardware acceleration issues to solve common Firefox problems](https://support.mozilla.org/en-US/kb/troubleshoot-extensions-themes-to-fix-problems#w_start-firefox-in-troubleshoot-mode) 32 - This will confirm if an extension is causing the issue you're seeing. If the bug goes away, with extensions turned off, you might then want to figure out which extension is causing the problem. Turn off each extension and see if it keeps happening. Include this information in the bug report. 33- [Try reproducing the bug with a new Firefox profile](https://support.mozilla.org/en-US/kb/profile-manager-create-remove-switch-firefox-profiles#w_creating-a-profile) 34 - If a bug stops happening with a new profile, that could be caused by changed prefs, or some bad configuration in your active profile. 35 - Make sure to include the contents of `about:support` in your bug report. 36- Check if the bug also happens in other browsers 37 38## Make sure the bug has clear steps to reproduce 39 40This is one of the most important requirements of getting the bug fixed. Clear steps to reproduce will help the engineer figure out what the problem is. 41If the bug can only be reproduced on a website that requires authentication you may provide a test account to the engineer via private email. 42If a certain interaction with a web server is required to reproduce the bug, feel free to attach a small nodejs, python, etc script to the bug. 43 44Sometimes a bug is intermittent (only happens occasionally) or the steps to reproduce it aren't obvious. 45It's still important to report these bugs but they should include additional info mentioned below so the engineers have a way to investigate. 46 47### Example 1: 48``` 49 1. Load `http://example.com` 50 2. Click on button 51 3. See that nothing happens and an exception is present in the web console. 52``` 53### Example 2: 54``` 55 1. Download attached testcase 56 2. Run testcase with the following command: `node index.js` 57 3. Go to `http://localhost:8888/test` and click the button 58``` 59 60## Additional questions 61 62- Are you using a proxy? What kind? 63- Are you using DNS-over-HTTPS? 64 - If the `DoH mode` at about:networking#dns is 2 or 3 then the answer is yes. 65- What platform are you using? (Operating system, Linux distribution, etc) 66 - It's best to simply copy the output of `about:support` 67 68## MozRegression 69 70If a bug is easy to reproduce and you think it used to work before, consider using MozRegression to track down when/what started causing this issue. 71 72First you need to [install the tool](https://mozilla.github.io/mozregression/install.html). Then just follow [the instructions](https://mozilla.github.io/mozregression/quickstart.html) presented by mozregression. Reproducing the bug a dozen times might be necessary before the tool tracks down the cause. 73 74At the end you will be presented with a regression range that includes the commits that introduced the bug. 75 76## Performance issues 77 78If you're seeing a performance issue (site is very slow to load, etc) you should consider submitting a performance profile. 79 80- Activate the profiler at: [https://profiler.firefox.com/](https://profiler.firefox.com/) 81- Use the `Networking` preset and click `Start Recording`. 82 83## Crashes 84 85If something you're doing is causing a crash, having the link to the stack trace is very useful. 86 87- Go to `about:crashes` 88- Paste the **Report ID** of the crash in the bug. 89 90## HTTP logs 91 92See the [HTTP Logging](https://firefox-source-docs.mozilla.org/networking/http/logging.html) page for steps to capture HTTP logs. 93 94If the logs are large you can create a zip archive and attach them to the bug. If the archive is still too large to attach, you can upload it to a file storage service such as Google drive or OneDrive and submit the public link. 95 96Logs may include personal information such as cookies. Try using a fresh Firefox profile to capture the logs. If that is not possible, you can also put them in a password protected archive, or send them directly via email to the developer working on the bug. 97 98## Wireshark dump 99 100In some cases it is necessary to see exactly what bytes Firefox is sending and receiving over the network. When that happens, the developer working on the bug might ask you for a wireshark capture. 101 102[Download](https://www.wireshark.org/download.html) it then run it while reproducing the bug. 103 104If the website you're loading to reproduce the bug is over HTTPS, then it might be necessary to [decrypt the capture file](https://wiki.wireshark.org/TLS#Using_the_.28Pre.29-Master-Secret) when recording it. 105 106## Web console and browser console errors 107 108Sometimes a website breaks because its assumptions about executing JavaScript in Firefox are wrong. When that happens the JavaScript engine might throw exceptions which could break the website you're viewing. 109 110When reporting a broken website or a proxy issue, also check the [web console](https://developer.mozilla.org/en-US/docs/Tools/Web_Console) `Press the Ctrl+Shift+K (Command+Option+K on OS X) keyboard shortcut` and [browser console](https://developer.mozilla.org/en-US/docs/Tools/Browser_Console) `keyboard: press Ctrl+Shift+J (or Cmd+Shift+J on a Mac).` 111 112If they contain errors or warnings, it would be good to add them to the bug report (As text is best, but a screenshot is also acceptable). 113