Firefox/Meeting/03-May-2022
Contents
- 1 General Topics / Roundtable
- 2 Friends of the Firefox team
- 3 Project Updates
- 3.1 Add-ons / Web Extensions
- 3.2 Developer Tools
- 3.3 Downloads Panel
- 3.4 Fluent
- 3.5 Form Autofill
- 3.6 Lint, Docs and Workflow
- 3.7 macOS Spotlight
- 3.8 New Tab Page
- 3.9 Nimbus / Experiments
- 3.10 NodeJS
- 3.11 Password Manager
- 3.12 PDFs & Printing
- 3.13 Picture-in-Picture
- 3.14 Performance
- 3.15 Performance Tools (aka Firefox Profiler)
- 3.16 Privacy/Security
- 3.17 Search and Navigation
- 3.18 Screenshots
- 3.19 Storybook / Reusable components
- 3.20 Community
- 4 This week I learned
General Topics / Roundtable
[mconley] Firefox 100 goes out today! A milestone release, but also business as usual!
Congratulations to contributors who helped get Firefox 100 out the door!
Friends of the Firefox team
Introductions/Shout-Outs
Resolved bugs (excluding employees)
Script to find new contributors from bug list
Volunteers that fixed more than one bug
- F3n67u
- kernp25
- manisha.singh2019
- Oriol Brufau [:Oriol]
- Shane Hughes [:aminomancer]
New contributors (đ = first patch)
- Max added PiP site adapter for Piped
- :aline_g removed obsolete .pictureInPictureToggleButton
- đ F3n67u simplified getSymbols.js, Frame.js, and object.js and removed eslint-disable complexity
- manisha.singh2019 moved the topsites icon used by about:newtab to the shared icon library in browser/themes/shared/icons and removed newtab's glyph-edit-16.svg and use the shared edit.svg toolkit icon instead
- Raphael Ferrand added preview class when selecting item in the cls autocomplete popup
- đ sukhmeet2002 made icon and close button non draggable
General triage
- Gijs, Neil, mconley and jteow are this month's Firefox / Toolkit::General triagers!
Project Updates
Add-ons / Web Extensions
Addon Manager & about:addons
- Fixed a small visual regression related to the about:addons add-on card, due to the sitepermission row not hidden for non-sitepermission addon types - Bug 1766167
WebExtensions Framework
As part of the ongoing ManifestVersion 3 work:
Manifest V3 âhost_permissionsâ to be visible and user-controllable from âabout:addonsâ add-on cards - Bug 1745820
Deprecated cross-origin requests from ManifestVersion 3 extension content scripts - Bug 1578405
Added support for the new âinjectImmediatelyâ option to browser.scripting.executeScript - Bug 1762366
WebExtension APIs
Oriol contributed a fix to prevent tabs.onUpdated to emit multiple unnecessary events for the âattentionâ tab info property in response to the user changing selected tab - Bug 1764452
This fix seems to only positively impact the tabswitch performance as a side-effect of preventing those unnecessary events. Thanks Oriol for having reported and contributed a fix for this issue!
Starting from Firefox >= 101, when an extension will call browser.downloads.download API method, the download panel will be automatically opened if and only if the extension was handling user input when that API method has been called - Bug 1761828 / Bug 1762033 / Bug 1759231
Fixes the âFirefox :: Downloads Panelâ issue reported from more than a few users due to the downloads panel opening and quickly closing automatically when one of the extensions installed uses the downloads API to periodically backup the extension settings (see Bug 1759231 and its duplicates)
Thanks to aminomancer for the work on the âFirefox :: Downloads Panelâ part of this fix!
Thanks to kernp25 contributed fixes:
starting from Firefox >= 101 the âactiveTabâ permission is also correctly granted when a user middle-clicks on the extension browserAction toolbar button - Bug 1654355
Browser.permissions.request does not work also when called from an extension sidebarAction panel - Bug 1493396
Developer Tools
- Toolbox
F3n67u simplified a few files which were violating eslint complexity rule (bug, bug, bug)
Sebo made progress on custom formatters support in DevTools by handling JsonML data in DevTools (bug)
Arai fixed console.table when it is called with unexpected arguments (bug)
Alex fixed setting breakpoints in HTML inline scripts in iframes (bug)
mach run takes a --jsdebugger argument that will automatically open the Browser Toolbox. The arg can be empty, or you can pass a path to a specific binary (e.g. ./mach run --jsdebugger /Applications/FirefoxDeveloperEdition.app/Contents/MacOS/firefox) that will be used for the Browser Toolbox, which can be handy if youâre trying to debug a broken local build. If you reload the main browser window, the Browser Toolbox will reload but keep using the binary you set in the first place. Thanks Alex! (bug)
Julian fixed a pretty nasty inspector bug impacting pages embedding Shopify chat UI (bug)
A few releases ago we added the ability to tweak any dimension in the inspector rule view by dragging the mouse over the value. Some people are not fan of this feature so Julian added an item in the Settings panel to disable it (bug)
- WebDriver BiDi
Henrik made navigator.webdriver to be true when Remote Agent is enabled (bug)
Julian implemented the browsingContext.create command, which enable opening tabs (bug)
With this work completed, it felt like enough commands were implemented to enable BiDi on release (bug, intent-to-ship). Congrats to Henrik, James, Julian and Sasha đ
Downloads Panel
Fluent
- [mconley] Congratulations to Niklas who ported videocontrols.js to Fluent! This pulls out more DTDs (which is good), but should also help prevent Yellow Screen of Death frames from appearing on video elements..
Form Autofill
- Thanks to :emilio for fixing an issue where the text alignment was incorrect while previewing credit card information
- :tgiles fixed an issue where expiration month and year were not normalized when a credit card form used separate fields for expiration date
Lint, Docs and Workflow
The ESLint v8 upgrade has landed.
ESLint will now catch cases of typeof foo == undefined. These will always return false as they should be compared with the string undefined, i.e. typeof foo == âundefinedâ.
Barret has extended the ESLint rule that warns about uses of OS.File to also warn about uses of OS.Path.
Please use PathUtils and IOUtils instead.
The ChromeUtils.import rule has been changed to prevent uses of ChromeUtils.import with more than one argument.
Please use the return value instead.
macOS Spotlight
New Tab Page
Nimbus / Experiments
NodeJS
Password Manager
- :sgalich fixed an issue where about:logins was not reporting website breaches or alerts
- :tgiles fixed an issue where the default FxA avatar would appear on top of the initial character avatar
- Thanks to sukhmeet2002 for fixing an issue where some icons could be dragged when discarding unsaved changes in about:logins
PDFs & Printing
Picture-in-Picture
- Initial support for subtitles and captions goes out today in Firefox 100. Woohoo!
- Janvi Bajoria created a site-specific adapter for supporting captions and subtitles for Hotstar videos!
- Max created site-specific adapters for piped.kavin.rocks and piped.silkky.cloud for supporting captions and subtitles!
- Thanks to mhowell and emilio, weâve got Picture-in-Picture working again on the BBC iPlayer for Firefox 101 and up
- Starting in Firefox 101, Firefox will do its best to avoid opening PiP player windows on top of one another when you create several at a time. Thank you to contributor Hunter Jones!
- kpatenio has enabled the Picture-in-Picture player mute button by default, starting in Firefox 101
Performance
Performance Tools (aka Firefox Profiler)
- Improve Firefox Profiler user docs (#3998). Take a look at https://profiler.firefox.com/docs/ for our user guide. More improvements are on the way as well.
- Add a "Copy page URL" option to the right click context menu for markers (#3981)
New âCopy page URL context menu item when right clicked on a marker
- Add "Hide matching tracks" option to the track menu (#3955) It appears after searching something in the filter input and allows you to hide multiple tracks quickly.
New âHide matching tracksâ track menu item
- Draw all interval markers as rectangles in the marker chart (#3996)
Now all markers that represent a duration are more accurate in the graph
Privacy/Security
- Mark has updated the expiring version for the browser.searchinit.engine_invalid_webextension telemetry, that measures disabled or potentially invalid WebExtension search engines - Bug 1763528
- Drew has improved Firefox Suggest telemetry to measure dismissed or blocked Firefox Suggest entries - Bug 1764669 - and properly report reset impression counts - Bug 1765881
Screenshots
Storybook / Reusable components
- Weâve added preliminary support for using Storybook for Firefox UI components! We hope this helps create a foundation for creating reusable components.
- Hereâs some documentation to get you up and running (specific lines)
Community
This week I learned
- [mcheang] This is a TIL from my teammate. During my pair programming session, I was using console.table() to log data. It displays data in a tabular format and can make information easier to read. Check it out if you didnât know already: https://developer.mozilla.org/en-US/docs/Web/API/console/table
- [mcheang] In another live pair programming session we had on the search team, I learned the command mach run -profile ~/p1 which creates a new profile quickly, and the profile interface does not pop up. In contrast, you can also use mach run -P to bring up the profile interface and manually create a profile.
[mcheang] I couldnât find any help docs on -profile or -P commands, I wouldnât have known about these if I didnât see it from our coding session. But does anyone know where to find more docs on these profile commands?
[mconley] These are much older commands that are being handled by the Firefox binary itself. Here is the full set of commands that the Firefox binary reportedly handles.
[mconley] I did find this old wiki page that might be worth porting to Firefox Source DocsâŠ
[nchevobbe] --temp-profile creates a new temp profile
- [Mossop] note that that is mach specific, not a command line that standalone Firefox recognises.
Meeting Leader Rotation
Add your name below if you want to be in the rotation of leaders:
- mconley
- jaws
- mtigley
- mstriemer
- bigiri
- kpatenio
- niklas
- jhirsch
- Mandy Cheang [mcheang]
- hjones
- cmkm