Firefox 90 release notes for developers
This article provides information about the changes in Firefox 90 that will affect developers. Firefox 90 was released on July 13th, 2021.
Note: See also Getting lively with Firefox 90 on Mozilla Hacks.
Changes for web developers
>Developer Tools
- The response view now shows a preview for web fonts (Firefox bug 872078).
HTML
- A fix to the way that form payloads are handled around newline normalization and escaping in multipart/formdata. This meets the updated specification, and matches other browser implementations. (Firefox bug 1686765).
- Firefox now sets an image's intrinsic size and resolution based on EXIF information (if present and self-consistent). This allows a server to, for example, send a low-quality placeholder image to speed up loading. It also enables a number of other use cases (Firefox bug 1680387).
CSS
-webkit-image-set()has been implemented as an alias of the standardimage/image-set()function (Firefox bug 1709415).
JavaScript
- Private class static and instance fields and methods are now supported by default (Firefox bug 1708235 and Firefox bug 1708236).
- The
inoperator can now be used to check if a class private method or field has been defined. This offers a more compact approach for handling potentially undefined features, as oppose to wrapping code intry/catchblocks (Firefox bug 1648090). - Custom date/time formats specified as options to the
Intl.DateTimeFormat()constructor can now includedayPeriod— a value indicating that the approximate time of day (e.g., "in the morning", "at night", etc.) should be included as anarrow,short, orlongstring (Firefox bug 1645115). - The relative indexing method
at()has been added to theArray,StringandTypedArrayglobal objects. (Firefox bug 1681371)
HTTP
- The HTTP fetch metadata request headers (
Sec-Fetch-*) are now supported. These headers provide servers with additional context about requests, including whether they are same-origin, cross-origin, same-site, or user-initiated, and where/how the requested data is to be used. This allows servers to mitigate against several types of cross-origin attacks (Firefox bug 1695911).
Removals
- FTP has now been removed from Firefox (Firefox bug 1574475). This follows deprecation in Firefox 88. Note that web extensions can still register themselves as FTP protocol handlers.
APIs
DOM
- Support was added for the deprecated
WheelEventproperties:WheelEvent.wheelDelta,WheelEvent.wheelDeltaX, andWheelEvent.wheelDeltaY. This allows Firefox to work with a small subset of pages that were broken by recent compatibility improvements toWheelEvent(Firefox bug 1708829). - The
CanvasRenderingContext2Dinterface of the Canvas API now provides acreateConicGradient()method. This returns aCanvasGradientmuch like the existinglinearandradialgradients, but allows a gradient to move around a point defined by coordinates. See Firefox bug 1627014 for more details. - Support for the
matrixprotocol has been added and can now be passed into theNavigator.registerProtocolHandler()method as a valid scheme.
WebDriver conformance (Marionette)
- Marionette now restricts to a single active WebDriver session (Firefox bug 1691047).
- Added support for the new type of user prompts in Firefox (Firefox bug 1686741)
- Window handles make use of a unique id now, and don't change for process swaps as caused by cross-group navigations (Firefox bug 1680479).
- Fixed an inappropriate abortion of the current WebDriver command when a new user prompt was opened in a background tab (Firefox bug 1701686).
- Fixed the
WebDriver:GetWindowHandlescommand to now correctly handle unloaded tabs (Firefox bug 1682062). - Fixed the
WebDriver:NewSessioncommand to always return theproxycapability even if empty (Firefox bug 1710935).
Removals
- With the removal of the FTP support in Firefox 90
the
ftpProxycapability is no longer evaluated, and when used will throw aninvalid argumenterror (Firefox bug 1703805).
Changes for add-on developers
- The
matrixURI scheme is now supported and can be defined as a protocol within theprotocol_handlerskey in an extensionsmanifest.json - Starting with this version, the Cache API can be used in the extension pages and worker globals. For more details, see (Firefox bug 1575625).