Firefox 128 for developers

This article provides information about the changes in Firefox 128 that affect developers. Firefox 128 was released on July 9, 2024.

Changes for web developers

HTML

  • The target attribute of the <base> element now disallows ASCII newlines, tabs, or the < character, changing the value to _blank if any are present. This prevents dangling markup injection attacks that use an unclosed target attribute (Firefox bug 1835157).

CSS

Removals

JavaScript

HTTP

APIs

Media, WebRTC, and Web Audio

Removals

WebDriver conformance (WebDriver BiDi, Marionette)

General

  • We now support the extended "unhandledPromptBehavior" capability which can either be a string (WebDriver classic) or a JSON object (WebDriver BiDi). The object type offers more capabilities for WebDriver BiDi like handling "beforeunload" prompts. (Firefox bug 1884650)

WebDriver BiDi

  • Added support for the "BiDi flag" of a WebDriver Session to align with the WebDriver BiDi specification. This allows to identify sessions created for or upgraded to WebDriver BiDi. (Firefox bug 1898719)
  • Added support for several arguments for the network.continueRequest command, which now allows to modify headers, cookies, method and body of a request before it is sent over the network. (Firefox bug 1850680)
  • Added support for the userContext argument in the permissions.setPermission command, which allows to isolate a permission to a specific user context (implemented as containers in Firefox). (Firefox bug 1894217)
  • Fixed a bug in browsingContext.navigate where a navigation error would load an error page and cause subsequent commands to fail. (Firefox bug 1878690)
  • We fixed the order in which network.responseCompleted events are emitted for redirects. The original request's responseCompleted is now always emitted before the events for the redirect. (Firefox bug 1879580)
  • To align with the current Firefox behavior, we introduced the workaround to not partition cookies which are added with the "storage.setCookie" command for the same domain as the page loaded in the targeted context. (Firefox bug 1898222)
  • The input.setFiles command has been updated to throw an UnsupportedOperation error if the specified file does not exist. (Firefox bug 1887644)

Marionette

  • Added support for the "HTTP flag" of a WebDriver Session to align with the WebDriver classic specification. This allows to identify sessions created for WebDriver classic. (Firefox bug 1884090)
  • Added support for the Permissions API in WebDriver Classic. (Firefox bug 1524074)

Changes for add-on developers

Experimental web features

These features are newly shipped in Firefox 128 but are disabled by default. To experiment with them, search for the appropriate preference on the about:config page and set it to true. You can find more such features on the Experimental features page.

  • image/jxl MIME type in Accept header for default and image requests: image.jxl.enabled. The HTTP Accept header in default requests and image requests can be configured to indicate support for the image/jxl MIME type. (Firefox bug 1711622).
  • Cookies Having Independent Partitioned State (CHIPS): network.cookie.CHIPS.enabled. CHIPS, or "partitioned cookies", allow developers to opt a cookie into partitioned storage using the partitioned directive of the Set-Cookie HTTP header. When set, cookies have separate storage for each top-level site, and can only be read within the same top-level site they were set on and its subdomains. This blocks cross-site tracking, while still enabling legitimate uses of third-party cookies such as persisting state of embedded maps or chat widgets across different subdomains of a site. (Firefox bug 1898253).
  • Privacy Preserving Attribution API (PPA): dom.origin-trials.private-attribution.state. PPA API provides an alternative to user tracking for ad attribution using the new navigator.privateAttribution object with saveImpression() and measureConversion() methods. Read more about PPA in the explainer. This experiment can be enabled for websites via origin trial or in the browser by setting the preference to 1. (Firefox bug 1900929).

Older versions