18 Sep 2026
Planet Mozilla
Firefox Tooling Announcements: Firefox DevTools MCP 0.10.3 released
Firefox DevTools MCP (firefox-devtools-mcp) 0.10.3 is out on npm.
New features:
- New tool:
close_firefox_session- ends the browser session: it releases the connection when the server is attached to an existing Firefox, and closes the browser when the server started it. - New parameter:
fullPageforscreenshot_page- captures the whole scrollable document instead of the viewport. - New parameter:
downloadFolderforset_download_behavior- only used when setting the "allowed" behavior, it sets the folder where downloads should be stored and defaults to~/.firefox-devtools-mcp/output/downloads.
Bug fixes:
- No longer fails to find the Firefox binary on Linux with Flatpak.
restart_firefoxnow rejects when used against a server started with--connectExisting, whereas it used to restart the WebDriver session without restarting the browser and silently ignored all its configuration parameters.
Other changes:
- Servers started with
--connectExistingnow disconnect after 30 minutes without any tool call. restart_firefoxis now part of the mozilla-internal package, and should only be used in controlled environments, as it allows the agent to restart the browser with a custom configuration. Instead, the new toolclose_firefox_sessioncan be used whenever clients do not need to update the browser configuration, and will have a more consistent behavior.- Path checks for the
saveToparameters have been improved to avoid overlapping with existing profile folders
Install:
claude mcp add firefox-devtools npx @mozillamozilla/firefox-devtools-mcp@latest
codex mcp add firefox-devtools - npx @mozilla/firefox-devtools-mcp@latest
For internal Firefox development, swap firefox-devtools-mcp with firefox-devtools-mcp-moz in order to benefit from additional tools, such as chrome-privileged script execution.
Special thanks to all the contributors who filed issues and submitted patches for this release: f3tch (github), shoemoney and mightykatun.
Full changelog: Release v0.10.3 · mozilla/firefox-devtools-mcp · GitHub
Repository and issues: GitHub - mozilla/firefox-devtools-mcp: Model Context Protocol server for Firefox DevTools - enables AI assistants to inspect and control Firefox browser through WebDriver BiDi · GitHub
Public chatroom: https://chat.mozilla.org/#/room/#firefox-devtools-mcp:mozilla.org
1 post - 1 participant
18 Sep 2026 10:14am GMT
17 Sep 2026
Planet Mozilla
The Mozilla Blog: Mila and Mozilla announce new initiative to build trustworthy open source AI for everyone, with Canadian government support

