Google Removes the Final Workaround for Full Ad Blocking in Chrome

The world's largest advertising company also writes the rules governing what ad blockers can do inside its browser.

Colorful abstract illustration combining a large Chrome-like circular logo on the left with a red stop-sign octagon and geometric blocks on the right.

Stand against censorship and surveillance: join Reclaim The Net.

Google is removing the last technical workaround that kept effective ad blockers alive in Chrome.

When Chrome 150 ships on June 30, the browser will delete a hidden setting called the ExtensionManifestV2Disabled flag, a switch that power users had been toggling to keep old-style extensions running after Google officially discontinued them.

Without it, uBlock Origin and every other extension built on the old Manifest V2 framework, the set of rules that governed how browser extensions worked for years, will stop functioning permanently. Chrome 151, expected in July, will strip the remaining MV2 flags entirely. No policy override and no hidden setting will bring them back.

The company that sells more advertising than any other on Earth now controls whether you can block those ads. And it just decided you can’t, at least not effectively.

What Google took away and why it took it

The technical change is the replacement of Chrome’s webRequest API with the declarativeNetRequest API.

Under the old system, extensions like uBlock Origin could watch your browser’s traffic as it happened, see an ad or tracker trying to load, and block it on the spot before it ever reached your screen.

Under the new system, extensions have to hand Google a pre-written list of things to block and Chrome decides whether to follow those instructions. The lists are capped at a fixed number of rules, and the extension can’t react to anything that isn’t already on the list.

uBlock Origin’s developer, Raymond Hill, has been clear that a Manifest V3 version cannot replicate the original’s full capabilities. A stripped-down version called uBlock Origin Lite exists for MV3, but it handles only a fraction of the filter lists, the community-maintained databases of known ads and trackers, that the original supported.

It also can’t perform cosmetic filtering, the process of hiding ad containers and promotional elements that remain on a page even after the ad itself is blocked. Without it, you get blank boxes where ads used to be, or sponsored content that looks native to the page. For more than 40 million Chrome users who relied on the original, the replacement is a downgrade by design.

Google engineer Devlin Cronin confirmed the timeline in a Chromium code review commit, a logged change to Chrome’s underlying source code that other developers can inspect, writing that “MV2 extensions are no longer allowed in any supported version of Chrome, and we are removing support for them and the associated functionality. We won’t be able to provide / maintain this functionality indefinitely due to the complexity and tech debt, as well as the security risks it entails (we’ve actually found a number of bugs that are specific to MV2 lately). Of course, other browsers can continue supporting these if they so desire.”

Cronin’s sign-off, that “other browsers can continue supporting these if they so desire,” suggests the removal as a Chrome-specific choice. It isn’t. Google controls 65% of the desktop browser market and the MV2 code being stripped from Chromium, the open-source project that Chrome and many other browsers are built on top of, affects every browser that shares that foundation.

Google justifies the migration on security grounds and there’s some substance to the argument. The old webRequest API gives extensions deep access to every network request a browser makes, from images and page loads to login credentials, and the extension sees the data before Chrome acts on it.

A compromised or malicious extension with that access can read your passwords as you type them, redirect you to fake websites, or slip harmful code into pages you trust.
The declarativeNetRequest API is designed to prevent exactly this kind of attack by restricting extensions to predefined rule sets. Instead of giving an extension free rein over your browser traffic, Chrome only lets it submit a list of instructions in advance and handles the blocking itself. That narrows the ways a bad actor can exploit an extension because the extension never gets to touch your data directly.

But Google generated roughly $239.5 billion in advertising revenue in 2025, and content blockers directly reduce the number of ads users see. The MV3 restrictions don’t ban ad blocking entirely. They cap how many rules an extension can use and eliminate dynamic blocking, the ability to recognize and stop new ad formats and trackers as they appear in real time.

Ad companies constantly change how they deliver ads, rotating domains and disguising tracking scripts, and the old extensions could keep up with that. The new ones can only block what’s already on a list that was written before the ad loaded. The result is ad blockers that work against yesterday’s ads but struggle against the ones that adapt daily.

The same company that built Chrome and sells the ads it displays also wrote the rules governing what ad blockers can do inside it. Whether those incentives shaped MV3’s design is the most obvious question in the room, and Google has never given a convincing answer.

Microsoft Edge and Opera, both built on Google’s Chromium engine, are expected to follow suit because the MV2 code being removed is shared across all Chromium-based browsers. Maintaining it independently would require significant engineering resources that most of those browsers are unlikely to commit.

Brave, also Chromium-based, supports MV2 but also sidesteps the problem by building its own ad-blocking engine directly into the browser, bypassing the extension framework entirely.

Firefox, which runs on its own engine, continues to support Manifest V2 and uBlock Origin without restriction. Mozilla implemented its own version of Manifest V3 but kept the old webRequest API working alongside it, so extensions that need real-time traffic access can still use it. That proves security improvements and effective content blocking can coexist. Google chose not to make them coexist.

What you can do

For Chrome users who want effective content blocking, the options are leaving Chrome or accepting reduced protection.

Firefox supports uBlock Origin in full and shows no signs of changing that. Brave blocks ads natively. Both are free and work well, and switching takes about ten minutes.

You can also install uBlock Origin Lite on Chrome and accept that it blocks less, adapts more slowly to new threats and can’t match the original. Or you can do nothing, and Chrome 150 will disable the extension through a routine update and show you a notification that it’s no longer supported.

Stand against censorship and surveillance: join Reclaim The Net.

Fight censorship and surveillance. Reclaim your digital freedom.

Get news updates, features, and alternative tech explorations to defend your digital rights.

Read More

Share this post…