files/en-us/mozilla/firefox/releases/128/index.md
This article provides information about the changes in Firefox 128 that affect developers. Firefox 128 was released on July 9, 2024.
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).content property now supports alternative text for content that includes an image. The alternative text is then exposed to the browsers accessibility tree. (See Firefox bug 1281158 and Firefox bug 1896047).syntax descriptor of the {{cssxref("@property")}} at-rule now supports the <string> syntax component name. (See Firefox bug 1846635).align-tracks and justify-tracks have been removed. These properties were only implemented in Firefox and were recently dropped from the spec (Firefox bug 1900195).options.maxByteLength parameter to the SharedArrayBuffer() constructor.
The {{jsxref("SharedArrayBuffer.prototype.growable")}} and {{jsxref("SharedArrayBuffer.prototype.maxByteLength")}} properties indicate whether the buffer can grow, and its maximum allowed size, respectively.options.maxByteLength parameter to the ArrayBuffer() constructor.
The {{jsxref("ArrayBuffer.prototype.resizable")}} and {{jsxref("ArrayBuffer.prototype.maxByteLength")}} properties indicate whether the buffer can be resized, and its maximum allowed size, respectively.Accept header in default requests and image requests now includes the image/svg+xml MIME type (Firefox bug 1711622).Priority request and response header, which allows clients to hint at the expected relative priority for resources sent over a connection, and the HTTP/2 and HTTP/3 PRIORITY_UPDATE frames that allow the priority to be subsequently changed after the header has been sent (Firefox bug 1865040).CSSPropertyRule interface is now supported by default and represents a CSS @property at-rule. The interface allows you to get the values, including name, syntax, inherits, and initialValue, of CSS custom properties defined using the @property at-rule (Firefox bug 1864818).registerProperty() method is now supported by default. It allows you to define CSS custom properties via JavaScript, which is similar to using the @property at-rule in CSS (Firefox bug 1864818).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)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)browsingContext.navigate where a navigation error would load an error page and cause subsequent commands to fail. (Firefox bug 1878690)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)input.setFiles command has been updated to throw an UnsupportedOperation error if the specified file does not exist. (Firefox bug 1887644)declarative_net_request manifest key, is now loaded when it contains unrecognized properties but is otherwise valid (Firefox bug 1886608).proxyDNS is now false when using SOCKS4 and true when using SOCKS5. Previously, it defaulted to false for SOCKS4 and SOCKS5 (Firefox bug 1741375)."asyncBlocking" in the addListener parameter extraInfoSpec (Firefox bug 1889897).overflow and underflow have been deprecated. Use of these events should be removed from extension documents before the release of Firefox 131 (Firefox bug 1898445).MAIN in {{WebExtAPIRef("scripting.executionWorld","ExecutionWorld")}} for the {{WebExtAPIRef("scripting")}} API, the addition of world to the {{WebExtAPIRef("contentScripts.register()")}} API, and support for world in the content_scripts manifest key (Firefox bug 1736575).about:blank, about:srcdoc, and data: URLs. This was implemented for {{WebExtAPIRef("scripting.executeScript")}}, {{WebExtAPIRef("scripting.insertCSS")}}, and {{WebExtAPIRef("scripting.removeCSS")}} in Firefox bug 1475831 and {{WebExtAPIRef("scripting.registerContentScripts")}} and {{WebExtAPIRef("scripting.updateContentScripts")}} in Firefox bug 1853411 through the introduction of matchOriginAsFallback to {{WebExtAPIRef("scripting.RegisteredContentScript")}}.http, https, and file: URLs (Firefox bug 1411641).content_scripts now supports match_origin_as_fallback and {{WebExtAPIRef("contentScripts.register")}} matchOriginAsFallback, enabling scripts to be injected into about:, data:, and blob: pages when the document origin is opaque due to the use of CSP or iframe sandbox (Firefox bug 1475831 and Firefox bug 1896669). In addition, scripts registered with the content_scripts manifest key can now only run in blob: pages when match_origin_as_fallback is true (Firefox bug 1897113).domainType (Firefox bug 1797408).browser_specific_settings.gecko now load with a warning. Previously, these extensions errored on installation. This ensures that if a new browser_specific_settings.gecko property is added, extensions using that new property will load in versions of Firefox back to this release (Firefox bug 1757293).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 original explainer and the proposed spec. This experiment can be enabled for websites via origin trial or in the browser by setting the preference to 1. (Firefox bug 1900929).