Firefox/Meeting/23-Jan-2024
Friends of the Firefox team
Resolved bugs (excluding employees)
Script to find new contributors from bug list
Volunteers that fixed more than one bug
- Gregory Pappas [:gregp]
New contributors (🌟 = first patch)
- 🌟 creweclinton updated privacy notice URL in DiscoveryStreamFeed.jsm
- mattheww added a fix to update lang attribute after translating page
- 🌟 toe_head2001 improved performance of HTMLSelectElement::RemoveOptionsFromList
General triage
This month’s Firefox / Toolkit :: General triagers are:
Gijs, Dão, Niklas, Kelly
Project Updates
Add-ons / Web Extensions
Addon Manager & about:addons
- Thanks to Anna Yeddi, a missing label to the remove shortcut icon from the extensions shortcuts management view part of the about:addons page has been identified and added. Another accessibility issue caught by the a11y jobs 🥳 - Bug 1873304
WebExtensions Framework
As part of follow ups to the work on the new taskcluster jobs to run webextensions tp6 and tp6m perftests jobs (landed as tier-3 jobs as part of Bug 1859549 in December):
A new linter named condprof-addons has been landed, this new linter makes sure that xpi files referenced in condprof customization files and the firefox-addons.tar archive (fetched through the related CI fetch task) are not going out of sync with each other - Bug 1868144
- The condprof-addons linter is documented here: https://firefox-source-docs.mozilla.org/code-quality/lint/linters/condprof-addons.html
- Thanks to ahal and sparky for their help and support on introducing this new linter
A new doc section has been added to the Raptor Browsertime doc page, to briefly provide a description of the webextensions tp6/tp6m perftests jobs and examples for how to run these tests locally and in try pushes - Bug 1874487
- The new section is already available here: https://firefox-source-docs.mozilla.org/testing/perfdocs/browsertime.html#running-page-load-tests-with-third-party-webextensions
Developer Tools
DevTools
Alex added a notice at the bottom of the Debugger editor when the source map file is invalid or unavailable (bug)
- Hubert delayed getting information about sources functions until we need to display them, which made opening files faster (bug)
- Hubert fixed an issue where the Debugger would crash (bug)
Alex added options to the console :trace command limit depth and number of top level frames being traced (bug)
(still behind devtools.debugger.features.javascript-tracing)
:trace --max-depth N --max-records M
- Alex improved performance of the console when it's receiving a very large number of messages (bug, bug)
- Nicolas made Ctrl+Enter (Cmd+Enter on MacOS) on Rules view input advance the focus to the next editable property, i.e. like the Tab key (bug)
Nicolas added a hint about the new Enter key behavior in Rules view input, linking to an explanatory blog post (bug)
WebDrive BiDi
- Julian added support the the network.fetchError event, which is emitted when a request ends in an error state (bug)
- Julian implemented the network.failRequets command, which forces an intercepted request to fail, and will fire a network.fetchError event (bug)
- Sasha made script.evaluate, script.callFunction and script.disown ignore the realm argument when a context argument is passed (bug)
- Henrik fixed an issue with the browsingContext.create command, aligning with Chrome for a consistent cross-browser experience (bug)
Fluent
- [mconley] Here’s a great blog post from the Localization team on how they’re working to advance Mozilla’s mission through localization standards
ESMification status
- Some changes landed after today's numbers were generated (see new tab page section below) - that brings us to the 90% mark on browser/
ESMified status:
browser: 89%
toolkit: 99%
Total: 96.48% (no change)
- #esmification on Matrix
Lint, Docs and Workflow
We have now added an ESLint rule to reject new uses of Console.sys.mjs and Log.sys.mjs.
We have three different module logging mechanisms available to our JavaScript code, and want to reduce those down to one.
For new code please use console.createInstance.
We will start with the migration away from Console.sys.mjs as that is closest to console.createInstance, and will look at Log.sys.mjs later. However, if teams want to investigate moving away sooner, and find issues, please file bugs blocking the appropriate metas (Console.sys.mjs, Log.sys.mjs)
- The license linter has been fixed to not report an error when it has successfully fixed a file. It will also now automatically fix .mjs files.
- XPCOMUtils.defineLazyGetter has now been replaced by ChromeUtils.defineLazyGetter. An ESLint rule has also been added to reject uses of the former.
- The whitespace and file permission linters now run on .mn files (e.g. jar.mn).
- ESlint has deprecated the no-return-await rule. We have therefore stopped enforcing it on mozilla-central.
Migration Improvements
- The next wave of spotlight messages to encourage users without accounts to create one to aid in device migration should be going out in a week or so.
- The infrastructure that allows for doing backups of active SQLite databases has landed. We’re hoping this can be part of the foundations for a backup-to-local-file utility.
New Tab Page
- Mardak sent a message to the governance mailing list with some proposed updates on ownership for New Tab, Onboarding and In Product Messaging
- A bunch of patches are up for review to move the majority of ASRouter out from the newtab codebase
- TelemetryFeed.jsm and HighlightsFeed.jsm have now been converted to ESMs. PlacesFeed.jsm is next, and that’ll unblock ESMifying a lot of the other modules under the newtab folder.
Picture-in-Picture
- emilio landed some patches that fix a regression with kde/wayland window rules for the PiP window not working as intended (bug)
Performance
- sfoster landed a patch that improves the performance of restoring many tabs all at once, especially on older machines
- We’re seeing a nice boost in performance on Linux due to a change that disabled some Spectre / Meltdown mitigations, now that Fission has shipped.
Reader Mode
- Irene fixed a bunch of bugs: disabled Slack in Reader View, made images easier on the eyes in the dark theme, and updated the formatting of reading time
- Fred landed a patch to vendor the Readability library, making it a lot easier to update
On top of ongoing projects, the search team collectively worked on closing as many "Dragon Slayer" bugs (small story point effort bugs) over the last two weeks, which included fixing visual and functional errors in the address bar, updating documentation, adding additional test coverage, and addressing tech debt. One such bug:
:mcheang made a change[1]where initiating a keyword search and ending it with a question mark no longer switches the search back to the default search engine. This could be helpful for users who use keyword queries to shortcut usage of chatbots as queries can naturally end with a question mark.
- :mseibert[2]enabled the ability for the address bar to display a URL with special characters in the heuristic result (e.g. https://рнидс.срб/) instead of showing the URL in its Punycode form.
This week I learned
- [mconley] Tab Previews! Congratulations to DJ for getting these landed. Currently disabled by default, but you can test them by setting browser.tabs.cardPreview.enabled to true