Firefox 133 for developers
This article provides information about the changes in Firefox 133 that affect developers. Firefox 133 was released on November 26, 2024.
Changes for web developers
HTML
- The
viewport <meta>
tag now supports theinteractive-widget
attribute, this influences the size of the viewport when common UI widgets, such as virtual keyboards, are added to the screen. (Firefox bug 1831649 and Firefox bug 1920755).
CSS
No notable changes
JavaScript
-
Support for
Uint8Array
methods to ease conversions between base64- and hex-encoded strings and byte arrays. (Firefox bug 1917885 and Firefox bug 1862220).The new methods include:
Uint8Array.fromBase64()
andUint8Array.fromHex()
static methods for constructing a newUint8Array
object from a base64- and hex-encoded string, respectively.Uint8Array.prototype.setFromBase64()
, andUint8Array.prototype.setFromHex()
instance methods for populating an existingUint8Array
object with bytes from a base64- or hex-encoded string.Uint8Array.prototype.toBase64()
andUint8Array.prototype.toHex()
instance methods, which return a base64- and hex- encoded string from the data in aUint8Array
object.
APIs
-
The
WorkerNavigator.permissions
property is now supported, allowing the Permissions API to be used in workers as well as the main window thread. (Firefox bug 1193373). -
The
EventSource
interface to handle server-sent events is now supported in service workers. (Firefox bug 1681218). -
The
ImageDecoder
,ImageTrackList
, andImageTrack
interfaces of the WebCodecs API are now supported, enabling the decoding images from the main and worker threads. (Firefox bug 1923755). -
The
beforetoggle
andtoggle
events of theHTMLElement
interface are now fired at<dialog>
elements immediately before and after they are shown or hidden, respectively. Thebeforetoggle
can be used, for example, to apply/remove classes that control the animation of a dialog, or reset the state of a dialog form before it is shown. Thetoggle
event can be used to get change notification of the open state, which otherwise requires aMutationObserver
. (Firefox bug 1876762). -
The
keepalive
initialization option to the globalfetch()
method and theRequest()
constructor are now supported, along with theRequest.keepalive
property.keepalive
can be set totrue
to prevent the browser from aborting the associated request if the page that initiated it is unloaded before the request is complete. This might be used, for example, to send analytics at the end of a session, even if the user navigates away from or closes the page.Using
fetch()
withkeepalive
has some advantages over usingNavigator.sendBeacon()
for the same purpose, such as allowing the use of HTTP methods other thanPOST
, customizable request properties, and access the server response via the fetchPromise
fulfillment. It is also available in service workers. (Firefox bug 1906952, Firefox bug 1923044). -
The
onwaitingforkey
content attribute can now be specified on<audio>
/<video>
elements to set an inline event handler for thewaitingforkey
event. (Firefox bug 1925952). -
ServiceWorkerContainer
is now exposed in all worker contexts viaWorkerNavigator.serviceWorker
, allowing workers to inspect and manage the service worker registrations associated with the current origin. PreviouslyServiceWorkerContainer
was only available in the main thread, viaNavigator.serviceWorker
. (Firefox bug 1113522). -
The
name
property ofPerformanceNavigationTiming
now omits text fragments from the returned URL, matching the specification. This kind ofPerformanceResourceTiming
object is returned byPerformance.getEntries()
for entries with anentryType
ofnavigation
. (Firefox bug 1919565).
Removals
- The
options.shadowRoots
argument for passingShadowRoot
objects to theDocument.caretPositionFromPoint()
method has been withdrawn from the release. The feature can be tested in the Nightly release and is expected to re-release in future. (Firefox bug 1914596).
WebDriver conformance (WebDriver BiDi, Marionette)
WebDriver BiDi
- Added support for the
url
argument for thenetwork.continueRequest
command, allowing requests to be transparently redirected to another URL (Firefox bug 1898158). - Updated
browsingContext.print
to throw anInvalidArgumentError
when used with incorrect dimensions (Firefox bug 1886382). - Fixed
script.evaluate
andscript.callFunction
to allow the use ofdocument.open
in sandbox realms (Firefox bug 1918288). - Fixed a bug where the
browsingContext.load
event might contain the wrong navigation ID if a same-document navigation occurred during the main navigation (Firefox bug 1922327). - Fixed another edge case where commands could fail with an
UnknownError
due to navigation (Firefox bug 1923899).
Marionette
- Updated Marionette to better handle window positioning on Linux with Wayland (Firefox bug 1857571).
- Fixed a bug that could leave an empty
style
attribute on an element when trying to click or clear it (Firefox bug 1922709). - Updated the error message sent for
UnexpectedAlertOpen
errors to include the text of the corresponding alert (Firefox bug 1924469).
Changes for add-on developers
cookies.get
now orders cookies according to the 5.4 The Cookie Header section of the HTTP State Management Mechanism (RFC 6265). This impacts call results when a cookie has variants with different path components. Previously, the earliest created cookie was matched bycookies.get
,cookies.remove
,cookies.set
, andcookies.getAll
. After this change, the cookie with the longest matching path is returned. (Firefox bug 1798655)- Fixed a bug in the
declarativeNetRequest
API that prevented rule registration after a browser restart (Firefox bug 1921353). This bug affected extensions that rely ondeclarativeNetRequest.updateDynamicRules
ordeclarativeNetRequest.updateEnabledRulesets
. This fix has also been backported to Firefox ESR 128.5 and Firefox ESR 115.18. - Fixed a bug that prevented
window.close()
called from a sidebar from closing the sidebar.
Experimental web features
These features are newly shipped in Firefox 133 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.
-
contenteditable plaintext-only value:
dom.element.contenteditable.plaintext-only.enabled
.The
plaintext-only
value of thecontenteditable
global attribute indicates that the element is editable; rich text formatting is disabled and any formatting in pasted text is automatically stripped. (Firefox bug 1922723.) -
:has-slotted CSS pseudo-class:
layout.css.has-slotted-selector.enabled
.The
:has-slotted
pseudo-class is used to style elements in<template>
that have content added to a<slot>
element when rendering a web component. (Firefox bug 1921747.)
Older versions
- Firefox 132 for developers
- Firefox 131 for developers
- Firefox 130 for developers
- Firefox 129 for developers
- Firefox 128 for developers
- 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