Firefox 108 for developers
==========================

This article provides information about the changes in Firefox 108 that will affect developers. Firefox 108 was released on December 13, 2022.

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

### HTML

* The `<source>` element supports `height` & `width` attributes when it is a child of a `<picture>` element.
 This functionality can be configured via the `dom.picture_source_dimension_attributes.enabled` preference which is now set to `true` by default (Firefox bug 1795953).
### CSS

* Trigonometric functions are now enabled with the `layout.css.trig.enabled` preference set to `true` by default.
 This allows the use of `sin()`, `cos()`, `tan()`, `asin()`, `acos()`, `atan()`, and `atan2()` functions (Firefox bug 1774589, Firefox bug 1787070).
* CSS `<calc-constant>` type is implemented to allow for well-known constants such as `pi` and `e` within math functions (Firefox bug 1682444, Firefox bug 1787070).
* Container query length units are now supported via the `layout.css.container-queries.enabled` preference, which is set to `false` by default.
 Setting this preference to `true` allows the use of `cqw`, `cqh`, `cqi`, `cqb`, `cqmin`, and `cqmax` units of length which are relative to the size of a query container.
 For more information on these units, see the CSS Container Queries documentation (Firefox bug 1744231).
* The `font-variant-emoji` property is now supported via the `layout.css.font-variant-emoji.enabled` preference, which is set to `false` by default. This property allows you to set a default presentation style for displaying emojis (Firefox bug 1461589).
### JavaScript

No notable changes

### HTTP

* `Content-Security-Policy` HTTP header directives `style-src-elem` and `style-src-attr` are now supported.
 A server can use these to specify valid sources for stylesheet `<style>` elements and `<link>` elements with `rel="stylesheet"`, and for styles applied to individual elements, respectively (Firefox bug 1529338).
* `Content-Security-Policy` HTTP header directives `script-src-elem` and `script-src-attr` are now supported.
 A server can use these to specify valid sources for JavaScript `<script>` elements, and for inline script event handlers like `onclick`, respectively (Firefox bug 1529337).
* `Content-Security-Policy` violation reports now include `effective-directive` and `status-code` properties.
 For more information, see Violation report syntax (Firefox bug 1192684).
### APIs

* Import maps are now supported.
 Import maps provide flexibility and additional control over how browsers resolve module specifiers when importing JavaScript modules.
 (Firefox bug 1795647).

#### Media, WebRTC, and Web Audio

* The Web MIDI API is now available in secure contexts.
 Calls to `navigator.requestMIDIAccess()` will prompt users with active MIDI devices to install a Site Permission Add-On, which is required to enable the API.
 For more information see Firefox bug 1795025.
### WebDriver conformance (WebDriver BiDi, Marionette)

#### WebDriver BiDi

* Following a change in the specification, log entry level `"warning"` was renamed to `"warn"` (Firefox bug 1797115).
* When using `script.evaluate` and `script.callFunction` with a sandbox name equal to an empty string, the evaluation will now be done using the default realm (Firefox bug 1793589).
* Added support for the `browsingContext.domContentLoaded` event (Firefox bug 1756610).

#### Marionette

* Added support for the `tiltX`, `tiltY` and `twist` properties of pointer actions for `WebDriver:PerformActions` (Firefox bug 1793832).
* Fixed a bug where `WebDriver:GetElementText` wasn't returning the element text for pretty-printed XML (Firefox bug 1794099).
* `HTMLDocument` is no longer serialized as a `WebElement` reference (Firefox bug 1793920).
* `WebDriver:NewWindow` now opens a window with an `about:blank` tab instead of `about:newtab` (Firefox bug 1533058).
Changes for add-on developers
-----------------------------

* Firefox now issues a warning when an extension is installed if its version number doesn't follow the recommended format (Firefox bug 1793925).
Older versions
--------------

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