Today at ALL IN, Canada's largest AI and technology event, Mozilla and Mila announced a new initiative and fresh investment to build an open source AI foundation layer that enables organizations and institutions to own and operate advanced AI systems locally, ensuring full control over their technology and data.
Doubling down on its commitment to open source AI, the Government of Canada announced its support for the initiative. Mila will lead the technical delivery and coordination of the project, while Mozilla contributes technical expertise. It also provided the initial $5 million investment to kick off the project. Hypertec is committing an additional $1 million in first-year funding to accelerate initial Canadian deployments of the open source AI foundation layer on Hypertec hardware.
"Canada has a choice: depend on technologies developed elsewhere, or build more of what we need here at home," said The Honourable Evan Solomon, Minister of Artificial Intelligence and Digital Innovation and Minister responsible for the Federal Economic Development Agency for Southern Ontario. "Open source AI gives Canadian businesses and institutions greater control over their technology and data, while making powerful tools more affordable, accessible, and easier to adapt. By supporting this work, we are strengthening Canada's capacity to build and adopt AI on our own terms."
Mila and Mozilla will lead the work together: Mila drawing on a world-class community of close to 2,000 researchers and professionals, Mozilla as technical partner from industry, bringing 25 years of experience stewarding open infrastructure others build on. Mila and Mozilla are actively engaging new partners, inviting companies, research institutions, funders, governments, and developers to join and support this work.
What's being built
The goal is simple: make owning your AI as easy as renting it. Using open source models was never the hard part. Turning a raw open source model into something a small business, a hospital, a local charity, or a government can run in production - secure, reliable, plugged into everything else - takes an engineering team most organizations and institutions do not have and months they can't spare.
The goal is to offer businesses and organizations a ready-to-use AI package that they can run privately and keep under their own control, rather than having to build a complex system themselves or rely entirely on expensive, pay-per-use proprietary AI services.
For example, a small manufacturer could use the system as a private AI assistant for its employees. It could search the company's manuals, procedures, and past project files; help staff draft reports or answer technical questions; and help its software team write and improve code. Because the system is designed to be able to run locally, the company could do this while keeping its proprietary information and data within its own environment.
That also means lower costs. For the vast majority of everyday business tasks, companies will be able to use open source AI running on open source tools instead of paying a commercial provider every time an employee makes a request. But this requires reducing the technical work and expense involved in putting open source AI into practice.
This initiative was founded to solve that problem, building the free layer that makes owning open source AI easy - the same kind of layer the web was built on. It has two halves: An open standard, published as interface contracts, so any part of the stack can be swapped for a better one. And a working "reference implementation" any organization can install on its own machines or the ones it chooses, running the models and controls it chooses against its own data, with governance and access control built in from the start. The ambition is that with the standards and foundation in place, open source AI can be built anywhere, by anyone.
"Six months ago, we announced our partnership with Mozilla to advance open source and sovereign AI. Today, we are bringing that work to a whole new level," said Valérie Pisano, President and CEO of Mila. "By delivering an open, secure AI foundation layer, we empower organizations, from small businesses to non-profits to governments, to own their technological future so they can run, control, and maintain AI models themselves. At Mila, our research community has always believed that for AI to be trustworthy and accessible, it must be built on open standards that keep control in local hands."
The work already underway
Over the last six months, Mila and Mozilla have been designing the architecture, deciding which open source components belong at each layer, and testing that the whole system works end to end. This investment builds on that progress.
Working alongside Mila and Mozilla, Hypertec will help move the initiative from research and reference implementation to real-world adoption by Canadian businesses and institutions, providing a practical, private, and cost-effective path to deploy AI while maintaining greater control over their data and technology.
"AI is advancing at an extraordinary pace and has the potential to transform our economy and society for the better. Canada has an important role to play in ensuring that AI is developed and adopted responsibly, said Simon Ahdoot, CEO of Hypertec Group. "Hypertec is proud to help turn open source innovation into AI that Canadian organizations can deploy securely and under their own control. This is exactly the kind of partnership between government, research, and Canadian industry needed to realize the full potential of AI."
Why now
Mozilla's State of Open Source AI report found that while 79% of developers adding AI functionality use open models, only 53% of teams ever reach production, stopped by cost, security, integration, and maintenance. This work aims to change that.
"AI today is at a crossroads, where it could be closed and owned by a few, or open and available to every coder, developer, enterprise, and nation," said Mark Surman, President of Mozilla. That's what we're building - an open source AI ecosystem that fits together as seamlessly as the web, and that anyone, anywhere can build on. We're so grateful to Canada for scaling this work, and call on partners across sectors - from enterprises and governments to coders and startups - to join us in building this future."
Within six months, Mozilla and Mila expect to publish working reference implementations for enterprise, government and public-interest use cases. The two-year ambition is bigger: to have solved this problem outright, so that open source AI can be adopted fully and easily, anywhere, by anyone.
The post Mila and Mozilla announce new initiative to build trustworthy open source AI for everyone, with Canadian government support appeared first on The Mozilla Blog.
17 Sep 2026 7:30pm GMT
Firefox Nightly: High-speed Release Trains – These Weeks in Firefox: Issue 209
Highlights
- Firefox 155 just released! That's the first release that went through the full 2-week release cycle process.
- The WebExtensions team added a new backgrounds_area theme property so themes can explicitly control whether background images apply to the whole window or only the top toolbars
- Thanks to Emilio for the new theme property to control background image placement!
- This is targeting Firefox 156, and developer documentation will be added to MDN soon.
- The multi-context address bar for New Tab has been enabled in Nightly!

