Manifest v3 in Firefox: Recap & Next Steps (2022)

Rob Wu

12 responses

It’s been about a year since our last update regarding Manifest v3. A lot has changed since then, not least of which has been the formation of a community group under the W3C to advance cross-browser WebExtensions (WECG).

In our previous update, we announced that we would be supporting MV3 and mentioned Service Workers as a replacement for background pages. Since then, it became apparent that numerous use cases would be at risk if this were to proceed as is, so we went back to the drawing board. We proposed Event Pages in the WECG, which has been welcomed by the community and supported by Apple in Safari.

Today, we’re kicking off our Developer Preview program to gather feedback on our implementation of MV3. To set the stage, we want to outline the choices we’ve made in adopting MV3 in Firefox, some of the improvements we’re most excited about, and then talk about the ways we’ve chosen to diverge from the model Chrome originally proposed.

Why are we adopting MV3?

When we decided to move to WebExtensions in 2015, it was a long term bet on cross-browser compatibility. We believed then, as we do now, that users would be best served by having useful extensions available for as many browsers as possible. By the end of 2017 we had completed that transition and moved completely to the WebExtensions model. Today, many cross-platform extensions require only minimal changes to work across major browsers. We consider this move to be a long-term success, and we remain committed to the model.

In 2018, Chrome announced Manifest v3, followed by Microsoft adopting Chromium as the base for the new Edge browser. This means that support for MV3, by virtue of the combined share of Chromium-based browsers, will be a de facto standard for browser extensions in the foreseeable future. We believe that working with other browser vendors in the context of the WECG is the best path toward a healthy ecosystem that balances the needs of its users and developers. For Mozilla, this is a long term bet on a standards-driven future for WebExtensions.

Why is MV3 important to improving WebExtensions?

Manifest V3 is the next iteration of WebExtensions, and offers the opportunity to introduce improvements that would otherwise not be possible due to concerns with backward compatibility. MV2 had architectural constraints that made some issues difficult to address; with MV3 we are able to make changes to address this.

(Video) Chrome Is Killing AdBlockers & Firefox Will Save Them

One core part of the extension architecture is the background page, which lives forever by design. Due to memory or platform constraints (e.g. on Android), we can’t guarantee this state, and termination of the background page (along with the extension) is sometimes inevitable. In MV3, we’re introducing a new architecture: the background script must be designed to be restartable. To support this, we’ve reworked existing and introduced new APIs, enabling extensions to declare how the browser should behave without requiring the background script.

Another core part of extensions are content scripts, to directly interact with web pages. We are blocking unsafe coding practices and are offering more secure alternatives to improve the base security of extensions: string-based code execution has been removed from extension APIs. Moreover, to improve the isolation of data between different origins, cross-origin requests are no longer possible from content scripts, unless the destination website opts in via CORS.

User controls for site access

Extensions often need to access user data on websites. While that has enabled extensions to provide powerful features and address numerous user needs, we’ve also seen misuse that impacts user’s privacy.

Starting with MV3, we’ll be treating all site access requests from extensions as optional, and provide users with transparency and controls to make it easier to manage which extensions can access their data for each website.

At the same time, we’ll be encouraging extensions to use models that don’t require permanent access to all websites, by making it easier to grant access for extensions with a narrow scope, or just temporarily. We are continuing to evaluate how to best handle cases, such as privacy and security extensions, that need the ability to intercept or affect all websites in order to fully protect our users.

What are we doing differently in Firefox?

WebRequest

One of the most controversial changes of Chrome’s MV3 approach is the removal of blocking WebRequest, which provides a level of power and flexibility that is critical to enabling advanced privacy and content blocking features. Unfortunately, that power has also been used to harm users in a variety of ways. Chrome’s solution in MV3 was to define a more narrowly scoped API (declarativeNetRequest) as a replacement. However, this will limit the capabilities of certain types of privacy extensions without adequate replacement.

Mozilla will maintain support for blocking WebRequest in MV3. To maximize compatibility with other browsers, we will also ship support for declarativeNetRequest. We will continue to work with content blockers and other key consumers of this API to identify current and future alternatives where appropriate. Content blocking is one of the most important use cases for extensions, and we are committed to ensuring that Firefox users have access to the best privacy tools available.

