Lees weergave

The Need for Speed Controls – These Weeks in Firefox: Issue 208

Highlights

Playback speed settings panel in a Picture-in-Picture window.

Friends of the Firefox team

Resolved bugs (excluding employees)

Script to find new contributors from bug list

Volunteers that fixed more than one bug

  • Benoit
  • Chris Vander Linden
  • Fede
  • japandi
  • Lukáš Lipinský
  • Nirmal Advani
  • Ruhollah Majdoddin
  • Sameem [:sameembaba]
  • Sebastian Zartner [:sebo]
  • Zyphrenn

New contributors (🌟 = first patch)

Project Updates

Add-ons / Web Extensions

Addon Manager & about:addons
  • As part of Nova about:addons work:
    • Replaced the “more themes” button in the themes list view footer with a promo element when Nova is enabled – Bug 2057200
    • Removed the testing XPI base url pref from ThemesList.sys.mjs – Bug 2053220
    • Fixed a mismatch between the popup panel border radius applied by Nova and the border radius applied to the document.body of the WebExtensions popup page loaded into it – Bug 2057844
    • Moved new strings added as part of the about:addons Nova restyling out of the locales preview – Bug 2052034
  • As part of legacy telemetry cleanups for the Add-ons related telemetry, migrated addons-search-detection telemetry off the legacy telemetry mirroring path, now collected only through Glean – Bug 2055606
WebExtensions Framework

DevTools

::picker rules for a pseudo element within the DevTools Inspector pane.

A tooltip showing a breakdown of a CSS var function

WebDriver

New Tab Page

  • Big ticket items:
    • Did a trainhop last week to help with the remote layouts effort
    • Doing another trainhop this week to make some spacing optimizations, deploying tomorrow if all goes well
    • We will be experimenting with some more layout variations over the next few months
      • Example:

A layout variation for the New Tab page with the Widgets column on the left and Popular Today column on the right.

Picture-in-Picture

Search and Urlbar

  • Nova: continued work on the Nova redesign, focusing on CSS fixes, tab group and container styling, and tab/address bar polish. Efforts are underway to ensure the UI integrates correctly with platform themes and high-contrast modes.
  • IPC Urlbar / Multi-Context Address Bar (MCAB) on New Tab: Significant progress has been made on the IPC Urlbar implementation. The CI variant is now live and upgraded to Tier 2, allowing for better bug detection. Currently focused on making content modules content-process-safe and preparing for new tab search bar integration. Here’s moz-urlbar rendering something on about:newtab for the first time:

The Firefox New Tab page with an unstyled in-page search bar in the center, showing Google search suggestions for "what's a scotch bonnet"

  •  

Motion, Colour, Captions, Kit – These Weeks in Firefox: Issue 207

Highlights

Friends of the Firefox team

Resolved bugs (excluding employees)

Script to find new contributors from bug list

Volunteers that fixed more than one bug

  • :Vincent
  • japandi
  • Nirmal Advani
  • Sebastian Zartner [:sebo]
  • tanvi.manku

New contributors (🌟 = first patch)

Project Updates

Add-ons / Web Extensions

Addon Manager & about:addons
  • As part of Nova about:addons work:
    • Introduced a shared localization module for built-in and curated AMO-hosted theme names, and updated the corresponding about:addons theme test to expect the new “Default” theme name shown when Nova is enabled – Bug 2055936 / Bug 2058235
    • Added a message bar to the about:addons themes picker to surface AMO-hosted Nova theme download and install failures instead of failing silently – Bug 2054548
WebExtensions Framework
  • Fixed a startup race where an extension’s restored dynamic content scripts could be missing from the parent WebExtensionPolicy due to stale shared data – Bug 2058719
WebExtension APIs
  • Fixed publicSuffix.isKnownSuffix() to reject invalid domain-name characters, including wildcard suffixes, that could previously be matched as a known public suffix – Bug 2059819
  • Fixed the frameId reported by webRequest events for requests made from workers, including importScripts()-loaded scripts, which were previously attributed to the wrong frame – Bug 2048884
    • Thanks to Giulio B for the fix to webRequest frameId attribution for worker requests.

DevTools

WebDriver

Fluent

Lint, Docs and Workflow

New Tab Page

Performance Tools (aka Firefox Profiler)

Search and Urlbar

  •  

Icons! Lots of them! – These Weeks in Firefox: Issue 206

Highlights

  • Starting in Firefox 154, we’ve added a new capability for changing the default browser icon for Windows (Windows-only, for now, and not MSIX / Store installs) in about:settings#appearance!

Menu under Appearance settings containing a list of icons to choose from to customize the Firefox browser icon.

Settings panel checkbox to enable stylesheet handling in the debugger.

  • The Picture-in-Picture WebAPI is now available, starting with release version Firefox 153!
    • This does not replace the built-in Picture-in-Picture mechanism, and is in fact powered by it.

Friends of the Firefox team

Resolved bugs (excluding employees)

Volunteers that fixed more than one bug

  • japandi

New contributors (🌟 = first patch)

Project Updates

Add-ons / Web Extensions

Addon Manager & about:addons
  • As part of Project Nova work:
    • Added moz-promo cards to the about:addons extensions list recommendations footer and empty state, and updated the openAmoInTab helper to support a custom UTM content value – Bug 2043615 / Bug 2050880
    • Introduced the building blocks for the Nova Themes Picker in about:addons: a shared Firefox Themes list source of truth, a light/dark/device theme-mode switcher, a reusable theme-preview webcomponent, and Nova-styled theme previews – Bug 2051554 / Bug 2051559 / Bug 2051564 / Bug 2051573
    • Updated the Extensions panel empty state illustration and toolbar item icon for Project Nova – Bug 2030715
      • Thanks to Michael Hynson for driving this.
  • Removed the legacy AddonManager Glean metrics used for mirroring legacy telemetry events, along with the corresponding legacy telemetry test checks – Bug 1923949 / Bug 1981822
    • Thanks to Chris H-C for collaborating with us on this.
  • Fixed themes installed through the distribution mechanism not fetching their AMO metadata, which was resulting in distribution installed themes left without a preview image in about:addons – Bug 1917279
    • Thanks to Mike Kaply for the fix to the distribution themes metadata handling.
  • Fixed amContentHandler to verify that a system triggeringPrincipal genuinely originated from the parent process, a regression introduced in Firefox 153 and fixed in Firefox 154 (with a beta 153 uplift requested) – Bug 2048964
