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 (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. (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 (bug 1680387).
CSS
-webkit-image-set()
has been implemented as an alias of the standardimage/image-set()
function (bug 1709415).
JavaScript
- Private class static and instance fields and methods are now supported by default (bug 1708235 and 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 (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 (bug 1645115). - The relative indexing method
at()
has been added to theArray
,String
andTypedArray
global objects. (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 (bug 1695911).
Removals
- FTP has now been removed from 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
(bug 1708829). - The
CanvasRenderingContext2D
interface of theCanvas 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 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 (bug 1691047).
- Added support for the new type of user prompts in 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 (bug 1680479).
- Fixed an inappropriate abortion of the current WebDriver command when a new user prompt was opened in a background tab (bug 1701686).
-
Fixed the
WebDriver:GetWindowHandles
command to now correctly handle unloaded tabs (bug 1682062). -
Fixed the
WebDriver:NewSession
command to always return theproxy
capability even if empty (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 (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 (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