Event Pages

Chrome’s version of MV3 introduced Background Service Worker as a replacement for the (persistent) Background Page. Mozilla is working on extension Service Workers in Firefox for compatibility reasons, but also because we like that they’re an event-driven environment with defined lifetimes, already part of the Web Platform with good cross-browser support.

We’ve found Service Workers can’t fully support various use cases we consider important, especially around DOM-related features and APIs. Additionally, the worker environment is not as familiar to regular web developers, and our developer community has expressed that completely rewriting extensions can be tedious for thousands of independent developers of existing extensions.

In Firefox, we have decided to support Event Pages in MV3, and our developer preview will not include Service Workers (we’re continuing to work on supporting these for a future release). This will help developers to more easily migrate existing persistent background pages to support MV3 while retaining access to all of the DOM related features available in MV2. We will also support Event Pages in MV2 in an upcoming release, which will additionally aid migration by allowing extensions to transition existing MV2 extensions over a series of releases.

(Video) MetaTr@versal: Alignments and Agreements

Next Steps for Firefox

In launching our Developer Preview program for Manifest v3, our hope is that authors will test out our MV3 implementation to help us identify gaps or incompatibilities in our implementation. Work is continuing in parallel, and we expect to launch MV3 support for all users by the end of 2022. As we get closer to completion, we will follow up with more detail on timing and how we will support extensions through the transition.

For more information on the Manifest v3 Developer Preview, please check out the migration guide. If you have questions or feedback on Manifest v3, we would love to hear from you on the Firefox Add-ons Discourse.

