⏱️ Lectura: 10 min
Google finished what it started more than four years ago: it deleted from the Chrome Web Store every extension still running on Manifest V2, and among the casualties is uBlock Origin, one of the most capable content blockers ever built for the web.
📑 En este artículo
The company confirmed that Manifest V2 extensions installed on Chrome 138 or earlier versions will keep working, but won’t be able to receive updates or be reinstalled once removed from the store.
TL;DR
- Google pulled all Manifest V2 extensions from the Chrome Web Store, including uBlock Origin.
- MV2 extensions on Chrome 138 or earlier remain active, but without updates or the possibility of reinstalling.
- The Chrome Web Store team notified the affected developers directly about the removal.
- The move hits every Chromium browser that relies on the CWS to discover extensions.
- Brave decided to host four MV2 extensions on its own: AdGuard, uBlock Origin, uMatrix, and NoScript.
- Google justifies Manifest V3 with greater security, privacy, performance, and control over extensions.
- Firefox continues to support Manifest V2 indefinitely, unlike Chrome and Edge.
- uBlock Origin’s creator maintains a scaled-down MV3 version called uBlock Origin Lite.
What exactly happened
The Chrome Web Store team notified developers of the affected extensions before carrying out the removal, according to a report by Web Iterate. The move marks the formal end of the coexistence between Manifest V2 (MV2) and Manifest V3 (MV3), the format that defines which permissions and APIs a Chrome extension can use.
With the removal, any user who searches for uBlock Origin on the Chrome Web Store today won’t find it. The product listing disappears from both the search results and the catalog, although the source code remains available in its GitHub repository for anyone who wants to install it manually.
For those who already had the extension installed, the scenario differs from a simple uninstall. Google clarified that copies already installed on Chrome 138 or earlier will remain active, but frozen in time: no security patches, no new versions, and no way to reinstall them if the user accidentally deletes them.
flowchart TD
A["Extension with Manifest V2 on Chrome 138 or earlier"] --> B{"Does the user update Chrome?"}
B -->|"Stays on Chrome 138 or earlier"| C["The extension remains active with no changes"]
B -->|"Updates to a later version"| D["Extension removed from Chrome Web Store"]
D --> E["Cannot be reinstalled or receive updates"]
Context and history: the four-year transition to Manifest V3
Manifest V3 isn’t a last-minute surprise. Google announced it in 2019 and began enforcing it progressively starting in 2022, with several deadline extensions to give developers time to migrate. The official argument never changed: the company maintains that MV3 offers greater security, privacy, performance, and control over what an extension can do inside the browser.
The argument has real merit. An extension with broad permissions can read and modify all of a user’s traffic, and that level of access is exactly the kind of surface malicious extensions abuse to steal credentials or inject their own ads. The problem is that the same restrictions that hold back a bad actor also strip tools away from a legitimate blocker like uBlock Origin.
The core technical change is that MV3 replaces the blocking webRequest API with declarativeNetRequest. In MV2, an extension like uBlock Origin could intercept every network request and decide in real time, using its own logic, whether to block, redirect, or modify it. In MV3 that power shifts to declarative rules that the extension hands over to Chrome ahead of time, and it’s the browser (not the extension) that applies them.
Technical details: what changes between Manifest V2 and V3
The difference is obvious as soon as you compare the manifest of a modern extension with one from the MV2 era. Here’s a minimal MV3 manifest example that declares a set of blocking rules:
{
"manifest_version": 3,
"name": "bloqueador-basico",
"version": "1.0",
"permissions": ["declarativeNetRequest"],
"declarative_net_request": {
"rule_resources": [
{
"id": "reglas_bloqueo",
"enabled": true,
"path": "rules.json"
}
]
}
}
That rules.json file contains the static rules Chrome will evaluate on its own, without the extension stepping in request by request:
[
{
"id": 1,
"priority": 1,
"action": { "type": "block" },
"condition": {
"urlFilter": "||doubleclick.net^",
"resourceTypes": ["script", "image", "xmlhttprequest"]
}
}
]
This rule blocks any script, image, or XHR request pointing to doubleclick.net. It works well for lists of known domains, which is the bulk of what an ad blocker does. What MV3 doesn’t allow replicating with the same flexibility is the dynamic content inspection uBlock Origin used for its more advanced filters, such as cosmetic filtering blocking combined with conditional logic at runtime.
💭 Key point: the limit isn’t about performance, it’s about design: Chrome decided the extension can no longer see or decide on each individual request, only declare rules in advance.
| Option | When to use it | Advantage | Limitation |
|---|---|---|---|
| Chrome with MV3 extension (declarativeNetRequest) | Standard use on updated Chrome | Still receives updates from the Chrome Web Store | Predefined blocking rules, no dynamic per-request logic |
| Chrome with un-updated MV2 (Chrome 138 or earlier) | Only as a temporary patch if you already had it installed | Keeps webRequest’s full dynamic blocking | No security patches or possibility of reinstalling |
| Brave with MV2 extensions hosted by the browser | You want to keep using uBlock Origin, AdGuard, uMatrix, or NoScript as-is | Full dynamic blocking, updated by Brave | Only covers those four extensions and only in Brave |
| Firefox with native MV2 extension | You’d rather not depend on Chromium | Mozilla supports MV2 indefinitely | Requires switching browsers if you’re coming from Chrome |
How to keep blocking ads today
If you don’t want to lose the dynamic blocking uBlock Origin offered under MV2, there are two practical paths available right now, without waiting for Google to change its stance.
The first option is installing Brave, which hosts uBlock Origin, AdGuard, uMatrix, and NoScript on its own backend instead of depending on the Chrome Web Store. The installer differs depending on the operating system:
# Windows (PowerShell, requires winget)
winget install Brave.Brave
# macOS (with Homebrew)
brew install --cask brave-browser
# Linux (Debian/Ubuntu)
curl -fsS https://dl.brave.com/install.sh | sh
Once installed, go to brave://extensions, search for uBlock Origin in Brave’s own catalog (not the Chrome Web Store), and install it directly. Brave takes care of keeping it updated.
💡 Tip: to confirm which manifest version an already-installed extension uses, open chrome://extensions, turn on developer mode, and click “Details”: the Manifest version field appears next to the package version.
The second option is loading uBlock Origin manually in developer mode inside Chrome, downloading the code from its GitHub repository. This works the same way on Windows, macOS, and Linux, since the process goes through chrome://extensions with the “Developer mode” toggle turned on and the “Load unpacked” button.
⚠️ Heads up: loading uBlock Origin manually in developer mode isn’t a permanent solution: Google has already tightened extension signing requirements and is considering restricting developer mode further in the future.
Impact and analysis for developers and users in Latin America
The removal doesn’t stop at Chrome. The Chrome Web Store is also the default extension store for most Chromium-based browsers, including Brave. That means a Vivaldi, Opera, or any other Chromium user whose browser engine still supports MV2 also can’t discover or install uBlock Origin from the store: Google’s removal hits them even though their browser had nothing to do with the decision.
For a region where a large share of mobile traffic still browses on unstable connections or limited data plans, an aggressive ad blocker isn’t a cosmetic preference: it reduces page weight and data consumption in every session. Losing easy access to the most complete version of uBlock Origin hits exactly the users with the least room to switch browsers.
On the developer side, the lesson is simpler: any extension that depends on intercepting and modifying traffic in real time needs to rethink its architecture around declarativeNetRequest if it wants to keep living on the Chrome Web Store. It’s not a cosmetic migration, it’s redesigning the product’s logic.
What comes next
uBlock Origin’s own creator, Raymond Hill, maintains a scaled-down version built for MV3 called uBlock Origin Lite, which uses declarativeNetRequest by design and sacrifices some dynamic filtering capabilities in exchange for staying alive on the Chrome Web Store. It’s the closest thing to an official replacement within Google’s rules.
Brave’s move (hosting extensions outside the CWS) could also become the pattern other Chromium browsers follow if they want to stand out on privacy. On the other end, it’s not out of the question that Google keeps tightening developer mode, the one route left today for anyone who wants to install an MV2 extension on their own.
📖 Summary on Telegram: View summary
If you use Chrome daily, the fastest way to check the state of your installation is to open chrome://extensions right now and see whether uBlock Origin is still listed with the notice that it no longer receives updates.
Frequently Asked Questions
I use Chrome and already had uBlock Origin installed, am I losing it?
Not immediately. It keeps working at the version you had, but you won’t receive updates or be able to reinstall it from the Chrome Web Store if you delete it.
Can I keep using Manifest V2 extensions if I don’t update Chrome?
Yes, as long as you stay on Chrome 138 or an earlier version. The problem is that this also leaves you without the browser’s security patches, not just the extension’s.
Why can Brave keep offering uBlock Origin while Chrome can’t?
Because Brave decided to host the extension package on its own infrastructure instead of depending on the Chrome Web Store catalog, which is where Google applied the removal.
Is uBlock Origin Lite the same as uBlock Origin?
No. It’s a rebuild by the same author built for MV3 and declarativeNetRequest, with less dynamic filtering capability than the original MV2 version.
Is Firefox also going to remove Manifest V2?
Not for now. Mozilla maintains indefinite support for Manifest V2 in Firefox, unlike Google’s policy for Chrome.
References
- Web Iterate: original report on the removal of Manifest V2 extensions from the Chrome Web Store.
- Chrome for Developers: official documentation for the Chrome extensions platform and the transition to Manifest V3.
- uBlock Origin repository on GitHub: source code for the project maintained by Raymond Hill.
- Mozilla Add-ons Blog: official Mozilla announcements about extension support and Manifest V2 in Firefox.
📱 Enjoying this content? Follow @programacion on Telegram for daily tech content in Spanish: quick summaries, fresh content every day.
0 Comments