Firefox Tomorrow

TL;DR

11 new features, 1 fix, 52 other changes. Highlight: Split View just got better: You can now right-click any link and choose Open Link in Split View to open it alongside your current tab. Yo…

New 11 items
  1. 01

    Split View just got better: You can now right-click any link and choose Open Link in Split View to open it alongside your current tab. You can also search open tabs when creating a split view and quickly reverse tab positions using the new Reverse Tabs option in the tab context menu.

  2. 02

    Share multiple tabs in a single step. Select several tabs, right-click, and choose Copy X Links (for Windows and Linux) or choose Share → Copy X Links (for MacOS). When pasted into other apps that support rich text, links include both the page title and the URL for easy reading.

  3. 03

    You can now use Firefox’s built-in PDF editor to reorder, copy, paste, delete, and export pages in a PDF.

  4. 04

    Try out real-time, private translations in Firefox Desktop with the about:translations page. Start typing the word "translate" into the URL bar for a quick-action shortcut to the page.

  5. 05

    Added support for the GTK emoji picker on Linux, allowing users to insert emoji using the system shortcut (typically Ctrl + . ).

  6. 06

    Firefox web apps are now available to Windows users who installed Firefox through the Microsoft Store.

  7. 07

    The new Firefox Profile management system is now available to all users, including users on Windows 10.

  8. 08

    Backing up a profile to a file is now available to all Windows 10 and 11 users, including those who use the new profile management system.

  9. 09

    Firefox now ships with a new .rpm package for Linux users on Red Hat, Fedora, openSUSE, and other RPM-based distributions.

  10. 10

    Firefox now prompts you to enable location access in Windows settings when granting a website permission to use your location, if geolocation hasn't already been allowed. This behavior, previously limited to some Windows 11 versions, now applies to all supported Windows versions.

  11. 11

    The built-in VPN is now available for users in Canada. Note: This feature is not available in enterprise environments. Currently available in: Canada, France, Germany, United Kingdom, United States This feature is part of a progressive roll out. What is a progressive roll out? Certain new Firefox features are released gradually. This means some users will see the feature before everyone does. This approach helps to get early feedback to catch bugs and improve behavior quickly, meaning more Firefox users overall have a better experience.

Fixed 1 item
  1. 01

    Fixed an issue on macOS where, when macOS Lockdown mode is enabled, emoji characters are not displayed in web content.

Changed 3 items
  1. 01

    If you prefer creating tab groups from the context menu, you can now turn off drag-and-drop group creation in Settings > Tabs > Drag tabs to create tab groups.

  2. 02

    Users with Bitdefender security software installed may experience problems loading websites, particularly Facebook.com. We are working on a workaround, but as a temporary mitigation, disabling Bitdefender or turning off its traffic filtering features may resolve the issue. (Fixed in 150.0.1)

  3. 03

    Some websites on internal or corporate networks that require a login prompt may fail to display the sign-in dialog in Firefox 150, showing a blank page instead. (Fixed in 150.0.2 in Bug 2034752 )

Security 1 item
  1. 01

    Various security fixes .

Enterprise 1 item
  1. 01

    You can find information about policy updates and enterprise-specific bug fixes in the Firefox for Enterprise 150 Release Notes .

