Firefox 105 for developers
==========================

This article provides information about the changes in Firefox 105 that affect developers. Firefox 105 was released on September 20, 2022.

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

### HTML

No notable changes.

### CSS

* Embedded content, such as SVG definitions and content in an `<iframe>`, now respects the theme preferences of the elements in which it is embedded, rather than OS or browser preferences (which may be different).
 Specifically, embedded content now inherits the `color-scheme` of the embedding element, and `prefers-color-scheme` media queries in the embedded content respect this value rather than the OS/browser level theme setting (Firefox bug 1779457).
### JavaScript

* Range restrictions have been relaxed on `formatRange` and `selectRange` functions for `Intl.DateTimeFormat`, `Intl.NumberFormat`, and `Intl.PluralRules` objects. This change now allows negative ranges (Firefox bug 1780545).
### APIs

#### DOM

* The TextDecoderStream and TextEncoderStream interfaces, part of the Encoding API, are now supported (Firefox bug 1486949).
* The OffscreenCanvas API provides a canvas that can be rendered off-screen in both window and web worker contexts.
 This allows `<canvas>` elements to be decoupled from the DOM. The OffscreenCanvasRenderingContext2D interface provides support for this and is now enabled by default (Firefox bug 1779009).
* The CSS Font Loading API can now be used in worker threads (Firefox bug 1072107).
### WebDriver conformance (WebDriver BiDi, Marionette)

#### WebDriver BiDi

* On systems with IPv6 preferred DNS resolution clients will no longer fail to connect when `localhost` is used as host for the WebSocket server (Firefox bug 1769994).
* Improved `RemoteValue` support to allow plain JS objects with simple JSON-serializable fields to be serialized (Firefox bug 1779226).

#### Marionette

* The `WebDriver:GetElementProperty` command is now able to return node properties as set by web content (Firefox bug 1398792).
Changes for add-on developers
-----------------------------

* Support for defining persistent scripts using `scripting` has been added. A script is identified as persistent using the `persistAcrossSessions` property in `scripting.RegisteredContentScript` (Firefox bug 1751436).
* An extension's resources can no longer be loaded by other extensions by default. To enable other extensions to load resources they must be listed in the extension's `web_accessible_resources` manifest key (Firefox bug 1711168).
Older versions
--------------

* 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
* Firefox 77 for developers
* Firefox 76 for developers
* Firefox 75 for developers
* Firefox 74 for developers