Firefox 118 for developers
==========================

This article provides information about the changes in Firefox 118 that affect developers. Firefox 118 was released on September 26, 2023.

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

### HTML

* The `<search>` element is now supported. The `<search>` element is a group element that serves to contain all the elements used in a search or filtering operation (Firefox bug 1824121).
### CSS

* The `font-synthesis-position` property and `position` value for `font-synthesis` shorthand property are now supported. These allow subscript and superscript typefaces to be disabled for fonts that do not have glyphs for them when using `font-variant-position` (Firefox bug 1849010).
* Multiple CSS math functions are now supported: `abs()`, `sign()`, `round()`, `mod()`, `rem()`, `pow()`, `sqrt()`, `hypot()`, `log()`, and `exp()` (Firefox bug 1814589).
* A new keyword `from-font` in the CSS property `font-size-adjust` enables picking the desired `<font-metric>` from the first available font (Firefox bug 1708240).
* The CSS property `transform-box` now supports the values `content-box` and `stroke-box`. For the reference box, the `content-box` value uses the content box and the `stroke-box` value uses the stroke bounding box that contains an SVG's shape (Firefox bug 1819464).
* The CSS property `font-size-adjust` supports the keyword `from-font` that enables picking the desired `<font-metric>` from the first available font (Firefox bug 1708240).
### JavaScript

No notable changes.

### HTTP

* The HTTP `Permissions-Policy` header's `publickey-credentials-get` directive is now supported, which can be used to enable the Web Authentication API interface for retrieving public-key credentials in a cross-origin iframe (Firefox bug 1460986).
### MathML

* The `<semantics>` and `<maction>` elements only render the first child element by default now. The `mathml.legacy_maction_and_semantics_implementations.disabled` preference has been removed (Firefox bug 1788223).
* All values of the `mathvariant` attribute other than `normal` are now deprecated. Additionally, the attribute's use is now limited to the `<mi>` element (Firefox bug 1845461).
### SVG

No notable changes.

### Security

No notable changes.

### APIs

* The `⊞ Windows Logo` key on Windows and the `Command` key on macOS now return a value of `"Meta"` for `KeyboardEvent.key`, instead of `"OS"`, and `KeyboardEvent.code` returns `MetaLeft`/`MetaRight` instead of `OSLeft`/`OSRight` (Firefox bug 1232918).
* The `RTCRtpTransceiver.currentDirection` and `RTCRtpTransceiver.direction` properties now support the `"stopped"` value for indicating whether a transceiver has stopped. This value should now be used instead of the deprecated `RTCRtpTransceiver.stopped` property (Firefox bug 1568296).
* The array returned by `RTCPeerConnection.getTransceivers()` now omits stopped transceivers. Similarly, `RTCPeerConnection.getReceivers()` and `RTCPeerConnection.getSenders()` omit the receivers and senders associated with a stopped transceiver (Firefox bug 1568296).
* The `TextMetrics.emHeightDescent` and `TextMetrics.emHeightAscent` properties are now supported (Firefox bug 1841692).
### WebDriver conformance (WebDriver BiDi, Marionette)

#### General

* Fixed an internal race condition for Android that caused the returned user prompt text to be empty for both WebDriver BiDi and Marionette (Firefox bug 1848167).
* Both the `WebDriver:PerformActions` command in Marionette and the `browsingContext.performActions` command in WebDriver BiDi failed to correctly scroll for a `wheel` input source in environments that have a high-resolution display connected (Firefox bug 1849229).

#### WebDriver BiDi

* Added the `browsingContext.activate` command that allows users to bring the given background tab into foreground (Firefox bug 1841004).
* Added the `browsingContext.handleUserPrompt` command that allows users to accept or dismiss an open user prompt of type `alert`, `confirm`, or `prompt` (Firefox bug 1824197).
* Added the `browsingContext.userPromptOpened` event that is emitted when a user prompt of type `alert`, `confirm`, or `prompt` was opened (Firefox bug 1824224).
* Added a `type` field to the JSON payload that is returned to clients for identifying `event` messages or the success state of a command, which can be either `success` or `error` (Firefox bug 1844009).

#### Marionette

* Added support for all the Web Authentication extension commands, which allow users to authenticate themselves by Public Key Credentials (Firefox bug 1846574)
Changes for add-on developers
-----------------------------

### Removals

* Support for `browser_style` in the manifest keys `action`, `options_ui`, `page_action`, and `sidebar_action` for Manifest V3 extensions has been removed (Firefox bug 1830711). See Browser Styles' Manifest v3 migration for information about transitioning from `browser_style` in Manifest V3 extensions.
Older versions
--------------

* Firefox 117 for developers
* Firefox 116 for developers
* Firefox 115 for developers
* Firefox 114 for developers
* Firefox 113 for developers
* Firefox 112 for developers
* Firefox 111 for developers
* Firefox 110 for developers
* Firefox 109 for developers
* 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