Developer 15 items
  1. 01

    Developer Information

  2. 02

    A new element-specific section has been added to the pseudo-class toggle panel including a toggle for the :open pseudo-class, which is only available for elements that have an open state like <dialog> elements. The existing toggle for the :visited pseudo-class was also moved there, as it only applies to <a> and <area> elements. ( Learn More )

  3. 03

    The Document.caretPositionFromPoint() method now only returns a position in a shadow DOM if its ShadowRoot is passed in the newly-added shadowRoots option.

  4. 04

    The devtools network monitor now indicates when a connection used a certificate issued by a certificate authority not in Mozilla's Root CA Program.

  5. 05

    With the release of Firefox 150, we are pleased to welcome the developers who contributed their first code change to Firefox in this release, 22 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: Akeldama: 1718781

  6. 06

    The behavior of tabs.move is updated for split views so that:

  7. 07

    The order of tabs in a split view can be swapped. ( Firefox bug 2016762 )

  8. 08

    When the list of tabs includes both split view tabs and places one or more tabs between them, the tabs are moved apart and the split view closed. ( Firefox bug 2022549 )

  9. 09

    Extension documents can now use the Web Authentication API and assert a Relying Party ID (RP ID) for any domain covered by the extension's host permissions . This change means that navigator.credentials.create() and navigator.credentials.get() can specify an RP ID matching a host-permitted domain, enabling extensions to create and retrieve WebAuthn credentials on behalf of web services. See Use Web Authn API in web extensions for details. ( Firefox bug 1956484 ).

  10. 10

    Resolved an issue with some JavaScript import calls failing to import CSS. ( Firefox bug 2016369 )

  11. 11

    Namespaced attributes in attr() CSS function : layout.css.attr.enabled The attr() CSS function now accepts namespaced attributes . This allows you to take attributes from elements of XML -based languages, such as SVG and style them accordingly. ( Firefox bug 2014060 )

  12. 12

    @container style() queries (Nightly): layout.css.style-queries.enabled The @container CSS at-rule supports style() queries. This has been updated to support the nesting of style() queries. ( Firefox bug 2014098 ).

  13. 13

    Absolutely positioned elements in multi-column containers and when printing : layout.abspos.fragmentainer-aware-positioning.enabled Absolutely positioned elements inside multi-column containers and when printing are now correctly positioned and fragmented. This improves interoperability with other browsers and prevents layout issues such as overlapping text or content loss. ( Firefox bug 2018797 ).

  14. 14

    Scoped custom element registries : dom.scoped-custom-element-registries.enabled The customElementRegistry property is supported on Document , Element , and ShadowRoot . This allows the definition of scoped custom element registries . ( Firefox bug 2018900 ).

  15. 15

    Multiple import maps : dom.multiple_import_maps.enabled Multiple import maps give developers more flexibility when structuring and loading JavaScript modules. ( Firefox bug 1916277 ).