12 responses

  1. Stefan Manifest v3 in Firefox: Recap & Next Steps (2) wrote on May 18, 2022 at 12:14 pm:

    Hi Firefox team,

    As a member of the W3 browser extension group.
    It is good to hear that you will support the persistent background page for MV3. So my Turn Off the Lights Firefox extension can continue to deliver the support of my accessibility feature for my Firefox users. https://www.turnoffthelights.com/firefox

    Thanks,

    1. Rob Wu Manifest v3 in Firefox: Recap & Next Steps (3) wrote on May 18, 2022 at 12:49 pm:

      Just to clarify, MV3 will receive support for event pages, not *persistent* background pages. They share mostly the same set of APIs, but extensions built on event pages should be designed to be resilient against inevitable termination. This reflects the reality where the browser does not always have a choice in whether to keep an extension process alive.

  2. Vladimir Prelovac Manifest v3 in Firefox: Recap & Next Steps (4) wrote on May 18, 2022 at 1:47 pm:

    What will become the ground truth for WebExtensions API?

    Currently it is
    https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions

    but it covers v2 only. Will v3 be added and in what way will be differences in v3 implementation across browsers be highlighted?

    1. Rob Wu Manifest v3 in Firefox: Recap & Next Steps (5) wrote on May 18, 2022 at 2:49 pm:

      MDN is still the ground truth of documentation for WebExtension APIs.

      (Video) How to develop a Chrome Extension to Scrape Emails ? | Chrome Extension Tutorial

      For example, the tabs.executeScript API, whose functionality has moved to the scripting namespace, has a notice that mentions that the it’s MV2 only, with the alternative being linked. Its compatibility table also mentions that the method is MV2-only. See it for yourself at https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/executeScript.

  3. zakius Manifest v3 in Firefox: Recap & Next Steps (6) wrote on May 18, 2022 at 2:22 pm:

    There are multiple usecases for persistent background pages: proper mouse gestures and keyboard shortcuts have to be ran there (using additional, currently missing, APIs though) as ContentScripts are too limited and unreliable, due to lack of SQL compatible storage (and boot time of workarounds) you need persistent background page when you use searchable database too (using IndexedDB shenanigans to somehow get it working would be messy and likely unreliable with short lived event pages).
    Besides that many extensions have to make CORS requests, otherwise they wouldn’t work… I’m guessing you’re forcing the CS to execute event that will then perform the request and message the result back? That’s not great. And what about userscripts performing CORS requests? Does the moder Userscripts API allow that, or is that going away completely?

    I know you intend to keep supporting Mv2 in the foreseeable future, but these issues are really scary. And looking at the current state of WebExtensions (so… no issues I pointed out when you announced building Chromium model copy resolved yet…) I’m afraid once Mv2 goes away we’ll lose another big chunk of extensions and you’ll do nothing to prevent it.

    1. Rob Wu Manifest v3 in Firefox: Recap & Next Steps (7) wrote on May 18, 2022 at 3:19 pm:

      > Besides that many extensions have to make CORS requests, otherwise they wouldn’t work… I’m guessing you’re forcing the CS to execute event that will then perform the request and message the result back?

      Content script can still send cross-origin requests if the destination cooperates using the [standard CORS mechanism](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). Other requests would indeed require the assistance of the background script.

      > And what about userscripts performing CORS requests? Does the moder Userscripts API allow that, or is that going away completely?

      Most of the current user script extensions have a suboptimal security architecture, because all user scripts are executed in the same environment as the content script. Because the underlying primitive (string-based code execution in content scripts) have been removed, user script managers can currently not be ported to MV3.

      We are looking for a way to allow user script managers to continue working, ideally in a more secure way. While we already had a userScripts API, its API would have to change to stay reliable in MV3. Since the API had to change anyway, we are re-examining its design, in the hopes of reaching an interoperable API that enables extension developers to build cross-browser user script managers.

      1. zakius Manifest v3 in Firefox: Recap & Next Steps (8) wrote on May 19, 2022 at 3:48 am:

        while I understand and value the push for privacy and security I believe it’s important to leave users the freedom to decide what potential risks they are willing to take for power and convenience, that’s why WebExtensions, while finally a proper API, were a big step back for Mozilla

        I like how Android does some things: there are permissions that can be required by an app to even be installed and these are granted automatically, there are ones to be called on runtime that user can grant with a simple modal, there are ones that user has to grant using the settings app for increased security, and on top of that there are ones you need ADB or root to grant and these (or at least some of) only persist until device reboot. Such a permissions model would allow much more power while keeping the top security, though obviously it’s a lot of work to do, but then again, currently we are missing a lot of power already, and Mv3 is only going to make things worse in that aspect, so pushing towards improving the situation would be a great improvement

        (Video) [07x01] How to Install Julia and Pluto.jl (Reactive Notebook Programming Environment for Julia)

  4. Dmytro Manifest v3 in Firefox: Recap & Next Steps (9) wrote on May 20, 2022 at 8:07 am:

    Hi! Thanks for update!

    Quick question: In manifest v2 we used web-worker for wasm on the background page but now we can’t create a web-worker inside service worker.

    Maybe someone knows a workaround for this?

    1. rmus18 Manifest v3 in Firefox: Recap & Next Steps (10) wrote on May 23, 2022 at 6:12 am:

      I have also faced this issue. Service workers don’t have access to the window and web workers are now useless. For now I’ve just ran the web worker script in promise calls but have not found a full solution.

      1. guest271314 Manifest v3 in Firefox: Recap & Next Steps (11) wrote on June 4, 2022 at 6:14 pm:

        It is possible to communicate between arbitrary Web page and MV3 ServiceWorker using “web_accessible_resources”, embedding an that loads a local Web accessible resource, and clients.matchAll({includeUncontrolled: true})) in ServiceWorker. See https://github.com/GoogleChrome/developer.chrome.com/issues/2688#issuecomment-1128295345.

    2. Shane Caraveo Manifest v3 in Firefox: Recap & Next Steps (12) wrote on May 25, 2022 at 2:01 pm:

      If you require the use of a worker or DOM APIs, in Firefox you can just use event pages rather than the service worker background. Our Developer Preview only supports the event pages now, but we intend to support both in the future.

  5. Expect to lose many WebExtensions Manifest v3 in Firefox: Recap & Next Steps (13) wrote on May 24, 2022 at 1:52 am:

    MV3 is like taking a Ferrari (current MV2 with all the features), removing the engine and then saying “just race!”. All you can do is to take the car on top of the hill and let it roll down. Then tow it back up manually and repeat.

    Taking away persistent background pages is one of the most idiotic architectural changes I have ever heard of. The power of many extensions is based on the fact that they can process lots of data and keep it cached in the background page enabling fast UI and access. If you have to reparse and reprocess this data all the time, performance of the application becomes unacceptable.

    I find it weird that no-one seems to care about that at all.

