Firefox/Meeting/8-Feb-2022
Contents
General Topics / Roundtable
[gijs] You can now use `add_setup()` to add a setup task in an automated browser mochitest. This works correctly with .only() for individual tasks (ie weâll keep running the setup tasks even if you use .only() with a given test task). đđđđđđ
Hoping to transform existing `add_task(async function setup()` and similar in this bug later in the 98 cycle.
Hoping to then make setting preferences either per-test-file or per-task more intuitive - right now itâs easy to make mistakes with them.
Friends of the Firefox team
Resolved bugs (excluding employees)
Volunteers that fixed more than one bug
- Claudia Batista [:claubatista]
- Jane Kotovich (:janey)
- Jintao Hu
- Masatoshi Kimura [:emk]
- Shane Hughes [:aminomancer]
New contributors (đ = first patch)
- đ Hikota Nakatani [:hikota] fixed highlighting for selected item in Functions dropdown switcher in Dev Tools Debugger
- đ Jintao Hu added bottom margin to block images in Reader Mode and fixed horizontal scrolling for wide tables in Reader Mode
- Lebar added call to ensureRowIsVisible to make sure that selected node is in view after showInFolder
- Noel Lefevre added a fix that ensures that clickToPlay has an aria-label attribute
General triage
This monthâs group for Firefox::General, Toolkit::General triage is Mark Banner, Niklas, Florian.
Project Updates
Add-ons / Web Extensions
WebExtensions Framework
As part of the ongoing ManifestVersion 3 work (Proposal: Limited Event Pages for MV3 ¡ Issue #134 ¡ w3c/webextensions ¡ GitHub), we have started to introduce support for the non-persistent background page (also known as EventPage):
Bug 1748524 (initial set of changes to support non-persistent background page, currently gated by the âextensions.eventPages.enabledâ about:config preference)
Bug 1748541 (WebExtensions API Events internal refactoring, used in follow up patches to extend âpersisting and priming of the API event listenersâ to more WebExtensions APIs on extensions using a non persistent background script, either an event page or a service worker)
Bug 1748547 (persist alarm listeners to allow them to respawn the background script if fired after it has been terminated)
- Thanks to Barret, the âpkcs11â WebExtensions API does not use osfile.jsm anymore - Bug 1745352
Developer Tools
- Hikota fixed a contrast issue when using the debugger command palette in dark mode (bug)
- Angelina made it possible to open links displayed in the headers panel of the network monitor (bug)
- Long time contributor sebo started to work on Custom Formatters for DevTools (bug), with funding from the Clojurist Together Foundation. Custom Formatters are a way for content pages to control how objects will be rendered in DevTools (console, debugger, âŚ). Itâs especially useful for debugging library custom data, like Immutable or ClojureScript.
- Claudia, DevTools Outreachy intern, is about to enable the new âEdit and resendâ panel of the Network Monitor on Nightly đ (bug)
- The new performance panel is riding the train and will be enabled in Firefox release 98 (bug). The new panel will make it easier for web developers to record and share profiles as it opens a new profiler.firefox.com tab when capturing the profile. Many thanks to jwajsberg who fixed the last issues that were blocking this.
- Since the compatibility panel is also riding the 98 train, we polished it a bit: we added support for Internet Explorer 11 data (bug), reworked the tooltip for compatibility issues (bug) and last but not least, updated Firefox icon (bug)
- We fixed a nasty bug where DevTools would freeze when trying to inspect an iframe blocked by CSP (bug). Thanks Christoph Kerschbaumer for helping us on that.
- Julian fixed an issue about:debugging where the tab list wasnât updated properly (bug)
- You can now see CSS layers data displayed in the rule view (bug). We took this opportunity to change how we display media queries data (bug), and display the full list of nested media queries/layers (bug)
- bomsy and ochameau are working on making the debugger more reliable and already landed a few patches to make the codebase easier to navigate and the test more robust and legible.
Form Autofill
- tgiles fixed an issue where the save/update panel for credit cards would always show a generic credit card logo
- tgiles is working on enabling credit card autofill in the United Kingdom, France, and Germany due to multiple back outs.
- Dimi is working on using Fathom to recognize credit card fields which will deliver better accuracy than our current heuristics approach
Lint, Docs and Workflow
- Running ./mach lint, or one of the specific linters will now default to running only against outgoing or changed files in your work directory.
- ESLint can now support the use of XPCOMUtils.defineLazyPreferenceGetter, where the argument for the default value is a unary expression (e.g. -1)
New Tab Page
- Bug 1749583 - [DĂŁo] added colorways section placeholder in about:newtabâs personalize panel behind a pref (browser.newtabpage.activity-stream.colorway-closet.enabled).
Password Manager
- Dimi is working on an issue that involves slow loading of large HTML tables due to our username only form detection logic
Picture-in-Picture
- Support of WebVTT is coming
Performance Tools (aka Firefox Profiler)
- Support profiling of private browsing windows (github #3671, bugzilla #1639716)
- Enable the new performance devtools panel by default in release (bugzilla 1451902)
- Performance improvements when there are a lot of threads (github #3813, #3829, #3842)
- Improvements in the range selection behavior
- Syntax highlighting for the new source view â (#3794) thanks Markus! Link to a profile
https://imgur.com/a/FohoSZd
Syntax highlighting in the new source view]
Experimental support for per-process CPU usage capturing
Enable the âProcess CPU Utilizationâ feature in about:profiling first.
Then in the profiler viewer, open the console and run experimental.enableProcessCPUTracks()
- Use ResizeObserver instead of DOM resize events to track window resizes, which fixes a few issues and improves performance
- Fixes in how we capture the data from subprocesses: previously we were simply waiting for a timeout which could be a problem on slower machines, now weâre getting progress information which makes it possible to wait longer (Bugzilla 1673513)
- Enable stackwalking on MacOS â always (Bugzilla 1753272). On ARM64 youâll get all stacks, in Nightly and Beta too. For release x86-64⌠maybe soon?
- Bug 1749397 and Bug 1751819 - When you type a url in the urlbar or the searchbar, press enter, and press a character, that character gets inputted. For example, âgoogle.comâ and enter, and âtâ, which becomes âgoogle.comtâ. This was fixed by [daisuke].
- Bug 1752251 - Drew [adw] implemented best match rows in the urlbar view, these rows have a large 52x52 icon with title and URL vertically centred. This is on en-US only for now and is always part of quick suggest results.
- Bug 1752441 - [daisuke] changed the â<engine> Suggestionsâ group label to âsuggestionsâ with a lowercase âsâ because it describes a category rather than brand feature.
Screenshots
- Thanks Neil for the fix of Bug 1744779 - Failing to download file due to missing filename sanitation
Community
- [mconley] CTA for our Nightly testing community: help us test website compatibility for when Firefox reaches v100! In about:preferences#experimental, there is a toggle that lets you use the v100 UA string ahead of time. See issues with sites with the v100 on, but not when itâs off? File a webcompat.org bug and let us know!
This week I learned
[gijs] `./mach test browser_parsable_css.js` just runs that test. You donât have to type/tab-complete the whole path (browser/base/content/test/static/browser_parsable_css.js) and risk typos etc.
Kicker: you can run `./mach test browser_download` and itâll run all the tests whose filenames start with that prefix (!)
Similarly, you can run `./mach test urlbar_event`, and itâll run all the tests whose filenames include that substring.
Unrelated, in case you didnât know, you can also pass a manifest (ie a browser.ini or xpcshell.ini or similar file, that contains a list of tests) and itâll run all the tests in that manifest.
Also unrelated, but as a reminder: you can run the equivalent of `test-verify` jobs on infrastructure locally by passing the `--verify` flag to `mach test`
You can also use `./mach mochitest browser_parsable_css.js`, which is helpful when you need the extra arguments available to `./mach mochitest`.
[florian] Assert.greater(NaN, 0) currently returns true.
Thatâs because any number comparison with NaN returns false, and âgreaterâ is implemented as !(lhs <= rhs).
Thereâs a check that we are comparing actual numbers, but typeof NaN returns ânumberâ. Iâm hoping to fix that check.
Thanks, Javascript!
- [sfoster] `new Blob([filenameString]).size` gets you a better size check than string.length when multi-byte characters might be in the mix. Or use DownloadPaths.sanitize.