Firefox/Meeting/19-Oct-2021
Today’s meeting leader is: mtigley
Contents
General Topics / Roundtable
[standard8] Promise.jsm has now been removed.
A big thank you to Nicolas Chevobbe for finishing the devtools part of the removals.
- [mtigley] Contribution period for Outreachy opened up on October 8th. If you’re interested in helping out applicants set up their build, find good first bugs, etc… feel free to join the [Outreachy Matrix] channel! (and #introduction!)
Friends of the Firefox team
Introductions/Shout-Outs
- [mconley] Welcome to Cieara Meador (:cmkm), who has just joined the front-end team!
For contributions from October 19th to November 1st 2021, inclusive.
Resolved bugs (excluding employees)
Fixed more than one bug
- Claudia Batista [:claubatista]
- Itiel
- Jonas Jenwald [:Snuffleupagus]
- Leslie
- Noah Pesta
- Oriol Brufau [:Oriol]
New contributors (🌟 = first patch)
- 🌟 Alessia Vanni fixed a DevTools issue where the last parameter in a GET request was not being shown
- 🌟 Ashwin Alaparthi (:ash110) replaced OS.File with IOUtils in TelemetryControllerParent.jsm
- 🌟 Clinton swapped using LocalizationHelper to MultiLocalizationHelper in the DevTools toolbox
- 🌟 Elise Navennec made regular expressions in the console filter case-sensitive by default
- 🌟 jbarson landed a patch for hiding the color scheme simulation buttons for webextension targets
- 🌟 Cimbali added a webextension preference to override light or dark color scheme
- 🌟 Avi renamed the .small class to .small-button
Project Updates
Add-ons / Web Extensions
WebExtension APIs
- Starting from Firefox 95 the extension will be able to control the “prefers-color-scheme” setting, using the new browserSettings.overrideContentColorScheme API. Thanks to Cimbali for contributing this nice enhancement - Bug 1733461
WebExtensions Framework
- In Firefox >= 95, the “Extension Suspend” profiler marker is now recorded when an extension is suspending it using the webRequest API (instead of being added when the intercepted request is being resumed), this should help us while investigating bugs by making it visible through the profile markers if an extension has suspended a network request and then never resumed it (previously no marker would have been recorded in that case) - Bug 1730919
514x115px |
(See the last “Network Request” marker, which doesn’t have a corresponding “ExtensionSuspend” marker) - |
514x106px |
Example profile collected on Firefox >= 95 using the new profile marker implementation (See the last “Network Request” marker, which in this case it does have a corresponding “ExtensionSuspend” marker with an unknown duration) |
As part of the ongoing work related to Manifest Version 3 WebExtensions, another chunk of the work related to providing the WebExtensions API bindings to the “Manifest Version 3 background service worker” has been landed in mozilla-central (currently locked behind a both a pref and build flag only enable in nightly build) - Bug 1688040, Bug 1735106, Bug 1724183, Bug 1724785
A new section in the in-tree docs (also still to consider “work in progress”) provides an high level view of the architecture (and current process used to generate WebIDL bindings for the WebExtensions API from the existing JSONSchema data): https://firefox-source-docs.mozilla.org/toolkit/components/extensions/webextensions/basics.html#webidl-bindings
- As part of Fission-related changes, Tomislav landed the last patch part of Bug 1708243 - Stop depending on framescripts with `ExtensionGlobal` (and now looking into a possible regression as part of Bug 1735347 - TypeError: data is undefined)
- Thanks to standard8, some more calls of OS.File/osfile.jsm has been removed from Extension.jsm and ExtensionParent.jsm - Bug 1735132
- Fixed a bug that was triggering 100% CPU usage in the WebExtensions child process - Bug 1706594
Downloads Panel
- Katherine [:kpatenio] is working on adding a new downloads panel context menu item for storing new MIME types with the new changes to downloads
Fission
- Experiments are running with Fission enabled. Telemetry has not yet revealed any major blockers. Our confidence is building that we can ship Fission enabled by default soon, pending decision by the Fission team.
Fluent
- With Milestone 1 wrapped up, the team is starting to transition off of Fluent work to focus on other things. The l10n team is working on ways we can transition many of our .properties strings programmatically, which should take care of a big chunk of Milestone 2.
Form Autofill
High-Contrast Mode (MSU Capstone project)
Shao
Noah
Danielle
Avi
Lint, Docs and Workflow
- Daniel Adams enabled the ESLint no-octal rule for dom/ (part of the work to enable more rules everywhere)
- Evgenia Kotovich is working on enabling ESLint for sjs files. The first patch for automatic changes has landed, the second patch to do the actual enabling is in review.
Password Manager
- Thanks to :emilio for fixing a regression in the saved logins dropdown where the key icon was not very visible
Performance
Using mainly mentored bugs, we are working towards replacing the final few instances of osfile.jsm being loaded in the startup path.
We worked with Michelle Goossens (aka :masterwayz) to land a patch for replacing OS.File usage in SessionFile.jsm. This appears to have had a positive impact on session restore performance.
Ashwin Alaparthi removed osfile.jsm usage in TelemetryControllerParent.jsm.
Standard8 delayed loading of some modules for GMPUtils.jsm, UpdateUtils.jsm, GMPProvider.jsm to avoid loading osfile.jsm and other modules earlier than necessary.
Standard8 also removed osfile.jsm usage in Extensions.jsm/ExtensionsParent.jsm.
This week I learned
- [mconley] A bunch of our Firefox-specific documentation got removed from MDN and moved to this GitHub repository. If there’s something in there that’s useful to you, consider making it a Firefox Source Docs document (example). To coordinate work, if you decide to tackle a page, file a bug for it under the docs metabug (1736613). In the meantime, Mossop has a mirror of the XUL reference documentation if you need it.
[kpatenio] Use of actors and general idea of architecture of Picture in Picture
- [Mossop] We first started separating Firefox into multiple processes in ... 2009