FAQs

Will Firefox be affected by manifest V3? ›

The controversial Manifest V3 is supported by Edge and Safari, while Brave, Firefox and Vivaldi will continue to have simultaneous support for V3 as well as Manifest V2.

What is manifest V3? ›

Manifest V3 is an application programming interface (API) that Google will use in its popular browser, Chrome. It currently employs an API called Manifest V2. These Manifest APIs are the systems that govern how Chrome extensions interact with your browser.

Does Opera use manifest V3? ›

The Manifest v3 changes apply to extensions for Chromium-based browsers – such as Chrome, Edge, and Opera – Safari, and Firefox.

Does uBlock Origin work with manifest V3? ›

Raymond Hill, the author of uBlock Origin advanced ad-blocker, published an experimental "uBO Minus" browser add-on that is built around the declarativeNetRequest API of Manifest V3.

Does Firefox have a future? ›

The Google-Mozilla deal was last renewed in 2020 and is expected to expire in 2023. Stats show Firefox's market share has dropped around 1 percent over the course of this agreement. The company's own figures show its monthly active users have stayed stable at around 215 million.

Why are people switching to Firefox? ›

Google's 3 billion Chrome users now have a reason to switch to Firefox, because the privacy-focused browser has just confirmed some big news. The announcement concerns ad blockers, and the Google Chrome changes dubbed Manifest V3, which may cause some ad blockers to break.

Will manifest V3 affect brave? ›

Brave shields (adblocking, tracker blocking, anti-fingerprinting) will not be affected by MV3 whatsoever.

Is Firefox is better than Chrome? ›

Is Firefox Really Better Than Chrome? Firefox is a more private and secure browser than Chrome, but Chrome is faster and contains more features. Is Firefox Safer Than Chrome? Both browsers are safe, but Firefox's tracking protection is more comprehensive than Chrome's.

Why is manifest file required? ›

The manifest file is also where you can declare what types of hardware or software features your app requires, and thus, which types of devices your app is compatible with. Google Play Store does not allow your app to be installed on devices that don't provide the features or system version that your app requires.

Does Firefox support mv3? ›

Firefox doesn't yet support manifest v3, but that shouldn't deter you from developing and deploying your extension on both platforms. You can still use web-ext run to develop an mv3 version for Chrome and an mv2 version for Firefox. You'll just need to use two different manifest files (one for mv3 and one for mv2).

Is Firefox Chromium-based? ›

Firefox is not based on Chromium (the open source browser project at the core of Google Chrome). In fact, we're one of the last major browsers that isn't. Firefox runs on our Quantum browser engine built specifically for Firefox, so we can ensure your data is handled respectfully and kept private.

Does Chrome ban adblock? ›

Google's changing how extensions work, and getting rid of the dynamic filtering that ad blockers rely on in the process. In 2023, Google is making a huge change to how Chrome web browser extensions work — and it might be killing Chrome ad blockers in the process.

Does Adblock use manifest V2? ›

Ad-blockers now utilize Google Chrome's “webRequest” API to block HTTP requests through the current Manifest V2 extension but the Manifest V3 extension “declarativeNetRequest” utilizes a blocklist of specific URLs.

Is there an adblock for iPhone? ›

The easy way to block ads on your iPhone and iPad. Annoying ads like pop-ups, video ads, banners and ads disguised as content are things of the past thanks to Adblock Plus (ABP)! Safari users enjoy a peaceful and delightful web experience when using Adblock Plus, the world's number 1 ad blocker.

What is Ublock Reddit? ›

An efficient blocker add-on for various browsers.

Is Firefox owned by China? ›

Mozilla China was founded on March 4, 2005. It is a wholly owned subsidiary of the Mozilla Corporation.
...
Mozilla China.
TypeSubsidiary
Websitewww.firefox.com.cn
4 more rows

What happened Firefox 2022? ›

Mozilla released version 102.0 of the Firefox browser to Release channel users on June 28, 2022. The new version fixes 20 security vulnerabilities, five of which are classified as “High”. The new version also comes with a new privacy feature that strips parameters from URLs that track you around the web.

