Firefox 90 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
- The response view now shows a preview for web fonts (Firefox bug 872078).
- 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).
-webkit-image-set()has been implemented as an alias of the standard
image/image-set()function (Firefox bug 1709415).
- Private class static and instance fields and methods are now supported by default (Firefox bug 1708235 and Firefox bug 1708236).
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 in
try/catchblocks (Firefox bug 1648090).
- Custom date/time formats specified as options to the
Intl.DateTimeFormat()constructor can now include
dayPeriod— a value indicating that the approximate time of day (e.g. "in the morning", "at night", etc.) should be included as a
longstring (Firefox bug 1645115).
- The relative indexing method
at()has been added to the
TypedArrayglobal objects. (Firefox bug 1681371)
- 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).
- 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.
- Support was added for the deprecated
WheelEvent.wheelDeltaY. This allows Firefox to work with a small subset of pages that were broken by recent compatibility improvements to
WheelEvent(Firefox bug 1708829).
CanvasRenderingContext2Dinterface of the
Canvas APInow provides a
createConicGradient()method. This returns a
CanvasGradientmuch like the existing
radialgradients, 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 the
Navigator.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).
WebDriver:GetWindowHandlescommand to now correctly handle unloaded tabs (Firefox bug 1682062).
WebDriver:NewSessioncommand to always return the
proxycapability even if empty (Firefox bug 1710935).
With the removal of the FTP support in Firefox 90
ftpProxycapability is no longer evaluated, and when used will throw an
invalid argumenterror (Firefox bug 1703805).
Changes for add-on developers
matrixURI scheme is now supported and can be defined as a protocol within the
protocol_handlerskey in an extensions
- Starting with this version, the Cache API can be used in the extension pages and worker globals. For more details, see (Firefox bug 1575625).
- Firefox 89 for developers
- Firefox 88 for developers
- Firefox 87 for developers
- Firefox 86 for developers
- Firefox 85 for developers
- Firefox 84 for developers
- Firefox 83 for developers
- Firefox 82 for developers
- Firefox 81 for developers
- Firefox 80 for developers
- Firefox 79 for developers
- Firefox 78 for developers
- Firefox 77 for developers
- Firefox 76 for developers
- Firefox 75 for developers
- Firefox 74 for developers
- Firefox 73 for developers
- Firefox 72 for developers
- Firefox 71 for developers
- Firefox 70 for developers
- Firefox 69 for developers
- Firefox 68 for developers
- Firefox 67 for developers
- Firefox 66 for developers
- Firefox 65 for developers
- Firefox 64 for developers
- Firefox 63 for developers
- Firefox 62 for developers
- Firefox 61 for developers
- Firefox 60 for developers
- Firefox 59 for developers