files/en-us/mozilla/firefox/releases/101/index.md
This article provides information about the changes in Firefox 101 that will affect developers. Firefox 101 was released on May 31, 2022.
No notable changes.
The prefers-contrast media feature that is used to detect whether the user has specified a preference for higher (more) or lower (less) contrast in the presentation of web content is now available by default. This feature now also lets users specify a set of colors to use for the contrast through the new custom value (Firefox bug 1656363).
Three new viewport sizes have been introduced: small (s), large (l), and dynamic (d). These new sizes have added new viewport-percentage length units in addition to the existing ones - vh, vw, vmax, and vmin. The new viewport-percentage length units include svh, lvh, dvh, svw, lvw, dvw, svmax, lvmax, dvmax, svmin, lvmin, and dvmin (Firefox bug 1610815). Additionally, the units vb and vi are now supported by default (Firefox bug 1610815).
Support for the inline-size value for the contain property has been added. For more information, see (Firefox bug 1755565).
No notable changes.
HTMLMediaElement.preservesPitch is now supported without the moz prefix.
mozPreservesPitch is now an alias of preservesPitch, but is deprecated, and may be removed in future releases (Firefox bug 1652950).
HTMLInputElement.showPicker() is now supported, allowing the picker for an input element to be displayed when a user interacts with some other element, such as a button (Firefox bug 1745005).
DOMException is now a {{Glossary("serializable object")}}, so it can be cloned with {{DOMxRef("Window.structuredClone", "structuredClone()")}} or copied between workers using {{domxref("Worker.postMessage()", "postMessage()")}} (Firefox bug 1561357).
Constructable stylesheets are now supported, making it much easier to create reusable stylesheets for use with Shadow DOM.
The update includes the addition of a CSSStyleSheet() constructor for creating new stylesheets, the {{domxref("CSSStyleSheet.replace()")}} and {{domxref("CSSStyleSheet.replaceSync()")}} methods that can be used to add/replace CSS rules in the sheet, and the Document.adoptedStyleSheets and ShadowRoot.adoptedStyleSheets properties that are used to share sheets to a document and its shadow DOM subtrees.
See Firefox bug 1520690 for more information.
AV1 codec parameters are now properly parsed in media support queries.
This means that MediaCapabilities.decodingInfo(), HTMLMediaElement.canPlayType(), and MediaSource.isTypeSupported() will now accurately report support for playback for AV1 sources based on the provided codec parameters.
MediaCapabilities.decodingInfo() will also use the information to accurately report on "efficient decoding" of AV1 videos.
For more information, see Firefox bug 1757861.
maxFramerate is now supported for setting the maximum framerate that can be used to send an encoding (in {{domxref("RTCPeerConnection.addTransceiver()")}} and {{domxref("RTCRtpSender.setParameters()")}}).
Note that zero if a valid frame rate value, but is interpreted by Firefox as "no frame rate limit".
For more information, see Firefox bug 1611957.
prefers-color-scheme will respect the color-scheme of the embedder (previously prefers-color-scheme ignored the color-scheme of the embedder and triggered off either the device or browser theme).
This ensures that a favicon, for example, is always styled to match the theme of the elements that nest it, and not necessarily the (potentially different) theme of the device. (Firefox bug 1764354).Starting with this release of Firefox the WebDriver BiDi protocol will be enabled by default. A WebDriver BiDi session can be requested by using WebDriver classic (geckodriver, Marionette) and setting the webSocketURL capability to true when creating a new WebDriver session. The same capability will then contain the WebSocket end-point for BiDi clients to connect to.
The following commands and events are available:
Adds the session module including a partial implementation for the commands to globally subscribe (session.subscribe) to and unsubscribe (session.unsubscribe) from events, and the ability to create a direct WebDriver BiDi session (session.new) when not using WebDriver classic.
Adds the browsingContext module including the commands to open a new tab or window (browsingContext.create) or close such one (browsingContext.close), retrieve open browsing contexts (browsingContext.getTree) and to navigate within a browsing context (browsingContext.navigate). There is also support for the event when a browsing context got created (browsingContext.contextCreated).
Adds the log module including support for log events (log.entryAdded).
For more information, see the full bug list.
local and sync storage areas (Firefox bug 1758475)."action" manifest key and _execute_action special shortcut to the manifest commands key. Note that the {{WebExtAPIRef("browserAction")}} API and "browser_action" manifest key are only available in Manifest V2 extensions."background" manifest key property "persistent" can be set to false under the control of preferences: for Manifest V2, the <code>extensions.eventPages.enabled</code> preference, and in Manifest V3, the <code>extensions.manifestV3.enabled</code> preference."host_permissions" manifest key, which is available for Manifest V3 extensions.content object (that offered content.fetch, content.XMLHttpRequest, and content.WebSocket) is removed from the content script execution environment.