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


  • 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).




  • 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).




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 the proxy capability even if empty (bug 1710935).


Changes for add-on developers

  • The matrix URI scheme is now supported and can be defined as a protocol within the protocol_handlers key in an extensions manifest.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