Firefox 97 for developers
=========================

This article provides information about the changes in Firefox 97 that affect developers. Firefox 97 was released on February 8, 2022.

Changes for web developers
--------------------------

### HTML

No notable changes

### CSS

* The CSS units `cap` and `ic` are now supported for use with `<length>` and `<length-percentage>` data types.
 For more information, see Firefox bug 1702924 and Firefox bug 1531223.
* The CSS property `color-adjust` has been renamed to `print-color-adjust` to match the relevant specification.
 The `color-adjust` shorthand name is deprecated.
 See Firefox bug 747595 for details.
* CSS cascade layers are now available by default. The `@layer` rule declares a cascade layer, which allows declaration of styles and can be imported via the `@import` rule using the `layer()` function. See Firefox bug 1699217 for more details.
* The global CSS keyword `revert-layer` has been added to allow rolling back of property values in one cascade layer to the matching rules in the previous cascade layer. This keyword can be applied on any property, including the CSS shorthand property `all`. For more information, see Firefox bug 1699220.
* The CSS `scrollbar-gutter` property is now supported. This gives developers control over reserved space for the scrollbar, preventing unwanted layout changes as the content grows.
 See Firefox bug 1715112 for more details.
### JavaScript

No notable changes

### SVG

* The SVG `d` attribute, used to define a path to be drawn, can now be used as a property in CSS.
 It accepts the values path() or `none`. (See Firefox bug 1744599 for details.)

#### Removals

* A number of `SVGPathSeg` APIs are now disabled by default behind a preference, and are expected to be removed in future revisions.
 This includes: `SVGPathSegList`, SVGPathElement.getPathSegAtLength(), `SVGAnimatedPathData`.
 (See Firefox bug 1388931 for more details.)
### APIs

* `AnimationFrameProvider` is now available in a `DedicatedWorkerGlobalScope`. This means the `requestAnimationFrame` and `cancelAnimationFrame` methods can be used within a dedicated worker.
 (See Firefox bug 1388931 for more details.)

#### DOM

* The reason for an abort signal can now be set using `AbortController.abort()` (or `AbortSignal.abort()`), and will be available in the `AbortSignal.reason` property.
 This reason defaults to being an "AbortError" `DOMException`.
 The reason can be thrown or handled via promise rejection as appropriate.
 (Firefox bug 1737771).
* The convenience method `AbortSignal.throwIfAborted()` can be used to check if a signal has been aborted, and if so throw the `AbortSignal.reason()`.
 This makes it easier for developers to handle abort signals in code where you can't simply pass the signal to an abortable method. (Firefox bug 1745372).
### WebDriver conformance (Marionette)

* `Marionette:Quit` accepts a new boolean parameter, `safeMode`, to restart Firefox in safe mode (Firefox bug 1144075).
* Improved stability for `WebDriver:NewSession` and `WebDriver:NewWindow` when waiting for the current or initial document to be loaded (Firefox bug 1739369, Firefox bug 1747359).
Changes for add-on developers
-----------------------------

* `cookieStoreId` in `tabs.query` supports an array of strings. This enables queries to match tabs against more than one cookie store ID (Firefox bug 1730931).
* `cookieStoreId` added to `contentScripts.register`. This enables extensions to register container-specific content scripts (Firefox bug 1470651).
Older versions
--------------

* Firefox 96 for developers
* Firefox 95 for developers
* Firefox 94 for developers
* Firefox 93 for developers
* Firefox 92 for developers
* Firefox 91 for developers
* Firefox 90 for developers
* 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