tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

release.md (10366B)


Recurring DevTools tasks

There are a few things we should do on each Nightly cycle to keep our code clean and up-to-date.

Update MDN data for the Compatibility panel

Follow instructions from devtools/client/inspector/compatibility/README.md.

Generate webidl-pure-allowlist.js and webidl-deprecated-list.js

The webidl-pure-allowlist.js file is used by the console instant evaluation, in order to know if a given method does not have side effects. The file might be updated if new APIs are added, or if methods are tagged as pure (or untagged).

The webidl-deprecated-list.js file will be used to avoid calling deprecated getters from devtools code.

  1. webconsole: update local-dev/index.js
  2. webconsole: update local-dev/index.js

2.1. Run the script with ./mach python devtools/shared/webconsole/GenerateDataFromWebIdls.py

Remove backwards compatibility code

In order to accommodate connecting to older server, we sometimes need to introduce specific branches in the code. At the moment, we only support connecting to server 2 versions older than the client (e.g. if the client is 87, we support connecting to 86 and 85). This means that on each release there's an opportunity to cleanup backward compatibility code that was introduced for server we don't have to support anymore. If I go back to my example with the 87 client, we can remove any backward-compatibility code that was added in 85.

Luckily, when adding compatibility code, we also add comments that follow a specific pattern: @backward-compat { version XX }, where XX is the version number the code is supporting.

Back to our example where the current version is 87, we need to list all the comments added for 85. This can be done by doing a search with the following expression: @backward-compat { version 85 } (here's the searchfox equivalent: searchfox query).

Try to file a specific bug for each backward compatibility code you are removing (you can have broader bugs though, for example if you are removing a trait). Those bugs should block a META bug that will reference all the cleanups. You can check if a bug already exists in the main cleanup META bug (Bug 1677944), and if not, you can create it by visiting this bugzilla link (make sure to replace YY with a version number that is equal to the current number minus 2; so if current release is 87, YY is 87 - 2 = 85).

Smoke test remote debugging

Setup

We will run the remote debugging smoke tests twice. Once to exercise backward compatibility, and once without backward compatibility (same version). The tests to run are the same in both cases (see Tests section).

You can use either desktop or mobile versions of Firefox as the server. Mobile is preferable as some codepaths are specific to Firefox mobile, but if you don't have access to an Android device, using a Desktop server is a decent alternative.

Backward compatibility test

https://play.google.com/store/apps/details?id=org.mozilla.firefox_beta (mobile beta) or Desktop Beta or DevEdition

Same version test

https://play.google.com/store/apps/details?id=org.mozilla.fenix (mobile nightly) or Desktop Nightly

Tests

Basic connection:

Debug targets:

Inspect a remote target:

Inspect a remote extension:

Remove expired or renew telemetry probes

Bugs are automatically filed for all expired probes. You can find them using this bugzilla query.

We should review the list of bugs and make sure each of them block the following META bug.

Reviewing a probe means either to update the expiration field because we are still monitoring the data, or to remove the probe and all the related code for recording it. This discussion can happen on the bug.

Check if third-party library should be updated

This is not a mandatory task to do on each cycle, but having up-to-date libraries can help us getting new features and most importantly bug fixes that will improve the user experience of DevTools users.

WasmDis and WasmParser

These modules are used by the debugger to be able to parse and debug WASM sources.

Follow the upgrade documentation

jsbeautify

This module is used by the inspector and the webconsole to pretty print user input.

Follow the upgrade documentation

CodeMirror should be updated

CodeMirror is used by our source editor component, which is used all over DevTools.

Follow the upgrade section in the documentation

fluent-react

This module is used in several panels to manage localization in React applications.

Follow the upgrade documentation

reselect

Follow the upgrade documentation

pretty-fast

TODO

Check xpcshell debugging

Check that xpcshell tests can be debugged using the --jsdebugger option.

  1. Check the Inspector, Console, Debugger and Netmonitor UIs for empty panels.
  2. Check the Inspector, Console, Debugger and Netmonitor UIs for empty panels.
  3. Check the Inspector, Console, Debugger and Netmonitor UIs for empty panels.
  4. Check the Inspector, Console, Debugger and Netmonitor UIs for empty panels.
  5. Check the Inspector, Console, Debugger and Netmonitor UIs for empty panels.
  6. Check the Inspector, Console, Debugger and Netmonitor UIs for empty panels.
  7. Check the Inspector, Console, Debugger and Netmonitor UIs for empty panels.
  8. Check the Inspector, Console, Debugger and Netmonitor UIs for empty panels.
  9. Check the Inspector, Console, Debugger and Netmonitor UIs for empty panels.
  10. Check the Inspector, Console, Debugger and Netmonitor UIs for empty panels.