Firefox 117 release notes for developers
This article provides information about the changes in Firefox 117 that affect developers. Firefox 117 was released on August 29, 2023.
Changes for web developers
>HTML
No notable changes.
CSS
-
The CSS Nesting module is now supported in Firefox, along with the
&nesting selector. This allows developers to write nested CSS, which helps with the readability, modularity, and maintainability of CSS stylesheets. It also potentially helps reduce CSS file size, decreasing download sizes. (Firefox bug 1835066, Firefox bug 1840781) -
The
math-styleandmath-depthproperties are now supported, as well as themathvalue for thefont-sizeproperty (Firefox bug 1845516). -
The
contain-intrinsic-size: auto nonesyntax is now supported, which allows for using the last-remembered size of an element if possible and falls back tocontain-intrinsic-size: noneotherwise. This is useful for grid and multi-column layouts to allow elements to be laid out as though they have no contents instead of 0px height (Firefox bug 1835813).
JavaScript
No notable changes.
SVG
- Inline SVGs now support
<script>elements withtype="module",defer, andasyncattributes. This allows SVGs to use modern JavaScript features, including ES modules, and to load scripts asynchronously (Firefox bug 1839954).
HTTP
-
Fixed a bug where the Content-Security-Policy
'strict-dynamic'source expression was not being enforced indefault-srcdirectives. The behavior now matches the specification wheredefault-srcdirective values are used as a fallback whenscript-srcis not provided (Firefox bug 1313937). -
The
Rangeheader is now a CORS-safelisted request header when the value is a single byte range (e.g.,bytes=100-200). This allows theRangeheader to be used in cross-origin requests without triggering a preflight request, which is useful for requesting media and resuming downloads (Firefox bug 1733981).
APIs
- The
CanvasRenderingContext2D.getContextAttributes()method can now be used to get the 2D context attributes being used by the browser (Firefox bug 1517786). - The
ReadableStream.from()static member is now supported, allowing developers to construct a readable stream from any iterable or async iterable object (Firefox bug 1772772). - WebRTC Encoded Transforms are now supported, allowing web applications to modify incoming and outgoing WebRTC encoded video and audio frames using a
TransformStreamrunning in a worker. The supported interfaces include:RTCRtpScriptTransform,RTCRtpScriptTransformer,RTCRtpSender.transform,RTCRtpReceiver.transform,RTCEncodedVideoFrame, andRTCEncodedAudioFrame, and theRTCTransformEventand workerrtctransformevent (Firefox bug 1631263). CSSStyleRulenow inherits fromCSSGroupingRuleinstead of directly fromCSSRule. As a result, it additionally implements the propertycssRulesand the methodsdeleteRule()andinsertRule()(Firefox bug 1846251).
WebDriver conformance (WebDriver BiDi, Marionette)
WebDriver BiDi
- Added the
browser.closecommand that allows users to terminate all WebDriver sessions and close the browser (Firefox bug 1829334). - Added the
browsingContext.setViewportcommand that allows users to change the dimensions of a top level browsing context (Firefox bug 1838664). - Added the
browsingContext.fragmentNavigatedevent which is emitted for same-document navigations (Firefox bug 1841039). - Added support for the
backgroundargument of thebrowsingContext.createcommand, which will force the new context to be created in the background. This argument is optional and defaults tofalse, meaning thatbrowsingContext.createnow opens new contexts in the foreground by default (Firefox bug 1843507). - Added support for the
clipargument of thebrowsingContext.captureScreenshotcommand, which allows to restrict the screenshot either to a specific area or to an element. When clipping to an element, you can optionally scroll the element into view before taking the screenshot (Firefox bug 1840998). - All commands and events related to a navigation will now provide a
navigationid, which is aUUIDidentifying a specific navigation. This property is available in thebrowsingContext.navigateresponse, in thebrowsingContext.load,browsingContext.domContentLoaded,browsingContext.fragmentNavigatedevents, as well as in allnetworkevents created for a navigation request (Firefox bug 1763122, Firefox bug 1789484, Firefox bug 1805405). headersandcookiesinnetworkevents are now serialized asnetwork.BytesValue, which will provide a better support for non-UTF8 values (Firefox bug 1842619).- The
browsingContext.createcommand will now wait until the created context has a valid size (Firefox bug 1847044).
Developer tools
-
The Network Monitor now shows information about proxied requests, including the proxy address, the proxy status, and the proxy HTTP version in the Headers tab (Firefox bug 1707192).
-
The area selected by the Measuring Tool can now be resized and moved using keyboard shortcuts. Pressing the arrow keys moves the selected area, while pressing Ctrl + arrow keys (or Cmd + arrow keys on a Mac) resizes the selected area. Holding down the Shift key accelerates the moving and resizing actions when using these key combinations (Firefox bug 1262782).
-
Properties that are not supported in highlight pseudo-elements (
::highlight(),::target-text,::spelling-error,::grammar-error, and::selection) are now reported in the Page Inspector CSS rules panel (Firefox bug 1842157).