WebExtensions Framework
  • Fixed a startup performance regression by avoiding an NSS-initializing crypto.getRandomValues() call during extension startup, a regression introduced in Firefox 153 and fixed in Firefox 154 (with a beta 153 uplift requested) – Bug 2050882
  • Enabled tier 3 TypeScript typecheck linting for the extensions framework code – Bug 2050124
  • Implemented the WebExtensions manifest sandbox key, letting extensions keep using string-based code execution in unprivileged sandboxed extension documents – Bug 1685123
    • Thanks to Robin for the implementation of the manifest sandbox support.
WebExtension APIs
  • Enabled storage.local database auto-reset on detected corrupted IndexedDB storage on all channels, starting in Firefox 154 – Bug 1992973
  • Simplified registerTraceableChannel to make it synchronous again, removing the delay before blocking webRequest listeners can register a traceable channel – Bug 2044518
  • Restored the contextualIdentities iconUrl container icons to their intrinsic 32×32 size, fixing a regression introduced earlier in the Firefox 154 cycle – Bug 2048599
    • Thanks to Andrea Marchesini for the fix to the contextualIdentities container icons.
  • Fixed the MV2 userScripts API failing with an Xrays TypedArray access error due to a missing isWebExtensionContentScript flag – Bug 2054083
    • Thanks to erosman for the fix to the MV2 userScripts API.

DevTools

