Explainer
Manifest V3 Explained: What Changed for Your Extensions
Explainer
Manifest V3 Explained: What Changed for Your Extensions
On this page
- The short answer
- What is Manifest V3, in plain terms?
- What actually changed between Manifest V2 and Manifest V3?
- Why did ad blockers get worse under Manifest V3?
- How did different types of extensions fare under Manifest V3?
- How do you check whether an extension uses Manifest V2 or V3?
- What did Manifest V3 actually fix, beyond the ad blocker debate?
- Is Manifest V2 still supported in Chrome today?
- What should you do if an extension you rely on hasn't migrated to Manifest V3?
- Frequently asked
The short answer
Manifest V3 is Chrome's current extension platform: it replaces always-running background pages with service workers that sleep when idle, blocks extensions from running remotely hosted code, and swaps the old blocking webRequest API for the more limited but safer declarativeNetRequest API, which is the main reason some ad blockers lost features.
What is Manifest V3, in plain terms?
Manifest V3 (MV3) is the current version of Chrome's extension platform, the rulebook that defines what an extension is allowed to do and how. It replaced Manifest V2 (MV2), the previous rulebook that most Chrome extensions were built on for years.
The three biggest changes are: background code now runs in a service worker instead of a permanently open background page, extensions can no longer execute code fetched from a remote server, and network-request blocking moved from an open-ended API to a more restricted, declarative one. Each of those changes traded some extension capability for better performance, security or privacy.
What actually changed between Manifest V2 and Manifest V3?
The differences sound abstract until you line them up side by side. Here's what changed structurally, and why Chrome made each change.
| Area | Manifest V2 | Manifest V3 |
|---|---|---|
| Background execution | Long-lived background page that stayed open, using resources even when idle | Service worker that runs only when needed, then shuts down |
| Remotely hosted code | Allowed; an extension could fetch and run code from a server | Removed; all JavaScript must ship inside the reviewed extension package |
| Network request blocking | Blocking webRequest, letting an extension inspect and decide on every request | declarativeNetRequest, a rule-based API with fewer privacy and performance costs |
| API style | Callback-based APIs | Adds support for promise-based methods alongside callbacks |
Google frames the remote-code change specifically as a security fix: unreviewed code fetched at runtime was a way for a compromised or malicious update to slip past the Chrome Web Store's review process, so Manifest V3 closes that path entirely.
Why did ad blockers get worse under Manifest V3?
The old blocking webRequest API let an ad blocker's own code inspect every network request as it happened and decide, on the fly, whether to block it. That flexibility came at a cost: Chrome notes it required extensions to proxy all network traffic, which hurt both performance and privacy for every user, not just people running ad blockers.
declarativeNetRequest replaces that with a rule-based approach: an extension registers a set of blocking rules up front, and Chrome applies them without handing the extension's code a look at your live traffic. That's safer and lighter, but it constrains how dynamic or exhaustive a filter list can be compared to code that could evaluate every request individually.
This is the real trade-off, not a myth
Chrome's own migration documentation confirms declarativeNetRequest is meant to replace blocking webRequest "for many use cases," not all of them, which is exactly why some filter-list maintainers and privacy advocates pushed back on the change rather than accepting it as a clean upgrade.
How did different types of extensions fare under Manifest V3?
Not every extension category felt Manifest V3 the same way. Content blockers took the biggest visible hit, while tools that don't rely on inspecting network traffic mostly carried on unaffected once they updated their manifest file.
How different extension types fared under Manifest V3
-
Security & Privacy
Rebuilt specifically around
declarativeNetRequest, trading some of the flexibility of full filtering-code blocking for a lighter, Manifest V3-native content blocker. -
Privacy BadgerFree
Security & Privacy
Learns to spot and block trackers automatically; detection logic that once relied on inspecting live requests had to adapt to the new rule-based blocking model.
-
TampermonkeyFree
Developer Tools
Still runs custom userscripts under Manifest V3, though how it injects and updates scripts on the fly works differently than under Manifest V2's more permissive rules.
-
LoomFreemium
Screenshots & Recording
A screen recorder that needs to keep running mid-recording; Manifest V3's service workers are designed to sleep when idle, so tools like this need careful engineering to stay reliable.
-
GoFullPageFreemium
Screenshots & Recording
A one-click screenshot tool that barely touches Manifest V3's most contested changes, since it doesn't depend on background network blocking to do its job.
How do you check whether an extension uses Manifest V2 or V3?
You don't need developer tools to check this; Chrome shows an extension's manifest version right in its own settings page.
- Open
chrome://extensionsin a new tab. - Find the extension you want to check.
- Click Details on that extension's card.
- Scroll to find the Manifest version field.
- Compare it against the version shown for other extensions you use, to spot which ones haven't updated.
If a listing shows Manifest V2, treat it as a signal to check for an update or an alternative, since Chrome has been steadily reducing support for Manifest V2 extensions across recent versions.
What did Manifest V3 actually fix, beyond the ad blocker debate?
The ad blocker story gets the attention, but Manifest V3 also addressed problems that affected every Chrome user's battery life, memory usage and security, whether or not they ran a content blocker.
- Lower idle resource use: a Manifest V2 background page stayed open and consumed memory even when an extension had nothing to do; a Manifest V3 service worker shuts down when idle.
- No more remote code execution: every line of JavaScript an extension runs now ships inside the reviewed package, closing off a path malicious or compromised updates used to exploit.
- Safer network handling by default:
declarativeNetRequestavoids routing all of your traffic through an extension's own inspection code just to apply a handful of blocking rules. - Modern API design: promise-based methods sit alongside the older callback style, making extensions easier to write correctly and debug.
Is Manifest V2 still supported in Chrome today?
Google has been phasing out Manifest V2 support in stages rather than switching it off everywhere at once, and the exact status can shift between Chrome releases. Rather than rely on a fixed cutoff date here, check chrome://extensions directly: Chrome flags Manifest V2 extensions there when it plans to disable or remove them on your device.
Check your own browser, not a fixed date
Because the Manifest V2 phase-out has rolled out gradually and enterprise policies can extend support further for managed devices, the most reliable check is your own chrome://extensions page rather than a general date you find online.
What should you do if an extension you rely on hasn't migrated to Manifest V3?
An extension stuck on Manifest V2 isn't necessarily broken today, but it's a maintenance and security warning sign, since it means the developer either hasn't updated it or has stopped maintaining it altogether.
Check the extension's Chrome Web Store listing for a recent update date and look for the developer's own migration notes; a well-maintained extension usually announces a Manifest V3 rebuild rather than going silent. If it has gone silent, look for an actively updated alternative in the same category, for example ublock-origin-lite in place of an unmaintained Manifest V2 blocker, or privacy-badger if you specifically need automatic tracker detection.
Extensions mentioned in this guide
- uBlock Origin LiteLightweight Manifest V3 content blocker.
- Privacy BadgerLearns to spot and block invisible trackers automatically as you browse
- TampermonkeyRun custom userscripts that inject code into any site you visit.
- LoomRecord your screen and camera, share a link.
- GoFullPageCapture a full-page screenshot in one click.
Frequently asked
What is Manifest V3?
Manifest V3 is Chrome's current extension platform, replacing Manifest V2. It moves background code to service workers, removes remotely hosted code, and replaces blocking webRequest with the more limited declarativeNetRequest API.
What are the known issues with Manifest V3?
The most cited issue is reduced flexibility for content blockers: declarativeNetRequest uses predeclared rules instead of letting an extension inspect and decide on every request live, which limits how dynamic some filter lists can be.
What are the key differences between Manifest V2 and V3?
Manifest V3 uses service workers instead of a long-lived background page, bans remotely hosted code, and swaps blocking webRequest for declarativeNetRequest, plus it adds support for promise-based API calls.
Is Manifest V2 deprecated?
Google has been phasing out Manifest V2 support in stages rather than all at once; check chrome://extensions on your own browser for a warning banner rather than relying on a single fixed date.
Why did Manifest V3 hurt ad blockers?
Ad blockers previously used the blocking webRequest API to inspect and filter every network request with their own code; declarativeNetRequest replaces that with predeclared rules, which is safer but less flexible for complex filter lists.
Is uBlock Origin still on Manifest V2?
uBlock Origin Lite is the Manifest V3-native rebuild built around declarativeNetRequest; check any specific ad blocker's own Chrome Web Store listing and its Manifest version field in chrome://extensions for current status.
How do I check if my Chrome extension is Manifest V2 or V3?
Open chrome://extensions, click Details on the extension, and look for the Manifest version field on that page.
Why did some extensions barely change after moving to Manifest V3?
Extensions that don't depend on blocking webRequest or an always-open background page, such as screenshot tools or userscript managers, mostly kept working once they updated their manifest file to the new format.
Does Manifest V3 slow down or speed up Chrome?
It's generally designed to reduce idle resource use, since a Manifest V3 service worker shuts down when an extension has nothing to do, unlike a Manifest V2 background page that stayed open.
Can Manifest V3 extensions still run custom userscripts?
Yes, tools like Tampermonkey still run userscripts under Manifest V3, though the way scripts are injected and updated dynamically works differently than it did under Manifest V2.
Do all Chrome extensions have to switch to Manifest V3?
Chrome has been phasing out Manifest V2 support over time, so extensions that don't migrate risk being disabled or removed from the Chrome Web Store; the current state for any given extension is best checked directly in chrome://extensions.
Why does Manifest V3 use service workers instead of background pages?
A Manifest V2 background page stayed open and used memory even when idle; a Manifest V3 service worker only runs when the extension actually needs to do something, then shuts down.