- 01
Vertical Tabs: You can now keep more — or fewer — pinned tabs in view for quicker access to important windows. Just drag the divider to resize your pinned tabs section.
- 02
Custom Search Engines: Firefox now supports adding even more search engines. To add a custom engine, right-click a search field of a supported website and select “Add Search Engine”, or go to Settings > Search > Add (below the search shortcuts table) to manually enter a search URL.
- 03
Firefox Extensions: Customize your toolbar with the option to remove the extensions shortcut, giving you more control over your browser. When the button is hidden, you can access the extensions panel again at any time from the Firefox menu by clicking the Extensions menu item.
- 04
You can now unload tabs by right-clicking on a tab (or multiple selected tabs) and selecting "Unload Tab". This can speed up performance by reducing Firefox's memory and CPU usage.
- 05
Full-Page Translations now prioritizes translating only the content near your current view, improving speed and responsiveness. Content outside your view is skipped unless you scroll to it, reducing unnecessary resource usage.
- 06
Firefox builds in Arabic now come with a built-in Arabic dictionary for the Firefox spellchecker .
- 07
Address autofill enabled for users in Italy, Poland, and Austria.
- 01
The Pocket toolbar icon, as well as the Pocket integrations on New Tab, have been removed per the service shutdown announcement .
- 02
Users with certain dark themes may experience issues with text contrast in the sidebar. A workaround is to use the built-in dark theme or the system theme This is tracked under Bug 1971487 and a fix will follow in a later release. (Fixed in 140.0.1)
- 01
Various security fixes.
- 01
You can find information about policy updates and enterprise specific bug fixes in the Firefox for Enterprise 140 Release Notes .
- 01
Developer Information
- 02
Improved the search feature in the Inspector panel to help developers more effectively search the DOM of the current page. Sorting the results by the number of matching elements, support “pseudo” selector state, etc.
- 03
With the release of Firefox 140, we are pleased to welcome the developers who contributed their first code change to Firefox in this release, 18 of whom were brand new volunteers! Please join us in thanking each of these diligent and enthusiastic individuals, and take a look at their contributions: Abhishek Nimalan [:animalan]: 1895919
- 04
Support added for unspecified in cookies.SameSiteStatus . In addition, unspecified is now the default value for sameSite in cookies.set() . ( Firefox bug 1550032 )
- 05
Added the data_collection_permissions property to the gecko sub-key of the manifest key browser_specific_settings for Firefox for desktop. This property enables the Firefox built-in data collection consent feature. See the Extension Workshop article Firefox built-in consent for data collection and transmission . ( Firefox bug 1954524 )
- 06
Notification.maxActions (Nightly): dom.webnotifications.actions.enabled The Notification.maxActions read-only static property returns the browser limit on the number of actions that can be associated with a Notification , which you create using ServiceWorkerRegistration.showNotification() . This was released prematurely in Firefox version 138, and this change makes it available only in the Nightly build. ( Firefox bug 1963263 ).
- 07
closedBy attribute for <dialog> (Nightly): dom.dialog.light-dismiss.enabled The closedBy attribute of the HTMLDialogElement interface, and corresponding closedby attribute of the <dialog> element, are supported. Developers can use these to specify what mechanisms are able to close the dialogs, such as user interaction outside the dialog ("light dismiss") or programmatic closing. ( Firefox bug 1964077 ).
- 08
Atomics.waitAsync() : javascript.options.atomics_wait_async The Atomics.waitAsync() static method waits asynchronously on a shared memory location and returns an object representing the result of the operation. It is non-blocking and usable on the main thread. ( Firefox bug 1467846 ).
- 09
Prioritized Task Scheduling API (Nightly release). The Prioritized Task Scheduling API provides a standardized way to prioritize all tasks belonging to an application, whether they are defined in a website developer's code, or in third-party libraries and frameworks. This adds support for the TaskSignal.any() static method, which returns a signal that is triggered when any of the TaskSignal objects it is created from are triggered. The API is now feature complete. ( Firefox bug 1964407 ).
- 10
CloseWatcher (Nightly - desktop only): dom.closewatcher.enabled . The CloseWatcher interface enables you to implement components that can be closed using device-native mechanisms, in the same way as built-in components. On Windows, for example, you can use this interface to make a custom sidebar close when users press the Esc key. ( Firefox bug 1966459 ).
- 01
Added platform support for aria-keyshortcuts in Linux, macOS, and Windows.
- 02
Added support for the CookieStore API , an asynchronous cookie API for scripts running in HTML documents and service workers.
- 03
Added support for the Custom Highlight API , which allows styling arbitrary text ranges. Support for text-decoration is not included and is planned for an upcoming release.
- 04
Added support for the pointerrawupdate event. This event provides lower-latency access to pointer movements by firing as soon as the pointer data is available, typically before the main pointermove event. Unlike pointermove , it performs an additional hit test to determine the target and fires more frequently, which may impact performance even if only a listener is added. This event is intended for applications that require high-precision input handling and cannot achieve smooth interaction using coalesced pointermove events alone.
- 05
Service Workers are now available in Private Browsing Mode. This enhancement builds on our efforts to support IndexedDB and the DOM Cache API in Private Browsing through encrypted storage. With this change, more websites, especially those that rely on background tasks, will be able to benefit from Service workers.
- 06
Firefox now applies a uniform user agent (UA) style to <h1> elements, regardless of whether they are used inside <article> , <aside> , <nav> , or <section> .
- 07
Firefox will now escape less-than ( < ) and greater-than ( > ) symbols when serializing HTML attributes, making certain mXSS attacks on websites more difficult.
- 08
The CSS Custom Highlight API is now supported. It provides a mechanism for styling arbitrary text ranges in a document, generalizing the behavior of other highlight pseudo-elements such as ::selection , ::spelling-error , ::grammar-error , and ::target-text . You define text ranges in JavaScript using Range instances that are grouped in a Highlight , and then register them with a name using HighlightRegistry . You can apply styles to a registered highlight using the CSS ::highlight pseudo-element. ( Firefox bug 1964089 ).
- 09
The UA styles for <h1> elements nested within sectioning elements have been removed, following the removal of the outline algorithm from the HTML specification. Previously, the <h1> headings nested within <article> , <aside> , <nav> , and <section> would appear smaller. Now, <h1> elements have a consistent font size, regardless of the nesting. ( Firefox bug 1964922 ).
- 10
The SVG fetchpriority attribute is now supported for the SVG <feimage> , <image> , and <script> elements. It allows you to hint to the browser about the relative priority of an external resource. This works the same way as the fetchpriority attribute for the HTML <img> and <script> elements. ( Firefox bug 1847712 ).
- 11
The Cookie Store API is now supported ( Firefox bug 1958875 ). This provides a modern, asynchronous Promise -based method of managing cookies, which can be used in both the main thread and in service workers . The API is supported with the exception that cookie objects returned by the get() and getAll() methods of the CookieStore interface, and in the change event, omit all properties other than name and value (matching the information returned by the document.cookie ). The other cookie properties can still be set , and these will be used internally.
- 12
Element.innerHTML , Element.outerHTML , Element.getHTML() , ShadowRoot.innerHTML , and ShadowRoot.getHTML() now replace the < and > characters with < and > (respectively) when serializing the HTML to a string. This prevents certain exploits where HTML is serialized and then injected back into the DOM. ( Firefox bug 1962084 ).
- 13
The pointerrawupdate event is now supported. This event typically provides lower-latency access to pointer movement properties compared to the corresponding pointermove events, firing as soon as the pointer data is available. It is intended for applications that require high-precision input handling, and that cannot achieve smooth interaction using coalesced pointermove events alone. Because listening to this event may impact performance, you should avoid using it for other use cases. ( Firefox bug 1550462 ).
- 14
The MutationEvent interface and its associated events ( DOMSubtreeModified , DOMNodeInserted , DOMNodeRemoved , DOMCharacterDataModified , DOMAttrModified ) have been removed. ( Firefox bug 1963043 ).
- 15
Improved the Actions implementation in both Marionette and WebDriver BiDi to prevent microtasks from being blocked while individual events are dispatched. ( Firefox bug 1965183 )
- 16
Fixed a bug where WebDriver Classic and BiDi commands - particularly Action commands - could time out while waiting for a RequestAnimationFrame. ( Firefox bug 1947402 )
- 17
Added support for acceptInsecureCerts argument to browser.createUserContext command. This argument allows clients to disable or enable certificate related security settings for a specific user context (aka Firefox container) and override the settings specified for a session. ( Firefox bug 1959372 )
- 18
Implemented a new browsingContext event, browsingContext.navigationCommitted , which should be emitted as soon as a new document has been created for a navigation. ( Firefox bug 1945184 )
- 19
Fixed a bug for various browsingContext events which were unexpectedly emitted for webextension Browsing Contexts. ( Firefox bug 1903272 )
- 20
Updated the webExtension.uninstall command to throw a NoSuchWebExtensionError when an empty string is provided as the extension ID. ( Firefox bug 1956945 )
- 21
Updated browsingContext.contextCreated and browsingContext.contextDestroyed events to return the clientWindow property in all the remaining cases (including Firefox for Android). This property corresponds to the ID of the window owning the Browsing Context. ( Firefox bug 1953743 )