Firefox 103 for developers
==========================

This article provides information about the changes in Firefox 103 that will affect developers. Firefox 103 was released on July 26, 2022.

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

### HTML

#### Removals

* Support for the `<menuitem>` element has been removed along with the `dom.menuitem.enabled` preference.
 For more details, see Bug 1372276.
### MathML

#### Removals

* The deprecated `scriptminsize` and `scriptsizemultiplier` attributes have been removed (Firefox bug 1772697).
### CSS

* The `backdrop-filter` property (which can be used to apply graphical effects such as blurring or color shifting to the area behind an element) is now available by default. It was earlier behind a preference setting (Firefox bug 1578503).
* The `scroll-snap-stop` property is now available (Firefox bug 1312165). You can use this property's `always` and `normal` values to specify whether or not to pass the snap points, even when scrolling fast.
* Support has been added for the `:modal` pseudo class. It selects all elements that are in a state in which they exclude all interaction with other elements until the interaction has been dismissed (Firefox bug 1768535).
* The `style` value for the `contain` property is now supported. You can use this value for properties that can have effects on more than just an element and its descendants for effects don't escape the containing element. For more information, see (Firefox bug 1463600).
### JavaScript

* Native Error types can now be serialized using the structured clone algorithm.
 This includes `Error`, `EvalError`, `RangeError`, `ReferenceError`, `SyntaxError`, `TypeError`, `URIError` and `AggregateError`.
 Serialized properties include the `name`, `message`, `cause`, `fileName`, `lineNumber` and `columnNumber`.
 For `AggregateError` the `message`, `name`, `cause` and `errors` properties are serialized.
 See Firefox bug 1556604 for more details.
### HTTP

No notable changes.

### Security

No notable changes.

### APIs

* `ReadableStream`, `WritableStream`, `TransformStream` are now Transferable objects, which means that ownership can be transferred when sharing the objects between a window and workers using `postMessage`, or when using `structuredClone()` to copy an object.
 After transferring, the original object cannot be used.
 See Firefox bug 1659025 for more details.
* `caches`, `CacheStorage`, and `Cache` now require a secure context; the properties/interfaces are not defined if used in an insecure context.
 Previously `cache` would return a `CacheStorage` that would throw an exception if used outside of a secure context.
 See Firefox bug 1112134 for more details.
### WebAssembly

No notable changes.

### WebDriver conformance (WebDriver BiDi, Marionette)

#### WebDriver BiDi

* Added a preference to disable experimental BiDi commands and events `remote.experimental.enabled` (Firefox bug 1777951).
* Added a `script` module with an experimental implementation of the `evaluate` command. Only available if `remote.experimental.enabled` is set to `true` (Firefox bug 1742979).
* Added serialization support for collections with simple values and complex objects, used for instance for the event data of `log.entryAdded` or the return value of `script.evaluate` (Firefox bug 1770752).
* Fixed an edge case for `browsingContext.navigate` when navigating to a cached image (Firefox bug 1763133).

#### Marionette

* Updated the `platformVersion` capability to be returned as `moz:platformVersion` (Firefox bug 1771760).
* Removed support for `ChromeElement`; all elements are now serialized as `WebElement` (Firefox bug 1775036 and Firefox bug 1775064).
Changes for add-on developers
-----------------------------

### Removals

* Removed the ServiceWorker API in WebExtensions (`'serviceWorker' in navigator` now returns `false` when run inside an extension) (Firefox bug 1593931).
Older versions
--------------

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