Firefox 115 for developers
This article provides information about the changes in Firefox 115 that affect developers. Firefox 115 was released on July 04, 2023.
Changes for web developers
HTML
- The
modulepreload
keyword for therel
attribute of the<link>
element is now supported. This allows early (and asynchronous) fetching of module scripts and their dependencies in parallel, which are then stored in the document's module map (Firefox bug 1425310).
CSS
- The CSS
animation-composition
property is now supported by default. You can use this property to specify the composite operation to use when multiple animations affect the same property simultaneously. (Firefox bug 1823862). - The
supports-conditions
in the CSS@import
at-rulesupports()
function is now supported by default. This feature allows stylesheets to be imported only if the specified feature is supported in the user's browser. (Firefox bug 1830779).
JavaScript
- The
Array.fromAsync()
static method is now supported. The method asynchronously returns a new, shallow-copiedArray
instance from an async iterable, iterable, or array-like object (Firefox bug 1795816). - The
Array
andTypedArray
methodsArray.toReversed()
,Array.toSorted()
,Array.toSpliced()
,Array.with()
,TypedArrays.toReversed()
,TypedArrays.toSorted()
, andTypedArrays.with()
are now supported. These methods return a new array with elements that have been shallow copied (similarly named methods without theto
prefix modify the array elements in place). (Firefox bug 1811057).
HTTP
- The
Sec-Purpose
HTTP fetch metadata request header is now included in requests to Prefetch resources. This allows servers to provide any special handling that might be needed, such as adjusting the caching expiry for the request (Firefox bug 1836328).
APIs
- The
Response.json()
static method is now supported, making it easier to constructResponse
objects for returning JSON data. The method will be useful for service workers and any other code that needs to respond to browser requests with JSON data (Firefox bug 1758943). - The
URL.canParse()
static method can now be used to parse and validate an absolute URL, or a relative URL and base URL. This provides a fast and easy way to check if URLs are valid, instead of constructing them within atry...catch
block and handling exceptions. (Firefox bug 1823354). - The
URLSearchParams.has()
andURLSearchParams.delete()
methods now support the optionalvalue
argument. This allows matching a search parameter on both thename
andvalue
, making it possible to work with query strings that contain multiple search parameters that have the same name. (Firefox bug 1831587). - The
RTCRtpReceiver.jitterBufferTarget
attribute is now supported, allowing a WebRTC application to influence the tradeoff between playout delay and the risk of running out of audio or video frames due to network jitter. (Firefox bug 1592988).
Removals
- The deprecated
mozPreservesPitch
alias of HTMLMediaElement.preservesPitch has been disabled by default, and may be fully removed in a future release (Firefox bug 1831205).
WebDriver conformance (WebDriver BiDi, Marionette)
WebDriver BiDi
- The payload now always includes stack traces for responses and events without capping it after the first 50 "throw" usages in a realm (Firefox bug 1791715).
- When using
input.performActions
, any ongoing wheel transaction is now reset at the end of the command to not retain state and to not leak into following actions within the same tab (Firefox bug 1821733). - When using a
pointerMove
action withinput.performActions
, an invalid element origin now correctly raises a "no such error" failure (Firefox bug 1832028). - A race condition for the initial page load has been fixed that could appear when directly interacting with a newly opened tab or window (Firefox bug 1832891).
Marionette
- Both the commands
WebDriver:GetComputedLabel
andWebDriver:GetComputedRole
now correctly wait for the requested accessibility object for an element to exist if it just got inserted into the DOM (Firefox bug 1828816). - All instances of
Window.setTimeout()
in our privileged code running in content processes now use a variant timer that is not affected by the throttling of the timers in case the given tab for automation is in the background.
Changes for add-on developers
- To support its deprecation from Manifest V3 extensions, manifest key property
browser_style
defaults tofalse
inoptions_ui
andsidebar_action
for Manifest V3 extensions (Firefox bug 1830710). See Manifest v3 migration for information about transitioning frombrowser_style
in Manifest V3 extensions. - The
commands.onChanged
event, which enables web extensions to listen for changes to command shortcuts, has been added (Firefox bug 1801531). - Support has been added for
storage.session
, which provides the ability to store data in memory for the duration of the browser session (Firefox bug 18237131).
Older versions
- Firefox 114 for developers
- Firefox 113 for developers
- Firefox 112 for developers
- Firefox 111 for developers
- Firefox 110 for developers
- Firefox 109 for developers
- Firefox 108 for developers
- Firefox 107 for developers
- Firefox 106 for developers
- Firefox 105 for developers
- Firefox 104 for developers
- Firefox 103 for developers
- Firefox 102 for developers
- Firefox 101 for developers
- Firefox 100 for developers
- Firefox 99 for developers
- Firefox 98 for developers
- Firefox 97 for developers
- Firefox 96 for developers
- Firefox 95 for developers
- Firefox 94 for developers
- Firefox 93 for developers
- Firefox 92 for developers
- Firefox 91 for developers
- Firefox 90 for developers
- Firefox 89 for developers
- Firefox 88 for developers
- Firefox 87 for developers
- Firefox 86 for developers
- Firefox 85 for developers
- Firefox 84 for developers