Manifest V2 is leaving Chrome

by Ansar Smagul

A coastal seascape painting showing waves crashing against dark, rugged brown rocks on the left side of a rocky shoreline. White foam sprays where the green-blue water breaks against the stone. The choppy ocean fills the foreground and stretches to a hazy horizon, where two small sailing ships are visible in the distance on the right. Above, a wide expanse of sky is filled with billowing white and gray clouds, and a small flock of birds flies near the rocks. The artist's signature, 'Bricher', appears in the lower left corner.
Crashing Waves, Alfred Thompson Bricher

This month Chrome removes the last support for Manifest V2, the older extension framework. Chrome 150, due around 30 June, deletes the final flag that kept Manifest V2 extensions running, and Chrome 151 in July clears out the rest. Some headlines say it will kill ad blocking, but the truth is more nuanced.


The older version of Chrome’s extension system, Manifest V2, let an ad-blocker work like a bouncer at the door. Every request a page tried to send passed the blocker first. It read each one, used whatever judgment it liked, and decided what to let through. Because it watched everything in the moment, it could catch almost every trick in the book, even ones it had never seen before.

Manifest V3 replaces the bouncer with a doorman. The extension hands Chrome a fixed blocklist, written out in advance, and Chrome does the checking itself. The blocker never sees the traffic, so if the ads show up under a new name or a good enough disguise, it doesn’t matter how clever the blocker is – the list was printed days ago, and the polite doorman can only do so much.

Concretely, two things are lost. The first is complete visibility into the traffic flow. Manifest V2 handed the extension each request and response and let it run arbitrary logic to determine the blocking verdict on the fly via the API called webRequest. V3 replaces that with declarativeNetRequest, or DNR – a special filtering rule syntax with a limited set of capabilities. The extension must also hand all the rules ahead of time, and can’t perform any analysis during runtime.

This reduces the precision and sophistication an extension can apply. The resulting set of V2 functionality that can’t be ported to V3 isn’t large, but isn’t small either. It also limits future ad-blocking techniques against new ad-insertion methods, since I don’t expect Google to add support for any new filtering rule syntax in V3.

The second loss is subtler: how the rules get updated. Previously, an ad-blocker could fetch new rules on its own schedule – faster than an ad network could rotate domains and tricks. Now, both the rules and the blocker’s own code have to ship inside the extension. They can only change when a new version clears Chrome’s review process – a few hours at least.

To be clear, this won’t kill ad blocking in Chrome completely – the amazing work of extension developers means the experience will stay good enough for most users. Nevertheless, this is a big shift in the balance of power in this cat-and-mouse game.

A convenient fix

Why was Manifest V3 introduced at all? Let’s look at Google’s case. The reasons are real, but their solution breaks down under any scrutiny.

Our Goals: Manifest V3 aims to be the first step in our platform vision to improve the privacy, security, and performance of extensions. Along with the platform changes, we are working to give users more understanding and control over what extensions are capable of. The changes will take several years to complete.
From Chrome Manifest V3 documentation. How convenient that all these reasons also let Google curb ad-blockers.

Google says that V3 improves extension security. It’s true that many browser extensions have carried malware for years, including attacks that have targeted millions of people. Manifest V3’s defences against this, banning remotely hosted code and tightening what an extension can touch, are worth having.

But none of that required taking the blocking API away. Firefox adopted Manifest V3 and kept webRequest blocking alongside the new declarative one. Recent security research also shows that attackers have already adapted to the new limitations, and designing extensions that steal data and redirect to malicious links is still possible. As it turns out, the one change that isn’t needed for security is the one that weakens ad blocking, brought to you by the company that sells most of the web’s ads.

Another stated reason is performance. Again, this seems legitimate – filtering based around a static rule syntax could be better optimised. However, we shouldn’t forget that ads are resource-hungry – they inflate page-load times, memory, CPU, and battery drain, at times by more than 50%. Ad-blockers have been proven to significantly aid all these metrics, so designing anything that limits their abilities in the name of performance is at best misleading.

And finally, Google claims privacy as one of the reasons. I honestly don’t even know where to begin with this, but hearing it from a company that has its own Privacy Concerns Wikipedia page is hilarious. The online ad ecosystem is one of the worst offenders against online privacy, and ad-blockers are one of the few defences a user has against it – so kneecapping them in privacy’s name protects no one but the people selling the ads.

Make of that what you will.

Why this will not stop

You can read Manifest V3 as one isolated decision, now finished. The money says otherwise.

The ad business, roughly two thirds of Google’s revenue, is now paying for the largest infrastructure build-out the company has ever attempted. Its planned 2026 spending, most of it focused on data centres and AI, is $180–190 billion – more than the $132 billion the company generated in net income in 2025.

None of this created Manifest V3, which was drawn up back in 2018. But a company spending at this scale, on the back of the ads you see, has every reason to squeeze you a little more and little reason to make blocking ads easier.

What you can do

If you want full filtering inside the browser, move to Firefox, which keeps the old webRequest API.

The longer answer moves filtering out of the browser altogether. That is what we work on. Zen is an open-source system-wide ad-blocker that runs as a local proxy outside the browser, so it also blocks ads and trackers for every other app. Living outside the browser, Zen was never subject to Manifest – its bouncer was never Chrome’s to take away. It still reads every request as it happens, runs whatever logic the moment calls for, and fetches fresh rules on its own schedule with no review queue. Forget about the blocklist printed days ago and filtering syntax handed down by the company that sells the ads.

Check us out at irbis.sh/zen.


Thank you Zhanerke Beisetay, Jutta Jerlich, and Richard Muscat for reviewing early drafts of this.