Firefox 82 for developers
=========================

This article provides information about the changes in Firefox 82 that will affect developers. Firefox 82 was released on October 20, 2020.

**Note:** See also Coming through with Firefox 82 on Mozilla Hacks.

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

### Developer tools

* You can now inspect server-sent events using the Network Monitor (Firefox bug 1640857).
* The Network Monitor's *Message* panel has now been merged with the *Response* panel — messages (e.g. from WebSockets or server-sent events) can now be viewed right below the responses list (Firefox bug 1636421).
### HTML

* The color picker used for `<input type="color">` is now keyboard-accessible on Windows (Firefox bug 1526820).
* The `allow-downloads` flag for the `<iframe sandbox>` attribute is now supported (Firefox bug 1656212).
### CSS

* Support for the new `::file-selector-button` pseudo-element has been added. This pseudo-element represents the file selection button inside an `<input type="file">` element (Firefox bug 1635675, Firefox bug 1662478).
* We have improved error recovery for the `:is()` and `:where()` pseudo-classes. These pseudo-classes now accept a forgiving selector list, where an invalid selector in the list will not render the entire list invalid (Firefox bug 1664718).
* `appearance: button` now applies only to buttons; the `button` value of `appearance` will otherwise behave as `auto` (Firefox bug 1662703).

#### Removals

* We have removed the proprietary `:-moz-user-disabled` pseudo-class (Firefox bug 1664432).
### HTTP

* The `Content-Disposition` header's `inline` directive will now be ignored if the HTML `<a>` element's `download` attribute is specified (for same-origin URLs). Note that if specified the `Content-Disposition` header `filename` will be used in preference to a filename specified in the `download` attribute (Firefox bug 1658877).
### APIs

#### New APIs

* The Media Session API is now enabled by default (Firefox bug 1665496).

#### DOM

* `Document.execCommand()` is no longer supported for nested/recursive calls, which will now return `false` (Firefox bug 1634262).
* `Element.setPointerCapture()` throws the `NotFoundError` exception if the pointer `id` is invalid, as per the specification (Firefox bug 1662124). Previously it wrongly threw an `InvalidPointerId` exception.
* The `window.name` property is reset to an empty string if a tab loads a page from a different domain, and restored if the original page is reloaded (e.g. via the "back" button). This prevents an untrusted page from accessing any information that the previous page might have stored in the variable. This change may impact frameworks that use `window.name` for cross-domain messaging (Firefox bug 444222).
### WebDriver conformance (Marionette)

* To simulate a more realistic user navigation, all supported navigation commands have been moved to the parent process (Firefox bug 1612831).
* We updated the checks for the current or top-level browsing context for all the commands to improve conformance with the WebDriver specification (Firefox bug 1493108).
* Fixed a bug in `WebDriver:ElementClick` that sometimes caused the command to return before the click event was actually synthesized (Firefox bug 1394354).
Changes for add-on developers
-----------------------------

* The `tabs.captureTab()` and `tabs.captureVisibleTab()` methods now capture an area of the relevant tab's content specified by the `rect` property of the provided `options` object, or the visible area of the tab if this property is not provided (Firefox bug 1636508). Previously the `rect` property was not available, and these methods always captured the visible area of the relevant tab.
* Read-only access to `cookieStoreId` no longer requires the `"cookies"` permission (Firefox bug 1662329).
Older versions
--------------

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