Does Firefox still use Google? ›

Firefox uses Google, a totally-no-privacy-at-all search engine, as default because they get money from them.

Is Firefox safer than Chrome? ›

The Verdict

With your security settings fully optimised, there is not a huge difference between Firefox and Chrome. That said, many cyber security experts consider Chrome to be the market leader for a range of anti-malware threats that you might come into contact with while browsing.

What is the best browser for Windows 10 in 2022? ›

The 6 best web browsers
  • Best overall: Google Chrome.
  • Best for security: Mozilla Firefox.
  • Best for customization: Vivaldi.
  • Best for social media: Opera.
  • Best for macOS: Apple Safari.
  • Best for Windows: Microsoft Edge.
31 Aug 2022

What is the safest browser to use? ›

Secure Browsers
  • Firefox. Firefox is a robust browser when it comes to both privacy and security. ...
  • Google Chrome. Google Chrome is a very intuitive internet browser. ...
  • Chromium. Google Chromium is the open-source version of Google Chrome for people who want more control over their browser. ...
  • Brave. ...
  • Tor.

Is Brave browser good? ›

This browser is my favorite, hands down. There are tons of privacy, ad and tracker blocking built-in and since it's based on Chromium, it can use all of Chrome's extensions just like Microsoft Edge can as well. I really enjoy being rewarded for clicking on ads as well. The Brave Rewards program is amazing.

What is brave browser based on? ›

The Brave Browser is built on the open-source Chromium Web core and our own client code is released under the Mozilla Public License 2.0.

Does Brave have uBlock Origin? ›

Brave confirms it will support Manifest V2 extensions like uBlock Origin even after Chrome drops them.

Is Microsoft Edge faster than Firefox? ›

The performance score of Edge is found better when compared to Firefox. The performance score of firefox when tested is a little lower as compared to Edge. 5. It does not provide in-built pocket integration and hence the user needs to depend on third-party extensions.

Is Firefox really private? ›

Firefox is also quite secure. Like other major market players, it offers a private browsing mode that includes tracking, malware and phishing protection, pop-up blocking, and anti-fingerprinting protection.

Is Firefox RAM Heavy? ›

Firefox uses a considerable amount of RAM. However, the way it does so is quite memory-efficient. For instance, if you are toggling between a dozen tabs on Firefox, the browser can still load pages fast. It maintains a quick response and uses fewer processes for each tab.

Where are manifest files stored? ›

The file is located at WorkspaceName>/temp/<AppName>/build/luaandroid/dist. The manifest file provides essential information about your app to the Android operating system, and Google Play store. The Android manifest file helps to declare the permissions that an app must have to access data from other apps.

How do manifest files work? ›

A manifest file in computing is a file containing metadata for a group of accompanying files that are part of a set or coherent unit. For example, the files of a computer program may have a manifest describing the name, version number, license and the constituent files of the program.

How do I run a manifest file? ›

Programs that open MANIFEST files
  1. Microsoft Visual Studio 2022.
  2. Microsoft ClickOnce.
  3. Microsoft Notepad. Included with OS.
  4. Other text editor.

› ... › Mozilla Firefox ›

Google Chrome 88 introduced the Manifest V3 API for extensions, which changes how extensions work in the browser. Mozilla has now outlined its plans for integra...
Mozilla has revealed how it plans to adopt Manifest V3 in Firefox. The company says Firefox will fully embrace the next iteration of the web extension platform ...
Two years ago, Google proposed Manifest v3, a number of foundational changes to the Chrome extension framework. Many of these changes introduce new incompatibil...

Does Firefox remove manifest v2? ›

Mozilla reaffirmed this week that the Firefox web browser will continue to support an essential Manifest v2 API that content blockers use currently.

Does Firefox support mv3? ›

Firefox doesn't yet support manifest v3, but that shouldn't deter you from developing and deploying your extension on both platforms. You can still use web-ext run to develop an mv3 version for Chrome and an mv2 version for Firefox. You'll just need to use two different manifest files (one for mv3 and one for mv2).

How do I restore my Firefox browser? ›