-
- There are a number of known bugs to address before this can ride. We're tentatively aiming to have this release sometime in Q4.
- Notice an issue with it? File a bug here!
- Volunteer contributor Andrew fixed a white flash for the New Tab page on startup for users that have dark mode enabled by default.
- The DevTools team has made it possible to inspect and edit stylesheets from within the JavaScript Debugger pane.

- The feature can also be enabled from the experimental section in the devtools settings panel, or by setting devtools.debugger.features.stylesheets-in-debugger to true in about:config.
Friends of the Firefox team
Resolved bugs (excluding employees)
Script to find new contributors from bug list
Volunteers that fixed more than one bug
- :Benjamin Peterson
- ExplodingJoysticks
- Gopalarathnam Venkatesan
- Khalid AlHaddad
- Lukáš Lipinský
- Chris Van Linden
New contributors (🌟 = first patch)
- 🌟 Amadi: Update comments that point at the removed openUILinkIn function
- 🌟 dchen705: Remove unnecessary module import in browser/components/urlbar/tests/browser/head.js
- Ekerin Agboola: Remove old documentation related to the removed SEARCH_SUGGESTIONS_LATENCY_MS histogram
- ExplodingJoysticks:
- Gopalarathnam Venkatesan:
- 🌟 Andrew: White flash on startup caused by abouthome_cache storing incompatible startup frame
- 🌟 Kana: browser_privatebrowsing_resetPBM.js awaits an array instead of Promise.all, so the tab-close wait does nothing
Project Updates
Add-ons / Web Extensions
- As part of Nova about:addons work:
- Restyled the Extensions panel empty states to match the Figma specs, including a new illustration for the disabled add-ons and private browsing states - Bug 2058450
- Fixed a jiggle effect when scrolling through theme previews in about:addons - Bug 2059917
- Added spacing between message bars and their sibling elements in the about:addons page (empty state promo, theme appearance mode control) - Bug 2066436
- Set focus on the extension permissions prompt dialog so keyboard users can reach it - Bug 2059855
- Removed activeAddons/activeTheme/activeGMPlugins from the legacy telemetry environment, now collected only through Glean - Bug 2055613
DevTools
- Nicolas Chevobbe [:nchevobbe] fixed an issue in the inspector to stop showing the HTML editor for nodes (e.g text or whitespace nodes) which should not be editable when F2 is pressed. (#2064213)
- Sebastian Zartner [:sebo] updated the documentation for the Rules view to include details around the @media emulation panel added some weeks back. (#2063851)

- Chris Van Linden fixed an styling issue in debugger editor file search bar where the button hover background overlapped the focus outline (#2063466)
- Nicolas Chevobbe [:nchevobbe] fixed an a11y issue where the keyboard focused sliders in the fonts panel did not have the correct contrast against the background. This allows keyboard users to easily see which control currently has focus. (#2062576)
- Hubert Boma Manilla (:bomsy) added telemetry to track the usage of styles sheets shown in the debugger (#2060500)
WebDriver
- Khalid AlHaddad improved Marionette and Remote Agent to quit Firefox with a custom error code when they failed to start their server.
- Khalid AlHaddad updated the moz:debugging module to properly handle nested pauses.
- Sameem updated the handling of user contexts to clean up the settings set per a user context (e.g., proxy settings or accepting of insecure certificates) also when a user context is removed outside of WebDriver BiDi.
- Henrik Skupin updated the WebDriver:GetElementTagName command to return the element's qualified name.
- Henrik Skupin improved the Perform Actions command in both Marionette and WebDriver Bidi to dispatch intermediate events at more precise intervals when duration is greater than 0.
- Alexandra Borovova updated the "browsingContext.startScreencast" command to handle a screencast file creation on operating systems that don't have a dedicated download folder.
Lint, Docs and Workflow
- The TypeScript linter has been promoted to tier-2.
- There is no automation for the core type updates yet.
- However, several areas have been working on support, hence the promotion to tier 2.
- Until we get the automation in place, we will not be ready for wider roll-out, as it will be more likely that core patches will break the TypeScript reporting.
New Tab Page
- Developer experience improvement: it's no longer necessary to create the WebPack bundles when updating New Tab JSX / SCSS files. This occurs automatically during the ./mach build [faster] step. Thanks to Nathan Barrett for his work there!
- Mike Kaply made it so that New Tab Settings honor Locked Preferences in policy by making the New Tab settings UI read and respect policy-locked preferences and disabling corresponding controls so managed/enterprise users cannot override locked prefs from the settings surface.
- Mike Conley landed a patch to address potential shutdown hangs / crashes when newtab trainhop XPIs are in the midst of being downloaded during a shutdown.
- Irene Ni made it so that we always show an add shortcut button for New Tab shortcuts when hovering the outside edge of the shortcuts area

- Irene Ni fixed some <hr> seperators that were leaking out of some containers by scoping the HR rules to the briefing-card container.
- Reem Hamoui added missing alt text/ARIA labels to the New Tab Page weather widget, restoring screen‑reader semantics for weather images in the NTP widgets.
- Jack Brown added scroll100 and scroll250 boolean metrics to the newtab ping to capture 100px/250px scroll‑depth thresholds for analytics-this is a telemetry/schema change with no UI impact.
- Scott Downe created the 'spaces' content layout variant for the New Tab Page, introducing an alternate DOM/CSS layout for Spaces that changes tile/content rendering and is gated by the Spaces rollout flag/pref.
- A Stocks widget is in-flight, starting with the US market

-
- Nina Pypchenko [:nina-py] added a Markets/Watchlist dropdown to the Stocks widget on New Tab so users can switch views in-place; the dropdown selection is persisted in the widget state.
- Nina Pypchenko [:nina-py] let users add default tickers to their Stocks Watchlist so new or reset users see a curated set of tickers and the add-flow now persists defaults to the watchlist storage.
- Nina Pypchenko [:nina-py] added a small size to the Stocks New Tab widget, introducing a compact 1×1 Stocks tile in the Firefox New Tab Page layout so users on narrow windows or dense NTP configurations can keep Stocks visible without consuming medium/large slots.
- Nina Pypchenko [:nina-py] updated the Stocks widget feed to fetch data for individual stock tickers, changing the widget network layer to per-ticker requests so added symbols get independent, timely updates and per-symbol errors are surfaced instead of breaking the entire feed.
- Nina Pypchenko [:nina-py] added ticker search to find and add individual stocks, adding a search/lookup UI and add flow that calls the ticker lookup API and updates widget state/local storage so users can search, add, and immediately see new symbols on their New Tab Page.
- Bryan Olsson added a plural selector to the Fluent string newtab-stocks-watchlist-full in the New Tab Page localization so the Stocks widget shows correct singular/plural wording for watchlist sizes across locales, fixing grammar that could confuse users when their watchlist count changes and touching the NTP stocks string bundle used by all localized builds.
- We've also started rolling out an experimental Privacy widget

-
- Reem Hamoui changed the Privacy widget copy color to grey in the New Tab Page so the "Nightly blocks trackers as you browse. You will see them here." text displays with correct muted contrast (2063205).
- Reem Hamoui restored the ETP OFF state rendering in the New Tab Page privacy widget so the widget shows the actual ETP OFF status instead of misleading 'blocks trackers' copy for users who disable ETP (2063525).
- Reem Hamoui applied UX fixes to the New Tab Page privacy widget to correct alignment, labels, and click-targets so users see and interact with the widget reliably and accessibility attributes behave as expected.
- Reem Hamoui fixed the blocked-tracker count not updating after opening a new tab by ensuring the tally is recomputed on tab open (cache invalidation + UI binding refresh), restoring accurate tracker numbers in the widget.
- We've also started tinkering with some new layout variants
- Here's one such layout (widget column on left):

-
- Irene Ni updated SectionsLayoutFeed's 7-double-row-2-ad fallback to match Remote Settings so feed layout and ad fallback counts align with remote config, reducing layout mismatches and incorrect ad placements in feeds using the fallback (2063684).
- Irene Ni implemented a carousel card type for the New Tab feed, adding slide-based card rendering and navigation hooks so users get swipeable/rotating cards in the carousel component.
- Irene Ni deduped impressions for a carousel slide that cycles back into view, preventing duplicate impression pings when a slide reappears and improving the accuracy of telemetry/ad metrics.
- Dre cleaned up orphaned wallpapers in the wallpaper service to remove broken entries and reduce wasted storage so users no longer see missing background tiles.
- Dre uploaded new wallpaper assets to match updated margins so backgrounds render without cropping or misalignment under the new NTP layout.
- Nina Pypchenko [:nina-py] fixed wallpaper attribution rendering in the Nova New Tab flow by adjusting the Nova-specific NTP component's conditional rendering (CSS/JS) so the attribution node is not skipped when the nova feature is enabled, restoring photographer/credit metadata on New Tab pages for users on Nova-enabled desktop builds and preventing missing attribution UX.
- We're in early days in building out the infrastructure for a Recent Searches widget
- Nina Pypchenko [:nina-py] added a blank widget scaffold to the New Tab Page widget registry for the Search team (bug 2065011), creating a no-op/placeholder widget registration hook so the Search team can iterate on experiments without changing current NTP visuals - no immediate visible impact for end-users until the widget is populated.
- Dão Gottwald fixed an unscoped panel-item::part(button) rule that stripped the icon slot from panel-items it didn't own, restoring missing icons in New Tab panels and preventing blank/empty buttons in the UI.
- Maxx Crawford added support for auto-minimized the New Tab widgets section after a short delay, closing expanded widgets automatically to reduce visual clutter and accidental persistent open state.
- Irene Ni implemented the Topic Navigation Strip V1 in the New Tab Page, adding a horizontal topic-nav UI in the New Tab (top-sites/topics area) that improves discoverability and lets users switch topic feeds faster.
Picture-in-Picture
- Pier Angelo Vendrame made the document PiP video size spoofable under resist fingerprinting.
- Lukáš Lipinský fixed WebVTT tracks failing to display after opening a PiP window.
Search and Urlbar
Nova UI refresh
- Drew and Daisuke continued polishing the urlbar experience in Nova.
- Bug 2067360, Bug 2063170, Bug 2063167, Bug 2063127
Suggest
- Drew fixed alignment of the explanation text on various result types. Bug 2063460
- Drew enabled more providers (like Wikipedia) for DE, FR, IT regions. Bug 2064557
- Drew updated important dates suggestions for 2027 in DE, FR, GB, IT and US regions. Bug 2064437
- Dao fixed a regression with the result menu being empty on certain results. Bug 2066758
Adaptive autofill
- James is analyzing results of experiments and working with Product to let the feature ride to Release in the near future.
Quick actions
- Dale improved the Open Firefox Labs action. Bug 2063849
- Dale improved styling of disabled actions. Bug 2056488
Multi Context Address Bar
- Dao and Moritz made great progress with having the urlbar code work in different contexts, including across processes.
- Dao migrated some text input context menus (address bar, search bar, Thunderbird compose subject) onto a single shared menu with a new custom-item API, allowing removal of the legacy moz-input-box component.See EditContextMenu for documentation and usage. Bug 2064369.
- Dharma started refactoring the urlbar code to use extended classes. Bug 2064728
- New tab search bar has been enabled in Nightly! Bug 2062212
- The uipc variant of urlbar tests is now tier1, failures will be backed out.
Other notable Address Bar fixes
- Dao made tabbing from the urlbar field focus the search field, if present on the toolbar, instead of the search button inside it. Bug 2009628
- Daisuke addressed an issue where an autofilled URL was ignored just after launching Firefox. Bug 2057763
- Moritz fixed a regression causing undo to no longer work in the urlbar. Bug 2061633
- Moritz fixed a regression with the placeholder text in the urlbar showing garbled characters. Bug 2063779
Search
- Mark added support for POST search engines to the contextual actions in the urlbar. Bug 2064047
- Caleb fixed an accessibility issue in the add search engine dialog. Bug 2041438
Places
- Caleb fixed a bug where moving a group of folders could move some bookmarks out of their parent folder. Bug 2044707
17 Sep 2026 5:14pm GMT