Firefox 109 for developers
==========================

This article provides information about the changes in Firefox 109 that will affect developers. Firefox 109 was released on January 17, 2023.

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

### HTML

* The range element supports the `list` attribute, which links via an id to a `<datalist>` to allow Firefox to display tick marks along the range.
### CSS

* The `<system-color>` CSS data type now supports the values `Mark`, `MarkText`, and `ButtonBorder` (Firefox bug 1638052).
### JavaScript

No notable changes.

### SVG

#### Removals

* `SVGGraphicsElement.getTransformToElement()` has been removed.
 This follows its removal from the SVG2 specification in 2015, and from other major browsers.
 (Firefox bug 1803790).
* The `SVGGraphicsElement.nearestViewportElement` and `SVGGraphicsElement.farthestViewportElement` attributes have been disabled by default in nightly and early beta builds (behind preference `svg.nearestAndFarthestViewportElement.enabled`).
 `SVGElement.viewportElement` can be used as an alternative to `SVGGraphicsElement.nearestViewportElement`.
 They have been removed from the SVG2 specification and are likely to be removed entirely from Firefox in a future release.
 (Firefox bug 1133174).
### HTTP

* The `'unsafe-hashes'` value for `Content-Security-Policy` source directives is now supported.
 For more information, see CSP unsafe-hashes (Firefox bug 1343950).
### APIs

#### DOM

* The `scrollend` events are now supported, which indicate that the user has completed scrolling in `Element` and `Document` objects.
 For more information, see Element: `scrollend` event and Document: `scrollend` event (Firefox bug 1797013, Firefox bug 1803435).
### WebDriver conformance (WebDriver BiDi, Marionette)

#### WebDriver BiDi

* The connection details for WebDriver BiDi are now written to `WebDriverBiDiServer.json` instead of `WebDriverBiDiActivePort`, which contains both the port (`ws_port`) and the host (`ws_host`). This file is located in the Firefox profile folder (Firefox bug 1792875).
* Added support for subscribing / unsubscribing to individual `contexts` when using `session.subscribe` and `session.unsubscribe` (Firefox bug 1723102).
* Added support for serializing `Node` objects (Firefox bug 1770731).
* Fixed the `columnNumber` for `exceptions` and `stackTraces` to be 0-based (Firefox bug 1796073).

#### Marionette

* Fixed a bug where `WebDriver:NewWindow` and `WebDriver:SwitchToWindow` were not focusing the new window properly (Firefox bug 1798655).
* Fixed a bug where `WebDriver:FindElement` (and similar commands) would fail if the Firefox window was occluded by other applications on Windows (Firefox bug 1802473).
Changes for add-on developers
-----------------------------

* Manifest V3 is now supported with the ability to sign and release Manifest V3 extensions on AMO. See the Manifest v3 signing available November 21 on Firefox Nightly blog post for more information. The following preview features are now fully available:
    + The `scripting` API, although this has been available to Manifest V2 extensions from Firefox 102.
    + The `action` API, and `"action"` manifest key and `_execute_action` special shortcut in the manifest `commands` key.
    + The `"host_permissions"` manifest key.
* The default Content Security Policy (CSP) for Manifest V3 extensions has been updated to include `upgrade-insecure-requests`. This means that, by default, all network requests are upgraded to use `https:`. Extensions that need to use `http:` can do so by overriding the default CSP using the `content_security_policy` manifest.json key (Firefox bug 1797086).
* The property `secretKeyLength` has been added to `webRequest.SecurityInfo`. This property provides the length in bits of the secret key in the security properties of a web request (Firefox bug 1778473).
* With the introduction of the extensions button, the default value of `default_area` in the `action` and `browser_action` manifest keys has changed from `"navbar"` to `"menupanel"` (Firefox bug 1799947).
* Support for `omnibox.onDeleteSuggestion` and the `deletable` property in `omnibox.SuggestResult`, enabling extensions to react to a user deleting an address bar search result (Firefox bug 1799947).
Older versions
--------------

* Firefox 108 for developers
* Firefox 107 for developers
* Firefox 106 for developers
* Firefox 105 for developers
* Firefox 104 for developers
* Firefox 103 for developers
* Firefox 102 for developers
* Firefox 101 for developers
* Firefox 100 for developers
* Firefox 99 for developers
* Firefox 98 for developers
* Firefox 97 for developers
* 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