Refresh Firefox
  1. Click the menu button. ...
  2. Click Refresh Firefox… then Refresh Firefox in the confirmation window that opens. ...
  3. When finished, a window will list your imported information. ...
  4. Select whether you want Firefox to restore all or some windows and tabs and click the Let's go!

Which browsers are not chromium based? ›

Firefox is not based on Chromium (the open source browser project at the core of Google Chrome). In fact, we're one of the last major browsers that isn't. Firefox runs on our Quantum browser engine built specifically for Firefox, so we can ensure your data is handled respectfully and kept private.

Is Firefox going away? ›

Firefox is still very much alive and well as Mozilla has no plans to stop development of their web browsers for desktop (Windows, macOS, Linux) and mobile versions for iOS and Android.

Is Firefox is better than Chrome? ›

Is Firefox Really Better Than Chrome? Firefox is a more private and secure browser than Chrome, but Chrome is faster and contains more features. Is Firefox Safer Than Chrome? Both browsers are safe, but Firefox's tracking protection is more comprehensive than Chrome's.

Which is latest version of Mozilla Firefox? ›

Firefox 106.0.3, See All New Features, Updates and Fixes.

Will Brave be affected by manifest v3? ›

Brave shields (adblocking, tracker blocking, anti-fingerprinting) will not be affected by MV3 whatsoever.

What is manifest in API? ›

The manifest is a JSON text file located at the root in the package file organization. The manifest contains useful information so the packaged application can be installed and operated by the platform. The application set of identifiers.

What is the use of Manifest JSON? ›

Using manifest. json , you specify basic metadata about your extension such as the name and version, and can also specify aspects of your extension's functionality (such as background scripts, content scripts, and browser actions).

Where are Firefox settings stored? ›

Firefox profile data is created in %appdata%\Mozilla\Firefox for our users (which falls in our redirected AppData location and therefore is written to our fileserver).

How do I restore Firefox without losing bookmarks? ›

Click the Bookmarks button (underlined ☆) in the top right corner and select Show All Bookmarks to open the Library window. From the toolbar on the Library window, click Import and Backup and choose Export Bookmarks to HTML.... In the window that opens, choose a location to save the file, which is named bookmarks.

How do I reinstall Firefox without losing data? ›

After uninstalling and reinstalling Firefox on your computer, click the “Import and Backup” button on the Firefox Library, and then select “Import Bookmarks from HTML.” Select the bookmarks HTML file from your hard drive, and then click “Open” to import the bookmarks to Firefox.

Is Firefox owned by China? ›

Mozilla China was founded on March 4, 2005. It is a wholly owned subsidiary of the Mozilla Corporation.
...
Mozilla China.
TypeSubsidiary
Websitewww.firefox.com.cn
4 more rows

Which browser is fastest? ›

Google Chrome is the fastest web browser you can get on a Windows machine. It surpassed the competition in three out of four tests, outranking even Microsoft's latest Edge browser—which is now based on Chromium—in all but one test.

Who is Firefox owned by? ›

Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation.

Videos

1. The activeTab permission - Chrome Extension tutorial
(Jack and Amy Dev)
2. Exposing APIs with Kubernetes (North-South Traffic)
(NGINX, Inc)
3. Thunderbird Live Hacking #17
(Alessandro Castellani)
4. PWA by example from scratch!
(Ordina)
5. Message passing between scripts [sendMessage] - Firefox WebExtensions API
(Trishul Goel)
6. 402AB 03 Kotlin & Android Performance @Mozilla
(JCConf Taiwan)

Top Articles

Latest Posts

Article information

Author: Stevie Stamm

Last Updated: 10/21/2022

Views: 6373

Rating: 5 / 5 (60 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Stevie Stamm

Birthday: 1996-06-22

Address: Apt. 419 4200 Sipes Estate, East Delmerview, WY 05617

Phone: +342332224300

Job: Future Advertising Analyst

Hobby: Leather crafting, Puzzles, Leather crafting, scrapbook, Urban exploration, Cabaret, Skateboarding

Introduction: My name is Stevie Stamm, I am a colorful, sparkling, splendid, vast, open, hilarious, tender person who loves writing and wants to share my knowledge and understanding with you.