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



  • 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-rule supports() 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).




  • The Response.json() static method is now supported, making it easier to construct Response 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 a try...catch block and handling exceptions. (Firefox bug 1823354).
  • The URLSearchParams.has() and URLSearchParams.delete() methods now support the optional value argument. This allows matching a search parameter on both the name and value, 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).


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 with input.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).


  • Both the commands WebDriver:GetComputedLabel and WebDriver: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

Older versions