Firefox 128 for developers
This article provides information about the changes in Firefox 128 that affect developers. Firefox 128 is the current Beta version of Firefox and ships on July 9, 2024.
Changes for web developers
Developer Tools
HTML
Removals
CSS
- Relative color syntax is now enabled by default. Relative color syntax allows you to create a color value relative to an origin color, and can allow you to change a color in a different color space using color functions (Firefox bug 1900251).
- The
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).
Removals
- The masonry layout properties
align-tracks
andjustify-tracks
have been removed. These properties were only implemented in Firefox and were recently dropped from the spec (Firefox bug 1900195).
JavaScript
Removals
SVG
Removals
HTTP
- The HTTP
Accept
header in default requests and image requests now includes theimage/svg+xml
MIME type (Firefox bug 1711622).
Removals
Security
Removals
APIs
RTCRtpReceiver.getParameters()
andRTCRtpSender.getParameters()
are now supported, returning an object that describes the current codecs used for the encoding and transmission of media on the receiver and sender tracks, respectively. (Firefox bug 1534687).Request.bytes()
andResponse.bytes()
are now supported as a convenient way to get aUint8Array
from aRequest
andResponse
, respectively. (Firefox bug 1896475).PushMessageData.bytes()
is now supported for returning the data from a push message as an array of bytes in aUint8Array
object. (Firefox bug 1897871).Blob.bytes()
is supported for returning the data from aBlob
as an array of bytes in aUint8Array
object. (Firefox bug 1896509).-
MediaKeys.getStatusForPolicy()
is now supported for checking whether the CDM module, which is used to decrypt DRM protected content, would allow the presentation of encrypted media data for a "hypothetical" key based on specified policy requirements such as the High-bandwidth Digital Content Protection (HDCP) version supported by the system. This provides an application with a simple mechanism to know in advance whether playback at the optimal resolution will be allowed, without having to create a media key session or fetch a real license. (Firefox bug 1878714). RTCRtpTransceiver.setCodecPreferences()
is now supported for setting the codecs that a WebRTC local peer is able to use for decoding received data, in its preferred codec order. Web applications can use this to cause the remote peer to choose a preferred codec, and to disable the negotiation of specific codecs — including those used for retransmission, redundancy, and forward error correction. (Firefox bug 1396922).- Serialization of declarative shadow DOM, including the methods
ShadowRoot.getHTML()
andElement.getHTML()
, and associated propertiesShadowRoot.serializable
andHTMLTemplateElement.shadowRootSerializable
.
DOM
Media, WebRTC, and Web Audio
Removals
WebAssembly
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 thepermissions.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'sresponseCompleted
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 anUnsupportedOperation
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
- Adds the ability to enable and disable rules in static declarative net request rulesets with
declarativeNetRequest.updateStaticRules
and list disabled rules for a static ruleset withdeclarativeNetRequest.getDisabledRuleIds
(Firefox bug 1810762) - A static declarative net request rule, one defined through the
declarative_net_request
manifest key, is now loaded when it contains unrecognized properties but is otherwise valid (Firefox bug 1886608. - The default value of
proxy.settings
propertyproxyDNS
is nowfalse
when using SOCKS4 andtrue
when using SOCKS5. Previously, it defaulted tofalse
for SOCKS4 and SOCKS5 (Firefox bug 1741375). - The non-standard Web API events
overflow
andunderflow
have been deprecated. Use of these events should be removed from extension documents before the release of Firefox 131 (Firefox bug 1898445). - Support is now provided for scripts to run in the web page execution environment. This is provided through support for
MAIN
inExecutionWorld
for thescripting
API, the addition ofworld
to thecontentScripts.register()
API, and support forworld
in thecontent_scripts
manifest key (Firefox bug 1736575). - The
scripting
API can now inject scripts and CSS into sandboxed pages withabout:blank
,about:srcdoc
, anddata:
URLs. This was implemented forscripting.executeScript
,scripting.insertCSS
, andscripting.removeCSS
in Firefox bug 1475831 andscripting.registerContentScripts
andscripting.updateContentScripts
in Firefox bug 1853411 through the introduction ofmatchOriginAsFallback
toscripting.RegisteredContentScript
. - The manifest key
content_scripts
now supportsmatch_origin_as_fallback
andcontentScripts.register
matchOriginAsFallback
, enabling scripts to be injected intoabout:
,data:
, andblob:
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 thecontent_scripts
manifest key can now only run inblob:
pages whenmatch_origin_as_fallback
istrue
(Firefox bug 1897113).
Removals
Other
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 HTTPAccept
header in default requests and image requests can be configured to indicate support for theimage/jxl
MIME type. (Firefox bug 1711622).
Older versions
- Firefox 127 for developers
- Firefox 126 for developers
- Firefox 125 for developers
- Firefox 124 for developers
- Firefox 123 for developers
- Firefox 122 for developers
- Firefox 121 for developers
- Firefox 120 for developers
- Firefox 119 for developers
- Firefox 118 for developers
- Firefox 117 for developers
- Firefox 116 for developers
- Firefox 115 for developers
- 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