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
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
in
operator 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/catch
blocks (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
, orlong
string (Firefox bug 1645115). - The relative indexing method
at()
has been added to theArray
,String
andTypedArray
global 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
WheelEvent
properties: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
CanvasRenderingContext2D
interface of the Canvas API now provides acreateConicGradient()
method. This returns aCanvasGradient
much like the existinglinear
andradial
gradients, but allows a gradient to move around a point defined by coordinates. See Firefox bug 1627014 for more details. - Support for the
matrix
protocol 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:GetWindowHandles
command to now correctly handle unloaded tabs (Firefox bug 1682062). - Fixed the
WebDriver:NewSession
command to always return theproxy
capability even if empty (Firefox bug 1710935).
Removals
- With the removal of the FTP support in Firefox 90
the
ftpProxy
capability is no longer evaluated, and when used will throw aninvalid argument
error (Firefox bug 1703805).
Changes for add-on developers
- The
matrix
URI scheme is now supported and can be defined as a protocol within theprotocol_handlers
key 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).
Older versions
- 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