The visually updated about:debugging Performance dialog

  • Nicolas Chevobbe about:debugging is now using moz-page-nav for its left sidebar (#2048544), thanks to Mark making it possible to disable collapsing that occurs on narrow screen (#2050907)
    • (not all items were migrated to moz-page-nav-button though, see #2050746 for remaining work)
  • Alexandre Poirot made it possible to control the request and response body size limit from the Settings panel (#2040892)

A control in the Firefox DevTools Settings panel to adjust the request and response body size limit.

A notification displayed above the DevTools Inspector panel promoting Local Mode.

WebDriver

Credential Management

Migration Improvements

New Tab Page

  • That’s a wrap for the World Cup! We’re powering down the Sports widget today.
    • Some folks might see a survey about the Sports widget, to get feedback from the wild on whether or not it provided any user value (Telemetry points to “yes”, but it’s good to get qual data too)
    • We’re replacing it with some new widgets. If you’re in an English-speaking region, you will probably see it replaced with a Daily Crossword widget. Otherwise, it’ll be replaced with a Picture of the Day widget.
  • Sections have rolled out to 100% in France! We’re now doing 10% Sections experiments in Spain, Italy, Austria, Switzerland and Belgium.
  • Shout out to volunteer Sameeksha who added an accessible name to the Task list widget ••• button, adding an aria-label/accessible-name so NVDA/VoiceOver announce the control and keyboard navigation/activation works correctly on New Tab.
  • Joel added WebNotifications to the newtab state, allowing New Tab widgets to observe and reflect WebNotification events (affects the notification-driven widget lifecycle and UI state updates).
  • Reem Hamoui adjusted the New-Tab Widgets 3-dot menu layout to vertically center menu entries inside the hover-granted colorful stripe, removing visual misalignment and small hit-area offsets on touch and pointer inputs.
  • Dre implemented the show less/show more transition animation for New Tab expand/collapse, smoothing layout shifts with a CSS transition to reduce perceived jank during widget list changes.
  • Scott Downe fixed New Tab Page drag-and-drop so widgets no longer jump or keep moving during drags (2049472).
  • Reem Hamoui rendered the Daily Crossword in a sandboxed iframe to isolate its scripts/CSP on the New Tab Page (2049489).
  • Reem Hamoui added the Crossword option to about:preferences and wired the New Tab Page crossword widget into prefs (2050340), so users can enable or disable the crossword via the standard Preferences UI rather than about:config.
  • Dre set up the Picture of the Day boilerplate, including prefs and basic New Tab UI components (2050969), which exposes a configurable PoD surface for users to opt into and customize.
  • Dre added a dismiss control and persisted dismissal state to the daily photo UI (2050972), allowing users to remove the current picture from their New Tab and avoid immediate reappearance.
  • Dre added a “set as wallpaper” action and hooked it into New Tab wallpaper storage/prefs (2050973), enabling users to promote a PoD image to their custom New Tab wallpaper persistently.
  • Dre connected the Picture of the day widget to the Merino endpoint to set the background of the widget to the current picture (2050976). He also added telemetry for the Picture of the day widget on the New Tab Page to capture impressions and clicks for usage analysis (2050977).
  • Nina Pypchenko [:nina-py] added a small size variant for the Focus Timer widget in Nova so the timer can render compactly in narrow/new tab layouts and reduce vertical space usage (2051179).
  • Maxx Crawford created a DevTools ‘controls’ area on the New Tab Page to enable and configure the widget, exposing toggles and settings that let developers and experimenters flip the widget without changing prefs, which reduces friction when reproducing NTP widget behaviors during debugging and testing.
  • Irene Ni switched the New Tab ‘inferred personalization’ checkbox to the platform moz-checkbox control, restoring native checkbox semantics (role/keyboard focus/visual state) so users toggling inferred personalization see consistent a11y behavior and platform rendering across Windows/macOS/Linux.
  • Scott Downe fixed an intermittent visual reload/flicker of sponsored tiles and the Add Shortcut button when pinning/unpinning shortcuts, preventing momentary tile DOM reflows and layout thrash that caused perceived data loss or longer perceived latency during shortcut edits.
  • Scott Downe ensured custom image URLs persist on manually added Top Site tiles after edit, so users’ uploaded or external thumbnails no longer revert to the site’s homepage preview when saving edits and their custom thumbnails are correctly cached and displayed.
  • Dre introduced two variants of the World Cup widget survey message, changing the copy delivered in the widget to support an A/B/message-variant experiment and altering what users see when the World Cup widget surfaces survey prompts on their New Tab Page.
  • Nina Pypchenko [:nina-py] introduced a default state for Medium and Large Stocks widget sizes on the New Tab Page to surface placeholder content and avoid blank tiles when the Stocks feed is empty or slow to load.
  • Nina Pypchenko [:nina-py] added an error state to the Stocks widget on the New Tab Page to show an explicit failure UI when quote fetches or network requests fail, reducing user confusion.
  • Alexandre Hanot migrated AdsFeed to fetch New Tab ads through the MozAdsClient, changing the ad retrieval path (AdsFeed -> MozAdsClient) which affects ads loading behavior and telemetry for users who see New Tab Page ads.
  • Irene Ni fixed the New Tab add-pin flow that was creating extra rows when grouped pins was off by changing the insertion logic to append into the existing grid, which eliminates unexpected row creation and layout shifts for users managing many pins (2053251).
  • Scott Downe updated New Tab section rendering to hide cards that don’t fill their row by adjusting layout logic/CSS, removing orphaned placeholders and reducing blank space on narrow viewports or low-item sections for a cleaner grid appearance (2053264).
  • Reem Hamoui added a context menu to the Crossword widget using a postMessage integration between the iframe and parent page, enabling right-click actions (copy/hint/theme) and making the embedded crossword more interactive and accessible to users who rely on context menus (2053311).
  • Reem Hamoui added a visible “New” badge plus interaction handlers and state tracking to the Crossword widget on the New Tab Page to improve discoverability and make tapping/clicking behave reliably when launching puzzles (2053667).
  • Irene Ni removed unused Add Shortcut OMC artifacts from the New Tab Page (2053843); this is a cleanup of obsolete assets/templates and has no direct runtime user impact.
  • Maxx Crawford added author and license attribution to the Picture of the Day widget (2053933); this surfaces photographer credit and license metadata on the New Tab Page for users who want provenance information.
  • Maxx Crawford applied UX refinements to the Picture of the Day widget (2054109); users will see improved layout, spacing, and touch targets in the POTD area for clearer interactions.
  • Maxx Crawford added a pref and trainhopConfig gate to toggle the POTD “Set as wallpaper” feature (2054111); rollout and availability of the wallpaper action are now controllable via pref and remote trainhopConfig.
  • Maxx Crawford added a dedicated trainhopConfig.widgetPictureOfTheDay payload for POTD feature config (bug 2054112) so the New Tab Page train-hop widget can be controlled server-side — this delivers image URLs, attribution and display params remotely which lets us enable/disable POTD per cohort without ship-side changes and reduces rollout latency for users who see the Picture‑of‑the‑Day widget.
  • Irene Ni updated the Shortcuts Add/Edit dialog for Nova (bug 2054175) to improve the add/edit UX on the New Tab Shortcuts surface — the patch adjusts dialog layout and controls, tightens validation and accessibility labels, and reduces accidental duplicate/invalid shortcut creation so users editing shortcuts have a more reliable, faster flow.
  • Maxx Crawford fixed the Daily crossword widget content overflowing and clipping past the bottom container boundary by adjusting the crossword widget’s layout/CSS (container height calculations and overflow/overflow-anchor rules) on the New Tab Page, restoring full visibility of clues and controls across responsive breakpoints.
  • Maxx Crawford fixed Related articles not opening on click by repairing the related-articles component’s click handling and event delegation (anchor href/target behavior and JS listener) on the New Tab Page so article tiles now reliably open on click for users.
  • Maxx Crawford added a “New” badge and interactions to the Picture of the Day widget, implementing an isNew flag, local state/localStorage handling, ARIA label updates and click behavior so users can immediately see and act on newly added images.
  • Maxx Crawford updated the initial order of the Picture of the day widget by changing the PoD component’s initial ordering/priority algorithm so first-run and default NTP surfaces surface curated/high-priority images first.
  • Maxx Crawford migrated Crossword widget strings from Fluent back to inline markup to fix localization/formatting regressions in the crossword UI and ensure consistent rendering of labels and controls across locales.
  • Irene Ni migrated the New Tab Widgets expand button to moz-button which standardizes the expand/collapse control on the New Tab Page widgets area, fixing inconsistent styling and keyboard/click handling so users now get consistent visuals and improved accessibility across platforms.
  • Reem Hamoui added a dedicated trainhopConfig.widgetCrossword payload for Crossword feature config which isolates crossword rollout flags and content settings from other trainhop payloads, allowing targeted remote-config changes and safer A/B testing of the crossword widget without impacting unrelated New Tab features.
  • Maxx Crawford fixed the Daily crossword widget being blank after closing and reopening the browser by ensuring widget state is correctly initialized/persisted on startup (New Tab Page widget lifecycle), so users now reliably see the daily puzzle after a restart instead of an empty frame.
  • Reem Hamoui fixed Daily crossword completed puzzle and show clues are displayed in medium sized widget, restoring completed-puzzle rendering and clue visibility in the New Tab Page medium widget (widget template/CSS).
  • Maxx Crawford updated Discovery Stream Admin buttons to use moz-button components, replacing custom controls with moz-button to standardize admin UI styling and focus behavior.
  • Maxx Crawford added per-widget feature toggles and pref reset buttons to Discovery Stream Admin, enabling admins to toggle individual widgets and reset prefs without code deploys — changes here can alter what users see when toggled.
  • Maxx Crawford migrated Discovery Stream Admin unit tests to jest, moving tests to Jest for faster developer feedback and more consistent test tooling.
  • Maxx Crawford enforced Fail jest tests that emit console.error messages, making tests fail on console.error to catch regressions earlier and improve content quality before release.
  • Kyle Jones populated MozAdsRequestOptions flags from adsBackendConfig in AdsFeed on the New Tab Page, changing ad request parameters that may alter which ads or personalization users see.
  • Mike Conley removed the version 145 train-hop shim for the PrivacyFeed getTodayStats guard, simplifying guard logic in the New Tab Page with no direct user-visible change.

Search and Urlbar

Search
  • Mandy fixed the “New” label incorrectly appearing for user-installed third party search engines that override application-provided engines (2053710).
  • Standard8 fixed search engine telemetry notifications and private browsing search engine defaults (2053129, 1792669).
Suggest
  • Adw added header_text support for AMP (AdMarketPlace) suggestions (2053626).
Nova
Address Bar
Places & Bookmarks

Storybook/Reusable Components/Acorn Design System

  • Nova stuff
  • Theme Picker for HNT, OMC and Profiles
  • [mconley] There’s a new vertical variant for visual picker. Thanks for the reviews, hjones!
  •  

Try the New Firefox Design in Nightly

This past May, we shared our vision for the future of Firefox. Starting today, you can try out the next design evolution of Firefox in Nightly.

It’s still Firefox, now with a more cohesive look and feel across tabs, menus, panels, and other browser surfaces. You’ll notice softer tab shapes, a warmer color palette, updated icons, and – after hearing from many of you – the return of Compact Mode and new theme options to make Firefox your own.

Many of you have already spotted pieces of the new design in Nightly over the past few months. Now they’re coming together into one complete  experience.

You’ll continue to see updates over the coming weeks as we polish the new Firefox design before it reaches Firefox users more broadly later this year. As you browse, we’re especially interested in any visual or functional issues you encounter.

Keep an eye out for things like:

  • Icons, spacing, and alignment
  • Themes and personalization
  • Different window sizes and display scaling
  • Keyboard navigation
  • Screen readers and other accessibility features
  • Different languages and layouts

Found a bug?

If something doesn’t look or behave as expected, please file a bug in Bugzilla.

When possible, include:

  • Steps to reproduce the issue
  • Screenshots or screen recordings
  • Your operating system and Nightly version

If you have broader thoughts or questions about your experience, join the discussion on Mozilla Connect.

Thanks for using Nightly and helping us improve Firefox. Every bug report helps us identify issues and continue refining the new Firefox design before it reaches Firefox users more broadly later this year.

  •  

Eyedropper Quick Action, geckodriver 0.37, and Tighter File Permissions – These Weeks in Firefox: Issue 205

Highlights

  • Dao added a new Eyedropper quick action! Check it out by typing “color” or “eyedropper” in the URL bar (Bug 1803575) on Nightly.

Firefox URL bar dropdown with "col" typed in, showing an eyedropper button labeled "Pick a color" below search suggestions.

  • Henrik Skupin released geckodriver 0.37.0, which includes support for several new APIs and various bug fixes. See the release page for details.
  • Starting from Firefox 153, access to local file: URLs is being restricted by default.
    • Extensions now require an explicit “Access local files on your computer” permission, separate from broad host permissions, that users must grant.
    • Extensions can call the extension.isAllowedFileSchemeAccess() API to determine whether they have been granted access to file: URLs (Bug 2034168).

Friends of the Firefox team

Resolved bugs (excluding employees)

Script to find new contributors from bug list

Volunteers that fixed more than one bug

  • :Vincent
  • Chris Vander Linden
  • DrSeed
  • Khalid AlHaddad
  • Sam Johnson

New contributors (🌟 = first patch)

Project Updates

Accessibility

Add-ons / Web Extensions

Addon Manager & about:addons
  • Migrated addon-page-header and addon-card action buttons to the reusable moz-button web component as part of the ongoing Nova restyling of about:addons – Bug 2042200 / Bug 2042204
  • Extended moz-page-nav-button with a forwarded title property to fix an accessibility issue where the component lacked a label in collapsed state; Landed in Firefox 153, and uplifted to Firefox 152 for about:settings which was already riding the 152 release train – Bug 2040971
  • Fixed a shutdown-timing bug where a pending GMP update-check timer could fire after XPCOMShutdownThreads started, causing a pref write assertion; Fixed in Firefox 153 – Bug 2043803
WebExtensions Framework
  • Fixed MV2 content scripts incorrectly injecting into guarded hosts because MozDocumentMatcher::MatchesURI was not consulting CheckGuarded when mCheckPermissions was false; Fixed in Firefox 153 – Bug 2041393
  • Added support for accessing ObservableArray attributes (such as adoptedStyleSheets) from XrayWrappers and extension content scripts, unblocking extensions that rely on this Web API; Fixed in Firefox 153 – Bug 1751346
  • Wired runtime_blocked_hosts and runtime_allowed_hosts enterprise policy settings through ExtensionSettings to allow administrators to restrict extension host permissions on managed devices, starting in Firefox 153 – Bug 1805205
    • Thanks to Mike Kaply for implementing this enterprise policy enhancement.
WebExtension APIs
  • Fixed promiseTabWhenReady blocking indefinitely on discarded tabs, preventing cleanup of associated resources and potentially causing memory leaks; Fixed in Firefox 153 – Bug 1653876
  • Fixed webNavigation.onCommitted being dispatched twice for cross-origin iframes loaded under Fission, caused by a redundant OnStateChange trigger firing in addition to OnLocationChange; Fixed in Firefox 153 – Bug 1750196

DevTools

Accessibility panel in Firefox DevTools showing a selected "heading (level 3)" node named "Backwards compatibility."

WebDriver

Search and Urlbar

  • Dharma updated context search actions to trigger search instead of entering search mode @ 1945080
  • Daisuke and Drew worked on a lot of Nova updates, including ensuring Nova is tested @ 2041255, 2030183, 2019168, 2044849, 2033583
  • Moritz has worked on several refactorings to allow the urlbar to be used in content @ 2039828, 2039298, 2041280
  • Middle click paste replaces content was fixed by Moritz @ 2042893
  • Michel added feature to show registrable domain on desktop after its implementation on mobile @ 1986161
  •  

Giving You More Control – These Weeks in Firefox: Issue 204

Highlights

Firefox context menu video controls like Pause, Unmute, Speed and Loop.

Tooltip in Firefox DevTools for mismatched syntax with attr()

Friends of the Firefox team

Resolved bugs (excluding employees)

Script to find new contributors from bug list

Volunteers that fixed more than one bug

  • Sam Johnson
  • Sebastian Zartner [:sebo]

New contributors (🌟 = first patch)

Project Updates

Add-ons / Web Extensions

Addon Manager & about:addons
  • As part of the work for the Project Nova about:addons page restyling, the about:addons sidebar has been migrated to the moz-page-nav and moz-page-nav-button reusable components, improving accessibility and visual consistency with the Firefox Desktop about:settings page – Bug 1881767
WebExtensions Framework
  • Implemented WebExtensions negative permissions infrastructure, providing the foundations for enterprise policy “blocked host permissions” features – Bug 1745823
  • Restricted host permission changes for MV3 extensions force-installed via enterprise policy (matching similar behaviors provided by Chrome enterprise policy behaviors) – Bug 1904054
    • Thanks to Mike Kaply for the implementation of this enterprise policy enforcement feature.
WebExtension APIs
  • Fixed handling of <all_urls> as an API permission in Manifest V3, ensuring the permission is correctly initialized on extension install – Bug 1758306

DevTools

WebDriver

Lint, Docs and Workflow

New Tab Page

Picture-in-Picture

Performance Tools (aka Firefox Profiler)

  • Firefox Profiler now has a CLI! We also added a profiler-analysis skill to the Firefox codebase. Once you capture a performance profile, you can ask Claude or an AI to analyze it by providing a link or local path. You can use it to analyze a performance regression or debug an issue if you have a profile at hand.

Search and Urlbar

Nova UI refresh
Suggest
  • Drew landed several Suggest improvements: realtime suggestions colors, sports suggestions received World Cup tweaks, and online Suggest via OHTTP was enabled for eligible users in Firefox 153.
  • 2040561, 2039753, 2035614, 2038843
Adaptive autofill
  • James fixed soft-block counting to track autofill dismisses, rather than consecutive backspaces on the same autofill, and added telemetry to measure URLs reintegration after blocking.
  • 2040819, 2037177
Quick actions
  • Dharma created a new Firefox Labs quick action, fixed the Update action button, and re-enabled ScotchBonnet in some tests that were not updated yet.
  • Caleb added Calculator support for certain unicode operators.
  • 2023169, 1928635, 1923383, 2033861
Multi Context Address Bar
  • Moritz continued refactoring the urlbar code: converted some of the js modules to not be system modules, fixed dynamic results templates, incorrect reuse of result rows, and keyboard shortcuts on the unified search button panel.
  • 2039297, 2036095, 2039844, 2037933, 2030050
Other
Search
  • Mark removed old WebExtension-based search engines from the source tree, removed loading of search add-ons from resource://search-extensions/.
  • Caleb fixed multiple documentation issues and added a test covering searches from a private window.
  • 1904613, 2035878, 2037942, 2033545, 2005724
Places
  • Marco removed some unnecessary database transactions, fixed the bookmarks panel folder dropdown on Windows, and resolved several intermittent test failures.
  • Thanks to Sam Johnson who fixed the bookmark edit panel showing “mobile” instead of “Mobile Bookmarks”.
  • 2039534, 1505800, 2008829, 2029541, 2035084
  •  

More Kit, More Control – These Weeks in Firefox: Issue 203

Highlights

Internet connection error page with an adorable Kit illustration

Two radio button controls for the Smart Window Memories feature, including "Chats in Smart Window" and "Browsing across Firefox"

 

Friends of the Firefox team

Resolved bugs (excluding employees)

Script to find new contributors from bug list

Volunteers that fixed more than one bug

  • Amin Amir
  • Pranjali Srivastava
  • Sam Johnson

New contributors (🌟 = first patch)

Project Updates

Add-ons / Web Extensions

Addon Manager & about:addons
  • Fixed long-standing regression on the autocomplete and datalist popups for extension inline options pages on about:addons (introduced in Firefox 68 by Bug 1532724, fix shipping in Firefox 152) – Bug 1595158
WebExtensions Framework
  • Fixed access to web-accessible resources declared with <all_urls> from sandboxed documents (null-principal URLs), restoring extension redirects from the context-menu search flow, starting in Firefox 152 – Bug 2033905
WebExtension APIs
  • Added exhaustive test coverage for tabs.move() against additional edge cases related to split-view tabs – Bug 2029092

DevTools

  • Andreas Farre improved the Session History tab in the Application panel (still behind devtools.application.sessionHistory.enabled)
    • added support for remote debugging (#2014064, #2016121)
    • made sure that calls to History.replaceState are reflected in the UI (#2037359)
  • Julian Descottes [:jdescottes] fixed the most frequent DevTools crash we were observing in Telemetry, adding a guard against IDBTransaction errors when retrieving breakpoints in the Debugger (#2030260)
  • Nicolas Chevobbe [:nchevobbe] fixed the image preview tooltip for relative URLs images in constructed stylesheet (#2035503)
  • Julian Descottes [:jdescottes] reduced the overhead we had because of network requests monitoring by only decoding response content when the user actually want to see the response (#2026228)

WebDriver

Lint, Docs and Workflow

New Tab Page

  • We did our first region-specific trainhop on May 11th (just 15% of the US), and turned on HNT Nova (and sometimes Widgets) for those clients to get some advance-data of its behaviour in the wild! A note that HNT Nova gets turned on for everybody when Firefox 151 ships on May 19th.
    • We’ll be launching a similar experiment in the DE, probably on May 12th, also at 15% population.
  • Most of the team is heads down building out a sports-tracking widget, attempting to get that ready in time to be generally available for the upcoming World Cup event.
  • Dre landed a new world clock widget, which is currently off by default, but pretty snazzy!

World clock widget in New Tab featuring different time zones for YTO, BER, SYD, and LAX.

Search and Urlbar

Smart Window

  • natural language starting with tab close/undo 2035343 with expandable action log 2031508

Tab close and undo actions in Smart Window accompanied by an expandable log of actions taken

Storybook/Reusable Components/Acorn Design System

  • Nova token updates occasionally, focused on SRD

UX Fundamentals

  • Added support for the “SEC_ERROR_CA_CERT_INVALID” certificate error to the Felt Privacy error pages. – 2035942

Settings Redesign

  • Settings redesign is being tested and will hopefully go out in Firefox 152!
  •  

Backup for a Rainy Day – These Weeks in Firefox: Issue 202

Highlights

  • The profile backup mechanism has been enabled by default for all desktop platforms in Nightly, as well as Beta! The current plan is to have this ride out to Firefox 151 for Windows, macOS and Linux on May 18th!
    • This feature, when enabled, will create a copy of your profile data in the background and store it in a single file on your file system that you can restore from.
    • You will be able to manage this feature in Settings under Sync (for now)
      • Firefox settings page showing the Backup feature in dark mode. Backup is enabled, with details of the most recent backup and a “Backup now” button. The page displays the backup file name and a backup location folder path, along with “Choose…” and “Show in folder” buttons. A “Sensitive data” section includes an option to back up passwords and payment methods with encryption, and a disabled “Change password” button.
    • You can read more about the feature here
  • As followups to the recent addition to the WebExtension tabs API to support the new SplitView tabs feature, tabs.group() and tabs.ungroup() have been fixed to work correctly with split view tabs, and fixed split views being prepended instead of appended to tab groups when adopted into a new window – Bug 2029099 / Bug 2029534
  • Adaptive autofill has been enabled on Nightly.
    • Previously, autofill only completed domains (e.g. typing red autofilled reddit.com). Now it can also complete full URLs for pages you visit often (e.g. red → reddit.com/r/firefox), learning from what you actually click in the address bar. If a suggestion isn’t helpful, you can now dismiss it so autofill learns what not to show you too.
  • Markus Stange [:mstange] implemented dynamic toolbar on top in RDM (#1978145), but also implemented some static skeleton UI so it’s closer to what we actually have in Firefox for Android
    • dynamic toolbar is behind a pref: devtools.responsive.dynamicToolbar.enabled
    • it can be put on top by setting devtools.responsive.dynamicToolbar.onTop, otherwise it’s at the bottom
    • Firefox Responsive Design Mode on Desktop displaying the Mozilla homepage in a mobile viewport. The toolbar at the top shows a simulated Android device (including the dynamic toolbar) with a viewport size of 376 × 464 pixels and a device pixel ratio of 3. The page content is shown in French, featuring the Mozilla logo, a “Menu” link, a “Pause animation” button, and the headline “Bienvenue chez Mozilla” with accompanying text about trusted technology and digital rights.

Friends of the Firefox team

Resolved bugs (excluding employees)

Script to find new contributors from bug list

Volunteers that fixed more than one bug

  • Amin Amir
  • aoia7rz7l
  • Chukwuka Rosemary
  • DrSeed
  • Frédéric Wang Nélar
  • japandi
  • John Iweh
  • jonathancabera
  • Josh Aas
  • Keji Bakare
  • kofoworola shonuyi
  • konyhéa
  • liz
  • Mathew Hodson
  • Okhuomon Ajayi
  • Oluwatobi
  • ROSHAAN
  • Sam Johnson

New contributors (🌟 = first patch)

 

Project Updates

Add-ons / Web Extensions

Addon Manager & about:addons
  • In preparation for the Project Nova restyling of the about:addons page, we have refactored about:addons into separate per-component ES modules, splitting the monolithic aboutaddons.js and aboutaddons.html into 16 dedicated component files under components/ (with no behavior or UI changes) – Bug 2032014
    • NOTE: if you have working on patches with changes to about:addons internals it is very likely you’ll need to rebase and solve merge conflicts hit on top of this refactoring, the internals are still largely the same as before but don’t hesitate to reach out to the Addons team if you have doubts / questions or need help to figure out how to adapt your patch of top of these changes
WebExtensions Framework
  • Fixed exportFunction to preserve the constructibility of the wrapped function instead of unconditionally making all exported functions implicitly as constructors – Bug 2033173
    • Thanks to Gregory Pappas for contributing this improvement to the Content Scripts’ Xray Wrappers helpers!
  • Fixed a Firefox 151 regression where extension content scripts accessing location.ancestorOrigins caused subsequent page script reads of the same property to fail with “Permission denied”, breaking sites like Gmail – Bug 2034329
    • Thanks to Simon Farre for promptly investigating and fixing this recent regression!
WebExtension APIs
  • Updated sessions.getRecentlyClosed() to remove the hardcoded cap when maxResults is omitted – Bug 1392125
    • Shoutout to Amine Zroual for contributing this enhancement to the sessions WebExtensions API!

DevTools

Fluent

  • We’re now at over 72% of our strings being Fluent! Got a component still using .properties? Convert when you can!
  • Stacked area chart titled “Are We Fluent Yet?” showing the number and type of localization strings available in Firefox from 2018 to 2026. The chart tracks Fluent strings (green), Properties strings (blue), DTD strings (pink), and a small number of INI strings. Over time, Fluent strings steadily increase while DTD and Properties strings decline. A tooltip at April 26, 2026 shows 10,372 Fluent strings, 3,997 Properties strings, and no remaining DTD or INC strings, illustrating Firefox’s ongoing migration to the Fluent localization system.

Migration Improvements

New Tab Page

Search and Urlbar

  • Marco has fixed a couple of issues with the places databases to try and improve stability. This should help with avoiding users losing bookmarks or favicons.
  • Work continues on the new separate search bar to improve the functionality, e.g. allowing middle click to perform a search in a new tab, avoiding performing a search when adding a search engine.
  • Work also continues on the new Nova layouts.

Smart Window

  • uplifted 10 bugs to 150.0.1 dot release addressing initial user feedback from diary study and Connect
    • jump to bottom of conversation 2028692
    • stop streaming button 2029204
    • back/forward navigation from assistant 2029229
    • dark mode for various chips 2024499
  • search engine switching from smart bar 2021973
  • Nova styling within smart window 2026794

Storybook/Reusable Components/Acorn Design System

UX Fundamentals

  • The error pages shown when a server sends back an invalid response header or an unsupported content encoding now display accurate, context-specific messages. The invalid response header page also gained a helpful list of next steps. – 2027209
  • In progress: The error page illustrations are being replaced with new artwork, and the system now supports per-illustration size configuration, giving each image the ability to define its own appropriate dimensions. – 2031837

Settings Redesign

  •  

Settings Are Getting a New Look!

The redesign of Firefox Settings is now enabled by default in Nightly! With this change, we are making it easier for people to customize Firefox and discover the controls that matter most to them. The redesign improves navigation and organization, updates labels and descriptions, and uses a new underlying architecture that will make Settings easier to update over time.

Firefox Settings have grown a lot over the years. Our research showed that some areas had become crowded and more difficult to navigate, and that important controls could be hard to discover. Some terminology and layouts had also become inconsistent over time. Internally, the existing structure also made Settings harder to maintain and evolve over time.

Here are some of the changes you’ll notice:

  • More pages within Settings, with less content per page
  • Clearer grouping and better flow between related controls
  • Improved labels and helper text
  • Consistent use of our design system throughout
New Settings navigation and layout in Nightly

The new Settings navigation and layout

While the organization of Settings has changed, all your existing choices and preferences remain in place. You can always use the search bar to jump straight to what you’re looking for.

We plan to ship the redesign to the Release channel in Firefox 152. You will continue to see changes in Nightly, and we welcome feedback, especially in Mozilla Connect.

Customization has long been a core part of Firefox, and this redesign is intended to continue improving how people discover and manage their browser settings. We appreciate all of the feedback from the community so far on this project and look forward to refining the experience with your input!

  •  

Import-ant Updates – These Weeks in Firefox: Issue 201

Highlights

  • Import attributes will be supported for WebExtensions, starting in Firefox 150!
    • This allows WebExtension authors to import CSS module scripts and JSON into their JavaScript modules.
    • Examples:
      • import sheet from ‘./styles.css’ assert { type: ‘css’ };
      • import schema from “./policies-schema.json” with { type: “json” };
  • The Web Serial API is now available for testing in Firefox Nightly!
  • Dharma created a new quick action for Firefox Library
    • You can test this out in Firefox Nightly 151 by typing “library” in the URL bar

Word "library" typed out in the URL bar to see the Firefox Library quick action

Friends of the Firefox team

Resolved bugs (excluding employees)

Volunteers that fixed more than one bug

  • Chris Vander Linden
  • Chukwuka Rosemary
  • DrSeed
  • EJiro Oghenekome
  • Frédéric Wang Nélar
  • Itoro James
  • japandi
  • John Iweh
  • jonathancabera
  • Josh Aas
  • Justin Peter
  • Keji Bakare
  • kofoworola shonuyi
  • konyhéa
  • Noble Chinonso
  • Okhuomon Ajayi
  • Oluwatobi
  • Pranjali Srivastava
  • ROSHAAN
  • Sameeksha

New contributors (🌟 = first patch)

Project Updates

Add-ons / Web Extensions

Addon Manager & about:addons
  • Removed obsolete migration logic that forced distribution language packs to be reinstalled when upgrading from Firefox versions older than 67 – Bug 2000797
    • Thanks to Aloys for contributing the changes needed to cleanup this old XPIProvider migration logic
WebExtensions Framework
  • Fixed a regression where WebRTC permission popups were queued and suppressed while an extension popup was open – Bug 1982832
WebExtension APIs
  • Fixed an edge case where tabs.move would revert splitview tabs order while moving splitview tab to a new window  – Bug 2028832
  • Fixed windows API reporting window type normal instead of popup for windows opened via window.open() – Bug 2030631
    • Thanks to Brandon Lucier for contributing this small but very much appreciated fix to the windows WebExtensions API!

DevTools

Multi containers support in the Inspector panel

"hello section-container" name displayed in the container tooltip under the Inspector panel

An unmatched container rule in the Inspector panel

WebDriver

Lint, Docs and Workflow

New Tab Page

  • You can preview Nova on the New Tab browser.newtabpage.activity-stream.nova.enabled to true, and then opening a few tabs.
    • The browser.nova.enabled pref was just introduced to turn on the Nova design tokens. That’s still very much a work in progress.

Picture-in-Picture

Search and Urlbar

Search
  • Mandy updated the search-config-v2 schema for partnerCodes (2027191)
  • Florian fixed a high frequency intermittent test failure in the search code (2009494)
  • Standard8 fixed a bug with duplicate keywords for search engines, so that we now prefer the default search engine (2024714)
Nova
  • mconley made a rounder search input for about:newtab and about:privatebrowsing (2027144)
  • Drew is continuing his work on making Nova updates to the urlbar  (2026859)
New searchbar
Urlbar
  • Dharma also fixed a quick action telemetry error (1955058)
  • James has been working on Adaptive History for Autofill Improvements (2019695, 2019695, 2021079, 2019719, 2021036, 2028730, 2021039, 2019626)
  • Gijs landed a patch so that we use aria-notify instead of A11yUtils.announce for UrlbarView’s “special” announcements (2026753)
  • Dale added a tooltip to engines in the unified search panel (2028668)
  • Drew has been working on sports suggestions (2025052)
  • James fixed a bug where persisted search was not working for Fx versions prior to 148 (2025933)

Smart Window

Storybook/Reusable Components/Acorn Design System

UX Fundamentals

  • Felt Privacy error pages now support more NSS errors instead of falling through to the legacy page. Updated introductory text for the denied-port-access error. – 2024150
  • Fixed a test in browser_aboutCertError.js that was failing on Linux opt standalone and removed the platform skip. – 2028651
  • Added clock skew detection to the Felt Privacy error pages. When a certificate error is caused by a wrong system clock, the Felt Privacy error pages now show the same dedicated clock-skew message that the legacy error pages had, and helps guide users to correct their system time. – 2025049
  • ​​Fixed misaligned bullet points in the “What can you do?” section of Felt Privacy network error pages, restoring correct visual indentation for that list. – 2028632
  •  

VPN, Split View, and Other Goodies – These Weeks in Firefox: Issue 200!

Highlights

Friends of the Firefox team

Resolved bugs (excluding employees)

Script to find new contributors from bug list

Volunteers that fixed more than one bug

  • Chris Vander Linden
  • EJiro Oghenekome
  • Keji Bakare
  • konyhéa
  • Noble Chinonso
  • Pranjali Srivastava
  • Sameeksha

New contributors (🌟 = first patch)

Project Updates

Add-ons / Web Extensions

Addon Manager & about:addons
  • Fixed a long-standing issue where extension paths stored in extensions.json (and addonStartup.json.lz4) became incorrect after restoring a Firefox profile to a different location and causing all previously installed add-ons to fail to load  – Bug 1429838

DevTools

WebDriver

Lint, Docs and Workflow

New Tab Page

Search and Urlbar

  • Dao and Moritz worked on follow ups and fixed several bugs related to the new search bar implementation, which shipped in Fx 149 (2026248, 2023611, 2025746, 2022159, 2022809, 2023656, 2023141)
  • Mandy added a new `hasBeenUsed` attribute to search engines to enable better messaging system targeting (2024078)
  • Mandy also added a new telemetry category for when search mode is activated via a feature callout (2018806)
  • Drew and Daisuke are continuing their work on making Nova updates to the urlbar (2019165)
  • Dale fixed two bugs related to the new Unified Trust Panel (2019928, 2013044)
  • Florian used Claude to fix intermittent bugs related to urlbar and search telemetry (2009767, 2024301)
  • James fixed a high frequency intermittent test failure in the urlbar code (2001962)
  • Marco fixed a high frequency intermittent test failure in the places database code (1981199)

Tab Groups

DJ is adding the ability to copy all URLs from the tabs in a tab group 1984338 – Add a way to share/send/copy all tabs urls from a given tab group

  •  

QR Codes, Speed Calculators, Better RAM Usage – These Weeks in Firefox: Issue 199

Highlights

  • Thanks to overholt, macOS Nightly now has support for sharing the current tab’s URL via QR Code (Right-click tab, Share > Generate QR Code). This is held to Nightly for now.
    • A Firefox dialog titled “QR Code” displaying a large QR code with a Firefox Nightly logo in the center. Below the code is the URL “https://www.mozilla.org/en-US/” . At the bottom are “Save” and “Copy” buttons, and a close (X) button appears in the top-right corner of the dialog.
  • Scott Downe fixed an issue where newtab background GIFs could max out RAM while idle in the background by throttling animated background decoding on backgrounded tabs. This fix is going out in Firefox 150.
  • Special thanks to volunteer contributor 1justinpeter who just added speed unit conversion support to the AwesomeBar!
    • You can try it in Nightly – try 1000 km/h to m/s
      • The Firefox address bar showing a unit conversion query “1000 km/h to m/s.” A dropdown displays the option to search with Google and a calculated result of “277.7777777778 m/s.”
    • This is tentatively slated to go out in Firefox 150
  • New Tab Sections have been enabled by default in Canada!
    • Firefox New Tab page showing categorized content sections titled “Money” and “Parenting.” Each section contains a grid of article cards with images, headlines, and sources. The “Money” section includes finance and investment-related articles from sources like BNN Bloomberg, Toronto Star, and Financial Post. The “Parenting” section includes articles about family and lifestyle topics from sources like Good Housekeeping, The Cut, Parents Canada, and Slate. Each section includes a “Follow” button in the top-right corner

Friends of the Firefox team

Resolved bugs (excluding employees)

Volunteers that fixed more than one bug

  • Chris Vander Linden
  • Itiel
  • Justin Peter
  • Khalid AlHaddad
  • Mauro V [:cheff]
  • Sam Johnson
  • Sebastian Zartner [:sebo]

New contributors (🌟 = first patch)

Project Updates

Add-ons / Web Extensions

WebExtensions Framework
  • Fixed a structuredClone regression in the MV2 userScripts sandbox, bringing it in line with the fix already applied to content scripts and MV3 userScripts sandboxes, fix applied in Nightly 150 and uplifted to Beta 149 – Bug 2020773
  • Fixed a tab crash triggered by calling Document.parseHTMLUnsafe() from a browser extension content script (due to an assertion failure hit because parseHTMLUnsafe was wrongly trying to create a document that belongs to the expanded privileged principal that originated the call). The changes applied is now making sure parseHTMLUnsafe will use the webpage document’s principal (and prevent the crash as a side effect of that) – Bug 1912587
  • Fixed a regression where the load event on about:blank iframes would not fire when a content script injected a style element (regressed in Firefox 148 as a side effect of the changes applied by Bug 543435, fix landed in Nightly 140 and uplifted to Beta 149 and Release 148) – Bug 2020300
    • Thanks to Vincent Villa for promptly investigating and fixing this regression!
WebExtension APIs
  • As part of followups related to the work to allow action.openPopup calls without user activation, action.openPopup() will reject the requests when another panel, context menu, doorhanger, or notification is already open in the window – Bug 2022281
  • As part of followups to the work in support of the splitView mode support introduced in the tabs API, tabs.move() has been tweaked to correctly return all specified tabs moved in a split view – Bug 2022372
Addon Manager & about:addons
  • Fixed a rendering regression where the context menu on about:addons cards would appear with a transparent background at non-default zoom levels – Bug 2006926
    • Thanks to Botond Ballo for investigating and fixing this small rendering regression!

DevTools

WebDriver

Lint, Docs and Workflow

New Tab Page

Search

  • Marco worked on replacing ContentTask.spawn in various tests @ 2023131, 2023134
  • Dale worked on several TrustPanel UX fixes @ 2017369, 2017376
  • Daisuke fixed issue with SwitchTab results with no title @ 2020341
  • Moritz worked on several telemetry issues relating to the new search bar 2021927
  • Moritz fixed the unified search button having no focus border @ 2023656
  • Dao added support for middle clicking to search in the unified search menu @ 2011220

Smart Window

  • “Beta” badges 2017667
    • Firefox window mode switcher menu showing two options: “Classic Window” and “Smart Window (Beta).” The Smart Window option is selected with a checkmark. In the background, the page header reads “Smart Window Beta” with a colorful star icon.
  • Added AI Controls integration, supporting the blocked state (2010599)
    • Firefox settings page under “AI Controls” showing the “Smart Window” feature labeled “New.” A description explains it can be used for questions, to compare pages, and to provide personalized suggestions. The Smart Window setting is set to “Blocked” via a dropdown. The left sidebar shows navigation items including Privacy & Security, Sync, AI Controls, Firefox Labs, and More from Mozilla.
  • Added more user choice with split memory generation (2017428)
    • Firefox settings section titled “Memories,” explaining that the browser can learn from user activity to personalize responses. Two options are enabled: “Learn from chats in Smart Window” and “Learn from browsing in Classic and Smart Windows.” A “Manage memories” option appears below with a navigation arrow.
  • Added chat search in Firefox View (2009070)
  • Follow-up prompts now persist across tab switches (2019696)
  • Conversation starter prompts now update with the foregrounded tab (2013657)
  • Current tab context is now removable (2018802)
  • Keyboard fixes for smartbar input (2019556 2017939 2015090)
  • Show sign in button in chat if signed out (2015720)

Storybook/Reusable Components/Acorn Design System

  • Tim Giles fixed some issues with panel-list using popover:
    • A macOS issue where keyboard events went to the wrong <moz-select>Bug 2017668
    • Scrolling now dismisses an open panel-listBug 2018563
  • akulyk updated the panel-list variant of moz-select to use role=”combobox”, improving screen reader semantics and keyboard navigation consistency.
  • Dustin Whisman updated the moz- widgets CSS to pass use-design-tokens:
  • Dustin Whisman updated some design token names for consistency (Bug 2013342):
    • –font-size-heading-* now a font-size variant (was –heading-font-size)
    • –card-border-color, –card-box-shadow, –card-box-shadow-hover, –popup-box-shadow, –tab-box-shadow (were nested as variants previously and now are under their component name)

UX Fundamentals

  • Added keyboard autofocus to the “Try Again” button in Felt Privacy error pages so users who land on an error page can immediately press enter to retry. (2021447)
  • Added keyboard access keys to the three primary error page buttons: G (Go Back), T (Try Again), and P (Proceed to Site). (404501)
  • In progress: refactoring net error illustrations into a shared object and adding alt text so assistive technology can read out meaningful descriptions. (2022033)
  • In progress: adding improved messaging to the file-not-found error page. (2018850)
  • In progress: restoring the error page for Work Offline mode so users see messaging that accurately reflects that they’re in Offline mode, not that there’s a network problem. (
  •  

Extension Theming Improvements and More – These Weeks in Firefox: Issue 198

  •  
❌