Firefox 89 for developers
=========================

This article provides information about the changes in Firefox 89 that will affect developers. Firefox 89 was released on June 1, 2021.

**Note:** See also Looking fine with Firefox 89 on Mozilla Hacks.

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

### Developer Tools

*No changes.*

### HTML

*No changes.*

### CSS

* The `forced-colors` media feature has been implemented (Firefox bug 1659511).
* The `ascent-override`, `descent-override`, and `line-gap-override` `@font-face` descriptors have been implemented (Firefox bug 1681691 and Firefox bug 1704494).
* The `type()` function for `image/image-set()` has been implemented (Firefox bug 1695404).
* The `aspect-ratio` CSS property is now supported (Firefox bug 1672073).
### JavaScript

* Top-level `await` is now enabled by default (Firefox bug 1681046).
* ArrayBuffers can now be created with a length greater than 2GB-1 (up to 8GB) on 64-bit systems (Firefox bug 1703505).
### HTTP

*No changes.*

### APIs

#### DOM

* `PerformanceEventTiming` is now enabled by default (Firefox bug 1701029).
* The content of `<input>` and `<textarea>` elements can now be manipulated using `Document.execCommand()` commands by default, preserving edit history and providing parity with other browsers, without `contentEditable` or any lengthy workarounds required (Firefox bug 1220696).

#### Removals

* The following sensor events and their associated handlers have been removed (primarily for better compatibility with other major browser engines, and to address concerns related to privacy leaks):
    + `DeviceProximityEvent` and its event handler `window.ondeviceproximity` (Firefox bug 1699707).
    + `UserProximityEvent` and its event handler `window.onuserproximity`) (Firefox bug 1699707).
    + `DeviceLightEvent` and its event handler `window.ondevicelight` (Firefox bug 1701824).
### WebDriver conformance (Marionette)

#### Removals

* The `rotatable` capability that is not part of the WebDriver specification is no longer used (Firefox bug 1697630).
Changes for add-on developers
-----------------------------

* Dynamic JS module imports are now working in WebExtension content scripts (Firefox bug 1536094).
* Extension resources listed in web\_accessible\_resources can be loaded regardless of the request's CORS mode (Firefox bug 1694679).
* Firefox's UI has been redesigned, which affects usage of the `theme` API. The `tab_background_separator` and `toolbar_field_separator` properties are no longer supported. The `tab_line` and `toolbar_vertical_separator` will behave differently. For more information, see Changes to themeable areas of Firefox in version 89.
* The `pageAction` button can no longer be pinned or unpinned from the address bar, because the three-dot meatball menu is no longer visible by default (Firefox bug 1691454). As a result, the `pinned` property of the `page_action` manifest key no longer has any effect (Firefox bug 1703537).
* The "Remove from Address Bar" context menu item has been removed from the `pageAction` button (Firefox bug 1704474). For alternatives to this functionality, see Firefox bug 1712556.
Older versions
--------------

* 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
* 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