DEV Community

jamilxt
jamilxt

Posted on

The Ad Blocker With 40 Million Users Now Runs in Exactly One Major Browser: Firefox

Two months ago I opened Chrome to test something, noticed my extension toolbar was emptier than I remembered, and went looking for uBlock Origin. It was not there. It had been gone for a while, actually. The full version of the extension I have installed on every browser I touch had been removed from the Chrome Web Store in late 2024, and Chrome permanently disabled every remaining Manifest V2 extension in July 2025. I had not noticed, because the change rolled out over a year and a half, one version number at a time. That slow drip is exactly how this story sneaks up on people.

Last week the story became impossible to ignore. Microsoft Edge announced it is finally locking out Manifest V2 extensions too, and Hacker News responded with one of the biggest threads of the year: 1,696 points and still climbing as I write this. The headline everyone latched onto: Firefox is now the last major browser on Earth that still runs the real uBlock Origin. The deeper story, the one that matters to anyone who builds software for the web, is about how one API change quietly handed one company control over what extensions are allowed to do in 77% of the world's browsers.

What actually happened, with dates and numbers

Let me lay out the timeline, because the "suddenly" part is an illusion. This has been a long, slow march, and it is still not over:

  • 2020. Microsoft commits to Manifest V3 as the future of the Chromium extensions platform, in an official Edge developer blog post.
  • Late 2024. Google completes its Manifest V2 to V3 transition in Chrome. The full uBlock Origin is removed from the Chrome Web Store. The uBlock Origin site documents the exact reason: Manifest V3 replaced the webRequest blocking API with declarativeNetRequest, which has hard limits on filter rules (previously 30,000, now 330,000) and drops the dynamic filtering capabilities the extension was built on.
  • July 2025. Chrome permanently disables all remaining Manifest V2 extensions. The roughly 29 million active uBlock Origin users on Chrome, per the extension's Wikipedia page, lose the full version.
  • August 7, 2026. Microsoft Edge publishes its Manifest V3 transition announcement. Consumer rollout starts immediately, targeted to finish by the end of 2026, with enterprise deprecation in early 2027. Microsoft's own numbers: only 58 MV2 extensions on Edge Add-ons still have meaningful usage, and only three of those lack an MV3 replacement.
  • August 10, 2026. Firefox posts on Bluesky: "Our support for uBlock Origin isn't going anywhere."
  • August 13, 2026. PCWorld confirms the new order: Firefox is the last major browser that still supports uBlock Origin. Neither Safari nor DuckDuckGo, the other two major non-Chromium browsers, ever supported it.

That last line deserves a moment. Firefox is not winning because it is the best browser at everything. It is winning by default, because it is the only one left.

Why one API change broke ad blocking everywhere

The technical core of this story is boring-sounding and devastating in practice: a request interception API was replaced with a declarative rule engine.

Manifest V2's model. An extension like uBlock Origin registers a blocking webRequest listener. Every network request your browser makes passes through the extension's JavaScript first, and the extension decides in real time whether to block it, based on 100,000-plus rules across many filter lists it can load simultaneously. The request never reaches the server. Nothing loads.

Manifest V3's model. Extensions declare a static set of rules (declarativeNetRequest) that the browser itself evaluates. The extension cannot run arbitrary code on every request. Rule counts are capped. Dynamic filtering, cosmetic filtering in default mode, and scriptlet injection are gone or restricted. The official uBlock Origin site lists the losses bluntly: you cannot use all filter lists at once, there is no cosmetic filtering in the default mode, no scriptlet injection by default, and dynamic filtering is limited.

The consequence is visible in how the two versions behave. In the Hacker News thread on the Firefox story, developers who actually compared them summed it up: the Manifest V2 version blocks requests from ever being made, which is why an ad blocker saves bandwidth and battery. The Manifest V3 version largely hides ads after the fact. One commenter put the difference in a single sentence: with the Lite version you might stop seeing most ads, but you are certainly being tracked more.

What uBlock Origin Lite (uBO Lite) is. It is not uBlock Origin with fewer features. It is a different product, built on the new constraints, that shares the brand. On Chrome and Edge today, this is what ad blocking means: rule limits, no per-domain filter control, and cosmetic blocking that can leave sites half-broken. A developer in the same HN thread described the practical annoyance: uBO Lite filters cannot vary per domain, so to rule out a false positive while debugging, you have to disable it for all sites, not just localhost.

The browser monoculture nobody voted on

Now the part I care about as a developer. This was never really about ad blocking. It is about who controls the extension platform.

