- 1 Friends of the Firefox team
- 2 Project Updates
- 2.1 Add-ons / Web Extensions
- 2.2 Developer Tools
- 2.3 Downloads Panel
- 2.4 Form Autofill
- 2.5 Reader Mode (MSU Capstone project)
- 2.6 Lint, Docs and Workflow
- 2.7 Password Manager
- 2.8 PDFs & Printing
- 2.9 Picture-in-Picture
- 2.10 Performance
- 2.11 Performance Tools
- 2.12 Privacy/Security
- 2.13 Search and Navigation
- 2.14 Community
- 3 This week I learned
Friends of the Firefox team
Fixed more than one bug
- Joaquín Serna
- Jonas Jenwald [:Snuffleupagus]
- Mathew Hodson
- Oriol Brufau [:Oriol]
New contributors (🌟 = first patch)
- Joaquín Serna removed lodash flatten usage and removed lodash `remove` usage
- Kz04px updated open all tabs popup on mouse down event instead of mouse up
- Rashelle added probe for PiP disabled state and fixed PIP button z-index not respected with semi-transparent div
- Sai Hemanth removed lodash difference usage
Add-ons / Web Extensions
Addon Manager & about:addons
- Mathew Hodson contributed some more cleanup patches (to get rid of ChromeUtils.import calls with more than one parameters, Bug 1746709, and to remove old extension-data migration logic which have been unused for a while, Bug 1704144). Thanks Mathew!!!
- New “Site Permissions” add-on type: Starting from Firefox 97 we are introducing a new add-on type that provides access to experimental WebAPIs (initially only “Web MIDI”) to specific website origins - Tracking meta Bug 1737161 (adding Firefox developers docs related to “adding support for new experimental WebAPIs gated by a SitePermissions addon” is tracked by Bug 1742518)
- Mark Hammond created a new in-tree doc page that describes the underlying architecture of the storage.sync API data backend - Bug 1745683
- As part of the ongoing work related to Manifest Version 3 WebExtensions, we have introduced a new nsIServiceWorkerManager.wakeForExtensionAPIEvent method to spawn an active background service worker when the related extension has received an API event to be handled by the background script - Bug 1728327
- Investigated and fixed (in Firefox 97) an issue related to the '''runtime''' API’s '''sender.frameId '''/''' port.sender.frameId''' property, which was regressing LastPass browserAction popup in private windows - Bug 1748158 (regression introduced in Firefox 95 by Bug 1708243)
- Fix contextMenus / menus APIs issue triggered when the user right click on DOM elements with invalid link urls - Bug 1746494
- Landed (in Firefox 97) a small userScript API fix (to make sure that registered userScripts are unregistered as expected when the extension context that has registered them is destroyed) - Bug 1746852
It’s been a while since we provided any update here, so I’m going to highlight a few things that happened the last few months
After being enabled for a while on Nightly, the context selector is enabled by default in Firefox 96 (bug)
[alt] In the Firefox DevTools WebConsole, on the top corner of the input, a toggle button is enabled, and its associated popup shows 2 items: “Top” and “odvarko.com”, which is selected. In the input has the following text: “globalThis”, which is instantly evaluated to “Window http://odvarko.com/”
- The context selector allows the user to execute a snippet from the webconsole on a specific document used in the page (e.g. an iframe, a worker, …)
- The context is automatically updated on specific interaction in DevTools, like selecting an element from an iframe in the inspector, or being paused in the debugger
[alt] In the Inspector rule view, a rule has the following property: “background-color: hwb(28 13% 10%)”. A color swatch is displayed before the property value, and the color picker is displayed.
Emilio and jdescottes added a new “auto” theme (which is now the default one), which follows the browser's color scheme, so if you have a dark theme for your browser, DevTools will also have a dark theme. This can be overridden by setting the theme to either Light or Dark in DevTools settings panel. (bug1 & bug2)
For the last couple months, we teamed up with the WebCompat folks to improve diagnosing webcompat issues:
- A warning message is now displayed in the console when the current page is in quirks mode (e.g. there is no/invalid doctype) (bug)
- It is now possible to “pick” element from the page with “pointer-events: none” by holding the Shift key as you’re using the picker (bug)
- You may be surprised to learn that you can pick a node when debugging Firefox for Android in about:debugging. This wasn’t really highlighted anywhere, so we now update the “pick” icon when debugging an android phone, and a notice is displayed on the phone to tell the user they can pick a node with a tap. (bug)
- Bomsy added an initial patch to make it possible to ignore specific lines from a script in the debugger. This is behind the `devtools.debugger.features.blackbox-lines` pref and we’re looking for feedback on this (there are already follow up patches in flight) (bug)
- The new downloads improvements are enabled and set to ride the release train! 🎉🎉🎉
- kpatenio fixed an issue where some file types (eg. plain text files) are opened in the selected helper app when saved via the “Save Link As” context menu item.
Enabling credit card autofill for the UK, France, and Germany has been pushed back to Fx98
We encountered some pref migration issues and sync issues. So we needed to back out the main patch that allowed address and credit card autofill to be enabled independently of each other.
- :sgalich fixed an issue where there is no “browser.search.region” pref on Android which could cause credit card autofill not to behave as expected on Android
- :sgalich fixed an issue where some of the old prefs from form autofill were being used to setup tests
Reader Mode (MSU Capstone project)
- [niklas] Spring capstone project starts today. The students will be working on general improvements to make Reader Mode even more awesome!
Lint, Docs and Workflow
- Table-of-contents was broken for Firefox Source Docs. It has been fixed, but keep an eye out for any strangeness there in case there’s any additional fallout, and file bugs if you do.
- Thanks to :farre for enabling the LoginDetectionService on Android which helps support marking a site as high-value
- :sgalich fixed an important performance issue in our login CSV import code, cutting the import time from 3 to 10 minutes (in this particular case) to around 4 seconds!
- :tgiles fixed an issue where an extra blank space was displayed at the bottom of about:logins when a new login was saved
- :sgalich improved keyboard support for the search box in about:logins
PDFs & Printing
- At long last, the old printing UI code has been removed! Thanks jwatt for cleaning that up.
This will make it possible for us to apply very fine-grained interaction rules for custom video players, which should help make it possible to (eventually) expose more controls in the Picture-in-Picture player window
- kpatenio is working on adding WebVTT caption/subtitle support
She’s also working on making the PiP player window’s audio button reflect the state of the tab’s audio button
She’s also adding a window icon for the PiP window
- Special thanks to barret who is continuing to burn down OS.File usage! Remember, OS.File is slow to load, and you should use IOUtils instead for disk access.
- florian identified a path where we’ll start compositing at 60hz even if there’s nothing to do! There’s a nice opportunity for power / processing savings here. hiro has a patch that landed but bounced, but watch this space.
- Added initial support for inline source view to the Firefox Profiler. Example profile: https://share.firefox.dev/3qe5bQk For now it supports local builds and local symbol servers only, but broader support will be coming.
- Limited the visible threads to 15 by default.
If you profiled something and are puzzled with the profile you captured, we have the Joy of Profiling ([#joy-of-profiling:mozilla.org]) channel where people share their profiles and get help from the people who are more familiar with the Firefox Profiler.
We also have Joy of Profiling Open Sessions where people bring their profile and we try to analyze the profile together over Zoom. See the Performance Office Hours calendar.
- [tjr] In Nightly 98 we will be enabling enforcement of Script Name restrictions, which prevents (nearly all) scripts that don’t begin with chrome:// or resource:// from loading/executing in the parent process. In release builds, it will fail with a console warning; in debug builds it will crash.
- Drew fixed an issue in the address bar where typing 'g' and <enter> vs 'g' (wait a little) <enter> could lead to different results.
- Drew also fixed a couple of cases of apparent jank when opening the address bar pop-up.
- Mandy fixed a case where the "Switch to Tab" result could be duplicated in the address bar.
- We have some FOSDEM talks scheduled. Stay tuned for details!