Firefox 84 for developers
=========================

This article provides information about the changes in Firefox 84 that will affect developers. Firefox 84 was released on December 15, 2020.

**Note:** See also And now for … Firefox 84 on Mozilla Hacks.

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

### Developer Tools

* The Firefox Accessibility Inspector now supports displaying the keyboard tab order on a web page. This provides a better high-level overview of how the page will be navigated using the keyboard than tabbing through the links (Firefox bug 1654956).
### HTML

*No changes.*

### CSS

* We've added support for complex selectors to the `:not` pseudo-class (Firefox bug 933562).

#### Removals

* We've removed the proprietary `-moz-default-appearance` property values `scrollbar-small` (`scrollbar-width: thin` is used instead) and `scrollbar` (macOS only; `scrollbar-horizontal` and `scrollbar-vertical` are used instead) (Firefox bug 1673132).
### JavaScript

* Custom date/time formats specified as options to the `Intl.DateTimeFormat()` constructor can now include `fractionalSecondDigits` — the number of digits used to represent fractions of a second (Firefox bug 1645107).
### HTTP

*No changes.*

### Security

* Firefox now ensures that `localhost` URLs — such as `http://localhost/` and `http://dev.localhost/` — refer to the local host's loopback interface (e.g. `http://127.0.0.1`). As a result, resources loaded from `localhost` are now assumed to have been delivered securely (see Secure contexts), and also will not be treated as mixed content (Firefox bug 1220810, Firefox bug 1488740).
### APIs

* We've added support for the `PerformancePaintTiming` interface of the Paint Timing API (Firefox bug 1518999).
* The `Navigator.registerProtocolHandler()` method now only accepts two parameters: `scheme` and `url`. `title` has been removed (Firefox bug 1631464).

#### Media, WebRTC, and Web Audio

* The `MediaRecorder.start()` method now throws an `InvalidModificationError` if the number of tracks on the stream being recorded has changed (Firefox bug 1581139).

#### Removals

* The application cache has been removed — developers should use the Service Worker API instead (Firefox bug 1619673).
### WebAssembly

*No changes.*

### WebDriver conformance (Marionette)

* Added chrome scope support for `WebDriver:PerformActions` and `WebDriver:ReleaseActions` (Firefox bug 1365886).
* The new Fission-compatible API has been enabled by default now. To revert to the former API the `marionette.actors.enabled` preference has to be set to `false` (Firefox bug 1669169).
* Fixed `WebDriver:SwitchToWindow` to always switch back to the top-level browsing context (Firefox bug 1305822).
* Improved browsing context checks for `WebDriver:SwitchToParentFrame` (Firefox bug 1671622).
* Fixed a hang for `WebDriver:Back` encountered when the currently-selected `<iframe>` gets unloaded (Firefox bug 1672758).

#### Known bugs

* After page navigation, accessing a previously-retrieved element might not always raise a "stale element" error, and can also lead to a "no such element" error. To prevent this, set the `marionette.actors.enabled` preference to `false` (Firefox bug 1684827).
Changes for add-on developers
-----------------------------

* The `browsingData.remove()` API now supports removing a subset of data types by `cookieStoreId`.
Older versions
--------------

* 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
* Firefox 71 for developers
* Firefox 70 for developers
* Firefox 69 for developers
* Firefox 68 for developers
* Firefox 67 for developers
* Firefox 66 for developers
* Firefox 65 for developers
* Firefox 64 for developers
* Firefox 63 for developers
* Firefox 62 for developers
* Firefox 61 for developers
* Firefox 60 for developers
* Firefox 59 for developers
* Firefox 58 for developers
* Firefox 57 for developers
* Firefox 56 for developers
* Firefox 55 for developers
* Firefox 54 for developers
* Firefox 53 for developers