Look at the worldwide browser market from StatCounter as of July 2026: Chrome holds 68.22%, Safari 16.47%, Edge 5.37%, Firefox 3.34%, Samsung Internet 2.06%, Opera 1.88%. Chrome, Edge, Opera, and Samsung Internet are all Chromium. Add Brave and Vivaldi, which are also Chromium, and the Chromium engine powers roughly 77% of browsers worldwide. Firefox is the only non-Chromium engine with any real share left.

That concentration means the Manifest V3 API decisions Google made for Chrome did not just affect Chrome. They became the platform rules for almost every browser on the market. When Edge announced its lockout in August, it was not a decision; it was a formality, because Edge is Chromium and inherits the platform. The Electronic Frontier Foundation called this out as far back as 2021 in its Manifest V3 warning: one company controls both the dominant browser and one of the largest advertising networks on Earth, and the conflict of interest is baked into the extension API.

This is why ad blocking ended up where it did. On Chromium, ad blocking is now whatever Google's rule engine permits. On Firefox, it is still a first-class extension capability. Ad blocking did not die. It stopped being a web standard and became a Firefox feature, and a Firefox feature only reaches the 3.34% of browser users worldwide who choose that browser.

Firefox is leaning in, including today

Mozilla is not just defending the status quo. It is actively building on this opening, and one of those moves landed today.

Firefox for iOS now has a native ad blocker. The support page describes network-level blocking using a filter list based on EasyList, so ads are blocked before they load. Full disclosure: I have not tried this yet, it shipped this week and I am writing from the announcement and the developer discussion, not from hands-on use. The Hacker News thread on the announcement (200-plus points and counting) has the expected caveats: it does not block ads on search engine results pages or sponsored content on Firefox's own Home and New Tab pages, and Firefox on iOS is still WebKit-bound outside the EU and Japan, so extension-level uBlock remains impossible there.

The bigger point stands: Firefox is spending real product effort on ad blocking at the exact moment every Chromium browser is spending effort on removing it.

The one-man counterweight. The other thing worth knowing: uBlock Origin is not a company. It is primarily one developer, Raymond Hill, who created the extension in 2014 and has maintained it since. The Firefox version still has over 10 million active users, and per Wikipedia it remains the most popular extension on Firefox. In an industry where ad blocking became a battleground between trillion-dollar companies, the most important blocker on the last browser that supports it is a one-person project, and the uBlock Origin site recommends Firefox as the home where it works best.

What I would do differently, and what I would tell a developer

I have run uBlock Origin for years, and I have built and tested web applications across browsers for a living. Here is what this story changes in practice, and what I would tell anyone who ships software:

Do not assume your ad-blocked experience is the user's experience. If you test in Chrome with uBO Lite, you are testing a page that still makes most network requests and hides some of them. A user on Firefox with full uBlock Origin is testing a page where many requests never fire at all. Behavior differences like that are how "works on my machine" bugs survive. Test your front end with real uBlock Origin on Firefox at least once per release, not just with the Lite version.

Know your extension's platform ceiling. If you build browser extensions, Manifest V3 is the only future on Chromium, full stop. The declarative rule limits are the box you live in. Design for them up front rather than discovering them at review time.

Do not bet your product on one browser's workaround. Brave still offers a Manifest V2 opt-out for uBlock, and Vivaldi recently re-enabled Manifest V2 support "for the time being," as the HN thread noted. Both are Chromium forks, and both inherit Chromium's API direction. The webRequest API they rely on is still in the Chromium codebase, but Google could strip it at any time. Workarounds are not platforms.

Take the 3.34% seriously. Firefox is small, but it is the only non-Chromium engine with meaningful desktop share, and it is the only place where certain capabilities still exist. If your product works there, you have a moat against platform changes. If it breaks there, you lose the only users who can still exercise the open web the way it was designed.

Watch the signal, not the drama. Every time Google ships an API change that limits what extensions can do, the reaction will be framed as privacy versus ads. The real question is always the same: who controls the platform, and do users get to choose? uBlock Origin's slow exile from Chromium is a decade-long answer to that question, and Firefox's current luck is that being the last non-Chromium browser made it the only place where the choice still exists.

The web does not have a healthy browser market right now. It has one dominant engine, one stubborn holdout, and a reminder that every extension you rely on depends on API decisions you did not get to vote on.

I write about Java, Spring Boot, and the developer platforms around them every week. If this kind of story is useful to you, subscribe, it is free, and you will get one article like this in your feed each week.

Have you switched browsers because of an extension you lost, or are you still on Chromium with a Lite blocker? What was the moment you noticed the difference?

Top comments (0)