What does a web browser even do?
Simplistically, a web browser does the job of fetching and rendering a website. What does that mean? Well when your computer receives html, it just looks like raw text; it’s not human readable and doesn’t look very nice. It also has dependencies like images and styles which need to be fetched and loaded. Your web browser figures out the network requests to make, loads the required resources, and formats it all in a nice human-friendly way so you can actually use the website as intended.
Why do web browsers need extensions?
Websites are constantly evolving and browser manufacturers know that it’s just not feasible to address all the various features that users want in the core product. Lots of things which are core features today were once enabled only by extensions, like screen readers for visually-impaired users, automated translations, and even some basic tab-management features. Not only is it not feasible in terms of manpower for browser manufacturers to do everything themselves, they also don’t understand the various use cases that these extensions can address. Just like Apple knows they can’t make every possible iPhone app anyone might want, browser developers know they can’t make every possible tool that might make web browsing better. So they do the next best thing: they provide a means by which people with the necessary motivation and skill can implement solutions themselves.
The fundamental conflict of interest
What does it mean for a website to be used “as intended”? There are three parties involved here: you (the end user of the website), the website owner, and the company or organization that makes your web browser. Website owners want you to view the site as THEY intend, which means if they put an advertisment on their website they want to make sure you see it. If they put analytics scripts to track you, they want to make sure you get tracked. You as the end user probably don’t want to see advertisements or be tracked, and hey, this is running on YOUR computer, so you should decide what shows up and what doesn’t. Whether the browser developers care really depends on who those browser developers are. Mozilla thinks you ought to be in control. Google, as a for-profit ad-tech company, thinks you need to see those ads. Microsoft thinks you should see their ads but no one elses'.
Contentious extensions
No one will object to an extension that provides accessibility features: everyone wants more people to be able to use more websites. The conflict is visible when people make extensions that subvert the business interests of browser developers. Extensions like NoScript, SponsorBlock and Privacy Badger tend to ruffle feathers because they provide users a way to do something that Google does NOT want users doing. Google makes money when users see (and ideally click on) advertisements; if users can browse the web without seeing their ads, that’s a problem for Google’s business model. Google also thinks (whether correctly or incorrectly) that they need to track users constantly to better target ads, and so they also see attempts to block tracking as a threat.
How do these extensions operate?
Remember that the browser is in control not just of how pages render, but also what network resources get fetched. That means that with a sufficiently powerful extension system, extensions can block network requests. Google has some scripts that load advertisements? Stop the scripts from loading, and the ads don’t show; no problem! Google knows that this is how the extensions they don’t like work, and Google also controls Chrome, which is the most widely used web browser on desktop computers.
Google’s solution: neuter the extensions API
Google thinks they have a problem, and they think they have a sufficiently strong market position that they can also make a solution. So at least for Google Chrome (the only browser they directly control), they will simply make it so these extensions can’t be made to work the way users want. The fact that they call this Manifest v3 is intentionally misleading, as they want people to think it’s just a newer and better version of something that works. It’s not; it’s an intentional effort to prevent developers from making anything that Google doesn’t like. So what does it change? Well a few things, but chiefly it prevents extensions from blocking network requests in certain cases, ensuring that Google’s desired content gets through to users' screens, whether users want it or not. This is part of the webRequest API. Google claims that Manifest v3 increases security and efficiency, but those claims are dubious at best.
Other browsers, such as Firefox, don’t have the same view that the existing extension ecosystem is a problem, and they have continued to support Manifest v2 (at least for now).
What’s an extension developer to do?
Put yourself in the shoes of someone who develops browser extensions. You have two choices: support Manifest v3 and provide a potentially much worse experience for your users, or don’t support Manifest v3 and have no one running Google Chrome able to use your extension. It’s worth noting also that browser manufacturers need to digitally sign your extensions (there are legitimate reasons for this, such as preventing users from installing malicious extensions that their steal credit card information). So even if Chrome can technically still run a Manifest v2 extension, if Google won’t sign it, you’re not going to get that extension in the hands of the users.
Option A: What Google expects: quit your whining and accept that your extension is worse now
Of course you can try to make your extension work with Manifest v3, and depending on your addon you might be able to get it to work almost as well as it did in Manifest v2. However if your extension does something Google doesn’t really like, expect your life to be very difficult. This is setting yourself up for a constant uphill battle against a well-resourced international corporation.
Option B: Not supporting Chrome
The alternative is to not worry about Chrome and just continue using Manifest v2, providing useful functionality to people who run Firefox, Librewolf, or something else that isn’t owned by Google. You will definitely lose some users if you do this.

Above is an example of what your usage numbers might look like for Google Chrome if you don’t support Manifest v3.
The path I’m taking
Historically my extensions have been cross-platform, running on both Firefox and Chrome (and anything with a compatible API). I personally run Firefox, at least until Librewolf shows up in the Arch Linux repositories, but I felt that Chrome users could benefit from what I made and so I took the time to support them as well. This wasn’t trivial because Google requires extensions call the chrome. api instead of the browser. api, and they aren’t exactly the same so it’s not possible to just set browser=chrome;. But I took the time and made my extensions support both Firefox and Chrome, back when Chrome was using Manifest v2. And I know from the downloads that I had about 4 times as many users on Chrome as I did on Firefox.
Here’s the thing: I could probably make my extensions support Manifest v3, with a bit of effort, but there’s nothing stopping Google from removing more functionality tomorrow. I don’t want one company to decide unilaterally what extensions are or aren’t allowed to do. So I’m not playing along; if Google doesn’t want to support good extensions, then eventually users will switch browsers to something that runs them.
For any of my former Chrome users, just know that my extensions still run just fine in Firefox and forks of it. They’d probably run in Chromium-based browsers like Brave, too, but I haven’t tried it.
What are you going to do?
If you’re a user wondering why your addons have gotten worse, and why it’s now “uBlock Origin Lite” showing up in Chrome instead of “uBlock Origin”, this is why. If you don’t want Google to own the web, switch to a different browser. And while you’re at it, switch to a different search engine, too. DuckDuckGo isn’t perfect, but it’s better than Google these days.
If you’re an extension developer, don’t support Manifest v3. Stop spending months converting your codebase to this objectively worse system. Spend that time making a Firefox version of your extension instead.
Nothing lasts forever
This might seem like a bleak and dire situation, so it’s worth stepping back for some historical context. Google wasn’t always the dominant browser manufacturer, and they won’t be forever. In the original browser wars, Internet Explorer vied for dominance with Netscape Navigator. Neither of those browsers officially exist anymore (they had some influence on modern browsers, but the names and brands are dead). Google Chrome came out in 2008; odds are that if you’re reading this, you’re older than the current dominant web browser.
Build for the users
Good software is software that solves a need which users have. If Google is hostile to users, you can make better software by avoiding them. In the short term your users will be annoyed, because they will think you’re letting them down by no longer supporting their platform. But really, it’s their platform that let them down. In the long term, they will change platforms, and your software will be there for them.
Share this post: