Firefox 87 for developers
This article provides information about the changes in Firefox 87 that will affect developers. Firefox 87 was released on March 23, 2021.
Note: See also In March, we see Firefox 87 on Mozilla Hacks.
Changes for web developers
- Developers can now use the Page Inspector to simulate
prefers-color-schememedia queries, without having to change the operating system to light or dark mode (Firefox bug 1679408 and Firefox bug 1692272).
- Developers can now use the Page Inspector to toggle the
:targetpseudo-class for the currently selected element in addition to the pseudo-classes that were previously supported:
:visited(Firefox bug 1689899).
- Firefox 87 sees a number of Page Inspector improvements and bug fixes related to inactive CSS rules:
table-layoutproperty is now marked as inactive for non-table elements (Firefox bug 1551571).
scroll-paddingproperties (shorthand and longhand) are now marked as inactive for non-scrollable elements (Firefox bug 1551577).
text-overflowproperty was previously incorrectly marked as inactive for some
overflowvalues (Firefox bug 1671457).
- Some languages have digraphs that are always capitalized together, for example
IJin Dutch. The
::first-letterpseudo-element now respects these digraphs and treats them as a single unit (Firefox bug 92176).
<link>element is no longer matched by
:any-link. This aligns the behavior in Firefox to existing behavior in Chrome and to a recent spec change (Firefox bug 1687538).
- The following Firefox-specific theme-related media features have been disabled for use in web pages (Firefox bug 787521):
- The non-standard values of
bottom-outside) have been removed and placed behind the
layout.css.caption-side-non-standard.enabledflag (Firefox bug 1688695).
- Some enterprise authentication services require that TLS client certificates be sent in CORS preflight requests. Users of these services can enable this (non-specification compliant) behavior using the
network.cors_preflight.allow_client_certpreference (Firefox bug 1511151).
- The default
Referrer-Policyhas been changed to
no-referrer-when-downgrade), reducing the risk of leaking referrer information in cross-origin requests (Firefox bug 1589074).
Content-Lengthhas been added to the list of CORS-safelisted response headers (Firefox bug 1460299).
getTargetRanges()method are now enabled by default. They allow web apps to override text edit behavior before the browser modifies the DOM tree, and provide more control over input events to improve performance. The global
beforeinputevent is sent to an
<input>element — or any element whose
contenteditableattribute is set to
true— immediately before the element's value changes. The
getTargetRanges()method of the
InputEventinterface returns an array of static ranges that will be affected by a change to the DOM if the input event is not canceled.
WebDriver conformance (Marionette)
- The work of rewriting Marionette to support Fission (site-isolation) has been finished, so the old Marionette implementation has been removed. The
marionette.actors.enabledpreference, which toggled between the new and old implementations, has therefore also been removed (Firefox bug 1669172).
- WebDriver commands following a call to
WebDriver:SwitchToFramewill no longer fail with a "no such window" error if the frame's content hasn't yet finished loading (Firefox bug 1691348).
- After a cross-group page navigation, accessing a previously-retrieved element will now always raise a "stale element" error; there is no longer a chance that this action will lead to a "no such element" error (Firefox bug 1690308).
Addon:Uninstallnow raises an
unknown errorwhen the id of the add-on to uninstall is unknown (Firefox bug 1693022).
Changes for add-on developers
- nativeMessaging is now an optional permission (Firefox bug 1630415).
- Added support for querying and setting color management related features with
browserSettings.colorManagement(Firefox bug 1719688) and (Firefox bug 1714428).
- 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
- Firefox 57 for developers
- Firefox 56 for developers