- The devtools console is now significantly faster! If you are a developer who heavily uses the console, this should be a substantial quality of life improvement. This was a great collaboration between the devtools team and the performance team, and further performance improvements are inbound. – Bug 1753177
- Thank you to Max, who added several video wrappers for Picture-in-Picture subtitles support
- Font size of Picture-in-Picture subtitles can be adjusted using the preference media.videocontrols.picture-in-picture.display-text-tracks.size. Options are small, medium, and large. – Bug 1757219
- Starting in Firefox >= 101, there will be a change to our WebExtension storage API. Each storage API’s storageArea (storage.local, storage.sync etc) will provide its own onChanged event (e.g. browser.storage.local.onChanged and browser.storage.sync.onChanged), in addition to browser.storage.onChanged API event – Bug 1758475
- Daisuke has fixed an issue in the URL bar where the caret position would move on pages with long load times
Friends of the Firefox team
- Thanks to everyone that has helped mentor and guide Outreachy applicants so far, and a huge shout-out to the applicants!
Volunteers that fixed more than one bug
- Janvi Bajoria [:janvi01]
- Oriol Brufau [:Oriol]
- Shane Hughes [:aminomancer]
New contributors (🌟 = first patch)
- 🌟 Max added site adapters for Funimation, TubiTv, and AirMozilla
- 🌟 Av fixed a spelling mistake on source docs and removed dead code in browser-places.js
- 🌟 ian added a check to see if a window is private before saving search string
- 🌟 irwp fixed a typo in pref.js and got rid of Adobe Flash hang handler
- kabakert fixed Reader Mode to use the same tab title as normal page
- 🌟 karnikk1406120 fixed ESLint rule warnings in test_no_remote_registration.js
- 🌟 sayuree added logging for PiP, removed unnecessary try/catch and null checks for QI in http-on-modify-request, and fixed “update” tasks in browser_creditCard_doorhanger.js
- serge-sans-paille cleaned up includes in toolkit/components/telemetry/ and toolkit/components/url-classifier/
- Simon McVittie unset MOZ_APP_LAUNCHER for external MIME hand
Add-ons / Web Extensions
- As part of the ongoing ManifestVersion 3 work:
- Menu API support for event pages – Bug 1748558 / Bug 1762394 / Bug 1761814
- Prevent event page to be terminated on idle while the Addon Debugging devtools toolbox is attached to the extension – Bug 1748530
- Deprecated tabs APIs have been hidden (for add-ons with manifest_version explicitly set to 3) – Bug 1764566
- Relax validation of the manifest properties unsupported for manifest_version 3 add-ons – Bug 1723156
- Firefox will be showing warnings in “about:debugging” for the manifest properties deprecated in manifest_version 3, but the add-on will install successfully.
- The deprecated manifest properties will be set as undefined in the normalized manifest data.
- Thanks to Jon Coppeard work in Bug 1761938, a separate module loaders is being used for WebExtensions content scripts dynamic module imports in Firefox >= 101
- Thanks to Emilio work in Bug 1762298 WebExtensions popups and sidebars will be using the preferred color scheme inherited from the one set for the browser chrome
- Quoting from Bug 1762298 comment 1: The prefers-color-scheme of a page (and all its subframes) loaded in a <browser> element depends on the used color-scheme property value of that <browser> element”.
- WebDriver BiDi
- Started working on a new command, browsingContext.create, which is used to open new tabs and windows. This command is important both for end users as well as for our own tests, to remove another dependency on WebDriver HTTP.
- We landed a first implementation of the browsingContext.navigate command. Users can rely on this command to navigate tabs or frames, with various wait conditions.
- On April 11th geckodriver 0.31.0, which is our proxy for W3C WebDriver compatible clients to interact with Gecko-based browsers, was released including some fixes and improvements in our WebDriver BiDi support and a new command for retrieving a DOM node’s ShadowRoot.
Lint, Docs and Workflow
- There are various mentored patches in work/landing to fix ESLint no-unused-vars issues in xpcshell-tests. Thank you to the following who have landed fixes so far:
- Roy Christo
- Karnik Kanojia
- Patches have been posted for upgrading to the ESLint v8 series.
- One thing of note is that 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”.
- tgiles fixed an issue with the “Create New Login” button not being visible at smaller screen sizes
- serg landed a patch that fixes some duplicate implementations for LoginAutoComplete and introduces async filling by LoginManagerParent
- This will help with Firefox Relay integration, one-time passwords support and other features that the password manager wants to support
- Thanks to :janvi01 for fixing a spacing issue on login CSV import complete and error dialogs!
- Thanks to Janvi Bajoria who fixed a visual glitch in the Picture-in-Picture player window due to overzealous focus rings!
- sabina.zaripova added some helpful logging to PictureInPictureChild.jsm
- kpatenio fixed a regression where the controls in the Picture-in-Picture player window did not have a visual hover state
- kpatenio reduced the intermittence of a severe PiP-specific test failure
- niklas also made it so that the PiP toggle is hidden if the whole PiP feature is disabled
- mstange made it so that closing the PiP player window on macOS doesn’t also unintentionally foreground the last Firefox window as well
Search and Navigation
- Drew added the ability to remove Firefox Suggest Sponsored and Non-Sponsored results, and telemetry for when users use this feature. Additionally, he added frequency capping for suggestions, with added telemetry.
- Daisuke added two versions of an opt-in modal for Firefox Suggest and refactored the tests.
James added additional flexibility to generating locale and region names based on the users locale/region in search-config.json