Back to Content

Firefox 87 release notes for developers

files/en-us/mozilla/firefox/releases/87/index.md

latest6.8 KB
Original Source

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

Developer Tools

  • Developers can now use the Page Inspector to simulate {{cssxref("@media/prefers-color-scheme", "prefers-color-scheme")}} media 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 {{cssxref(":target")}} pseudo-class for the currently selected element in addition to the pseudo-classes that were previously supported: {{cssxref(":hover")}}, {{cssxref(":active")}} and {{cssxref(":focus")}}, {{cssxref(":focus-within")}}, {{cssxref(":focus-visible")}}, and {{cssxref(":visited")}} (Firefox bug 1689899).
  • Firefox 87 sees a number of Page Inspector improvements and bug fixes related to inactive CSS rules:
    • The {{cssxref("table-layout")}} property is now marked as inactive for non-table elements (Firefox bug 1551571).
    • The {{cssxref("scroll-padding")}} properties (shorthand and longhand) are now marked as inactive for non-scrollable elements (Firefox bug 1551577).
    • The {{cssxref("text-overflow")}} property was previously incorrectly marked as inactive for some {{cssxref("overflow")}} values (Firefox bug 1671457).

HTML

No changes.

CSS

  • Some languages have digraphs that are always capitalized together, for example IJ in Dutch. The {{cssxref("::first-letter")}} pseudo-element now respects these digraphs and treats them as a single unit (Firefox bug 92176).
  • The {{HTMLElement("link")}} element is no longer matched by {{cssxref(":link")}}, {{cssxref(":visited")}}, or {{cssxref(":any-link")}}. This aligns the behavior in Firefox to existing behavior in Chrome and to a recent spec change (Firefox bug 1687538).

Removals

  • The following Firefox-specific theme-related media features have been disabled for use in web pages (Firefox bug 787521):

    • -moz-mac-graphite-theme
    • -moz-mac-lion-theme
    • -moz-maemo-classic
    • -moz-windows-classic
    • -moz-windows-compositor
    • -moz-windows-default-theme
    • -moz-windows-theme
    • -moz-scrollbar-end-backward
    • -moz-scrollbar-end-forward
    • -moz-scrollbar-start-backward
    • -moz-scrollbar-start-forward
    • -moz-scrollbar-thumb-proportional
    • -moz-menubar-drag
  • The non-standard values of {{cssxref("caption-side")}} (left, right, top-outside, and bottom-outside) have been removed and placed behind the layout.css.caption-side-non-standard.enabled flag (Firefox bug 1688695).

JavaScript

No changes.

HTTP

Security

No changes.

APIs

DOM

  • The {{domxref("Element.beforeinput_event", "beforeinput")}} event and {{domxref('InputEvent.getTargetRanges()', '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 beforeinput event is sent to an {{HTMLElement("input")}} element — or any element whose contenteditable attribute is set to true — immediately before the element's value changes. The getTargetRanges() method of the {{domxref("InputEvent")}} interface 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.enabled preference, which toggled between the new and old implementations, has therefore also been removed (Firefox bug 1669172).
  • WebDriver commands following a call to WebDriver:SwitchToFrame will 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:Uninstall now raises an unknown error when the id of the add-on to uninstall is unknown (Firefox bug 1693022).

Changes for add-on developers