Hey Firefox friends!
We’re back with another round of highlights and improvements from across Firefox!
Google Lens support has been turned on by default in the latest nightly builds.
When Google is your default search engine, and you right click an image you'll see a new context menu entry:
Semantic history search has now also been enabled in the latest nightly and beta builds.
This uses a local machine learning model to suggest entries from history that are related to your searches based on natural language understanding in the address bar.
Alexandre Poirot [:ochameau] improved the editor by displaying an editor widget where you can navigate between the different calls to a given function (#1908889) [Screenshot]
Isaac Briandt
David [:david-loe] improved accessibility of timepicker
Isaac Briandt updated build-bergamot.py and upload-bergamot.py to utilize zstd compression and updated Translations RemoteSettings schemas
As part of finalizing the Add-ons telemetry migration from legacy telemetry to Glean, the EnvironmentAddonBuilder (responsible for collecting the activeAddons/Theme/GMPlugins metrics in Glean and mirror it in the legacy telemetry environment) has been refactored out of the TelemetryEnvironment ES module - Bug 1981496
Sebastian Zartner [:sebo] added inactive CSS icon when overflow* properties are used in non-block, non-flex, non-grid containers (#1583898)
Artem Manushenkov fixed a memory leak in the Inspector (#1986144)
Holger Benl [:hbenl] fixed an issue where screenshots taken in Responsive Design Mode could have unexpected dimensions (#1979518)
Nicolas Chevobbe [:nchevobbe] made the Accessibility panel color simulation persist on page reload (#1770707)
Alexandre Poirot [:ochameau] fixed a Debugger crash that could happen when clicking on stacktrace frames from the console (#1985446)
Hubert Boma Manilla (:bomsy) fixed Debugger pretty printing of sources containing characters represented by more than one code unit (#1985689)
Hubert Boma Manilla (:bomsy) updated the version of Babel which we're using to handle top level await detection, which fixed a few issues (#1900314)
Alexandre Poirot [:ochameau] fixed an issue in the Network pane (reported by Jake), where the search would never complete (#1983792)
Julian Descottes [:jdescottes] fixed a Network Monitor crash that was occurring when setting network override on requests requiring CORS preflight (#1986615)
Nicolas Chevobbe [:nchevobbe] fixed an issue that was affecting the Changes panel on pages with multiple documents (that includes the Browser Toolbox) (#1798774)
Henrik disabled the BackupService component by default for the Remote Protocol (Marionette / WebDriver BiDi), as it isn't required for web automation tasks.
Julian implemented the `browsingContext.downloadEnd` event, which is emitted either when a download is completed or canceled.
Sasha implemented the "emulation.setUserAgentOverride" command for WebDriver BiDi, allowing clients to override the user agent string per browsing context, user context, or globally in Firefox + also fixed Bug 1705326 - navigator.userAgent still returns custom UA after clearing browsingContext.customUserAgent if a reload happened while the custom UA was set
Bug fixes
Julian updated the browsingContext.downloadWillBegin event to emit the correct `navigation` id, either the same one as the corresponding `browsingContext.navigationStarted` event, or null if the download was started by a link with a `download` attribute.
Julian fixed a crash occurring when `network.provideResponse` was used to override a response requiring a CORS preflight.
Julian fixed a bug with network events incorrectly flagged as blocked (`isBlocked=true`), even if they were not blocked for technical reasons - eg. coming from memory cache or using `data` scheme.
Julian updated the `network.beforeRequestSent` events to have `destination` set to “document” for top-level loads.
Julian fixed an encoding issue with `network.getData` which will now always use utf-8 when serializing as text.
Julian also updated `network.getData` to no longer throw if the response body is empty.
First mentioned a month ago, the tier-3 TypeScript linter has now been fixed so that it runs when the components it watches are touched. Previously it would only be run when the type information was changed.
ESLint
We discovered the require-jsdoc rules were not being applied due to a mistake when upgrading to flat config or ESLint v9. These have now been re-enabled, with follow-ups being landed to fix the new issues raised since the mistake was introduced.
The no-browser-refs-in-toolkit rule has now been promoted to an error, except for cases where it currently fails (stays as a warning). Please avoid introducing new cases.
The ESLint configuration inspector should now be working when run against firefox-main. This is a very useful tool for inspecting the configuration and determining which globals and rules are applied to which files.
Gijs updated our documentation for ESLint environments, which no longer work in the same way with v9.
/** eslint-env foo */ no longer works.
The files either need the correct extensions, or adding to eslint-file-globals.config.mjs. See the comments at the top of the file for more information.
There’s been a few fixes for the drag-to-pin work that’s in 143; these will be in the dot release.
Nikki has improved tab animation for vertical and horizontal tabs with tab stacking
Split View work is still early days but the meta bug is here.
We’re aiming to get sidebar.revamp turned on by default in Nightly only in 145 so we’re greening up a few tests then work on some old sidebar parity bugs before enabling this in release.
Jared fixed bug 1941854, [Windows] Additional window (skeleton UI) opens with Profile Selector on Firefox startup
Maile fixed bug 1955173, The favicons of the Profiles about: pages are not displayed properly in the List all tabs menu
Niklas fixed bug 1965598, The Usage Profile Group ID should be shared by all profiles in a group
Jaws fixed bug 1987317, Firefox won't launch a profile if the library of that profile is open
Jaws fixed bug 1988882, SelectableProfileService uses the wrong value for the rgb color property
Jaws fixed bug 1990020, Small fixes in SelectableProfileService
Work continues on modularising and re-using the address bar code to replace the existing search bar.
This will allow us to simplify the existing code, remove dependence on the toolkit autocomplete widget, and bring more features to the separate search bar.
Search Engines identifiers and telemetry.
We've now removed nsISearchEngine.identifier, and deprecated nsISearchEngine.telemetryId. nsISearchEngine.id still exists.
These are fields that would contain a mixture of information about a search engine (an identifier, partner code and sometimes more). This would analysis via telemetry more difficult.
If you're reporting search engine information either via telemetry or to other systems, please use the separate id / partnerCode fields on nsISearchEngine or check with the search team for your case.
moz-button supports type=”split”(Bug 1858811). Setting menuId on the split button links its “More options” button to a panel-list with the same id. (Storybook)
Support for the support-page attribute was added to the moz-box-item (Bug 1990839)
New --font-size-xxlarge (2.2rem - 33px) token was added. (Bug 1961988)
Usage of border-radius was updated to use design tokens values (Bug 1983938)
This information, including all of the previous updates, are fully available in this doc: https://docs.google.com/a/mozilla.com/document/d/1u9YH3ULNRYg6G-fN-Udkvfkcvg0alJfzi_zIAfFNkL8/edit?usp=sharing
Also note that we’re really just synthesising and humanising the stuff that's on the Wiki, which is freely available from here: https://wiki.mozilla.org/Firefox/Meeting, so check that out if you want the source material. It'll also be posted (minus the Below the Fold stuff) to the Nightly blog.
Finally, if there's a Firefox-ish team that you feel isn't being represented here, please let them know about the above meeting so we can get their updates.
Keep on rockin' the free web,
Anna