Web Platform 32 items
  1. 01

    Firefox now supports the ariaNotify API for accessibility notifications (e.g. for screen readers) as a more ergonomic and reliable alternative to ARIA live regions.

  2. 02

    Firefox now supports media element pseudo-classes (e.g., :playing , :paused ) to allow more precise styling based on media playback state.

  3. 03

    Added support for the highlightsFromPoint() API , which allows web pages to interact with CSS Highlights by returning all Highlights at a given point.

  4. 04

    Firefox now supports light-dark() on images, just like on colors, which is very useful for supporting dark mode on websites.

  5. 05

    The color-mix() function previously accepted only two color values. This limitation has now been removed, allowing the function to accept an arbitrary number of colors.

  6. 06

    Added support for a new auto value on the sizes attribute for lazy-loaded image elements with multiple images defined via srcset . This allows the browser to automatically select the right image based on the layout width of the image element. ( Learn More )

  7. 07

    A specific message is now displayed in the Response tab of the Network pane to indicate why there is no response data when a request has been redirected. ( Firefox bug 2016679 ).

  8. 08

    A new "Element-specific pseudo-classes" section has been added to the pseudo-class toggle pane , including a toggle for the :open pseudo-class, which is only available for elements that have an open state like <dialog> elements. The existing toggle for the :visited pseudo-class was also moved there, as it only applies to <a> and <area> elements. ( Firefox bug 2014442 ).

  9. 09

    The "auto" keyword is now supported as an option for the sizes attribute of <img> elements (and HTMLImageElement.sizes ). This allows lazy-loaded <img> elements to use the calculated image layout size, after any CSS has been applied, to select which image to display from a srcset . This is simpler than specifying media conditions and their associated sizes in the attribute, which likely duplicates behavior that is already captured in CSS media queries. ( Firefox bug 1819581 ).

  10. 10

    The color-mix() CSS function now accepts multiple <color> values, rather than just two. This allows you to mix any number of colors. ( Firefox bug 2024171 ).

  11. 11

    The light-dark() CSS function now accepts <image> values. This allows using images, gradients, and so on for different color schemes. ( Firefox bug 2023569 ).

  12. 12

    The media-based pseudo-classes :buffering , :muted , :paused , :playing , :seeking , :stalled , and :volume-locked are now supported. They allow you to style <audio> and <video> elements based on their current state, such as playing or paused. ( Firefox bug 2020775 ).

  13. 13

    The revert-rule CSS keyword is now supported. It allows a property's value to be determined as if the current style rule had not been present, so that the value from another matching rule can take effect instead. ( Firefox bug 2017307 ).

  14. 14

    The overscroll-behavior CSS property (and its longhand properties overscroll-behavior-x , overscroll-behavior-y , overscroll-behavior-block , and overscroll-behavior-inline ) now correctly apply to scroll containers that have no scrollable overflow, such as elements with overflow: hidden . Previously, the property was ignored on such elements. ( Firefox bug 1837436 ).

  15. 15

    The Sanitizer.replaceElementWithChildren() method will now return false if the element to be replaced is <html> in the HTML namespace . In other words, you can't use this method to create a Sanitizer that will replace the <html> element with its inner content. ( Firefox bug 2022176 ).

  16. 16

    The scrollend event is now supported on VisualViewport , allowing elements to be updated when a scrolling action is completed. This might be used, for example, to unhide or otherwise adjust the position of fixed UI elements once a user finishes panning around a pinch-zoomed screen. ( Firefox bug 1801658 ).

  17. 17

    The options.shadowRoots argument of the Document.caretPositionFromPoint() method is now supported. This allows the method to return the node containing the caret from within a shadow DOM, provided its associated ShadowRoot was passed as an option. ( Firefox bug 1914596 ).

  18. 18

    The HighlightRegistry.highlightsFromPoint() method is now supported, providing an mechanism for web pages to get information about all the CSS custom highlights applied at a particular point. This includes highlights that are inside shadow roots, provided the associated ShadowRoot instance was passed to the method. ( Firefox bug 1917991 ).

  19. 19

    The CSSFontFaceDescriptors interface is now supported, and an instance of this type is returned by the CSSFontFaceRule.style property. ( Firefox bug 2019904 ).

  20. 20

    The non-standard caretRangeFromPoint() method of the Document interface is now supported. ( Firefox bug 1550635 ).

  21. 21

    The ariaNotify() method is now supported on Document and Element . This queues a string of text to be announced by a screen reader , providing a more ergonomic and reliable alternative to ARIA live regions . ( Firefox bug 2018095 ).

  22. 22

    RTCError and RTCErrorEvent are now supported, allowing reporting of SDP parse errors. ( Firefox bug 1814459 ).

  23. 23

    RTCPeerConnectionIceErrorEvent and RTCPeerConnection.icecandidateerror event are now supported. ( Firefox bug 1561441 ).

  24. 24

    RTCIceTransport.role is now supported. ( Firefox bug 2018843 ).

  25. 25

    Fixed an issue where having pending downloads when closing the browser could be blocked by a prompt. The prompt is now dismissed automatically. ( Firefox bug 2003840 ).

  26. 26

    Added the emulation.setNetworkConditions command, which supports the type: offline at the moment. Using this, you can emulate offline mode either on specific browsing contexts, on user contexts (a.k.a. containers) or globally. ( Firefox bug 1993079 ).

  27. 27

    Improved our support for non utf-8 header values across all the network module commands and events. They are now properly serialized to BytesValue . ( Firefox bug 1994996 ).

  28. 28

    Fixed a bug for download events triggered by a response with the "Content-Disposition" header. Such events were missing the navigation property if the download was initiated by a link with target="_blank" . ( Firefox bug 1999481 ).

  29. 29

    Updated the log.entryAdded event to only be emitted for console API calls that actually print a message in browser developer tools (see also the console specification: using the printer ). With this change, using console.clear or console.time no longer triggers an event. ( Firefox bug 1866749 ).

  30. 30

    Fixed a race condition with the browsingContext.setViewport command which could timeout if several contexts were created in parallel. ( Firefox bug 2019511 ).

  31. 31

    Improved the browsingContext.locateNodes command to allow retrieving the HTML element ( documentElement ) of a page when using the css locator. ( Firefox bug 2020578 ).

  32. 32

    Fixed the WebDriver:getShadowRoot command to stop returning user-agent shadow roots. ( Firefox bug 2016741 ).