Submit an extension

↑↓ move · ↵ open · Tab filter · Esc close

Explainer

Manifest V3 Explained: What Changed for Your Extensions

Explainer

Manifest V3 Explained: What Changed for Your Extensions

Illustration: A browser extension icon splitting into two versions, one showing a heavy always-lit gear and the other a lighter gear that dims and relights on deman
On this page
  1. The short answer
  2. What is Manifest V3, in plain terms?
  3. What actually changed between Manifest V2 and Manifest V3?
  4. Why did ad blockers get worse under Manifest V3?
  5. How did different types of extensions fare under Manifest V3?
  6. How do you check whether an extension uses Manifest V2 or V3?
  7. What did Manifest V3 actually fix, beyond the ad blocker debate?
  8. Is Manifest V2 still supported in Chrome today?
  9. What should you do if an extension you rely on hasn't migrated to Manifest V3?
  10. 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.

Manifest V2 vs. Manifest V3
AreaManifest V2Manifest V3
Background executionLong-lived background page that stayed open, using resources even when idleService worker that runs only when needed, then shuts down
Remotely hosted codeAllowed; an extension could fetch and run code from a serverRemoved; all JavaScript must ship inside the reviewed extension package
Network request blockingBlocking webRequest, letting an extension inspect and decide on every requestdeclarativeNetRequest, a rule-based API with fewer privacy and performance costs
API styleCallback-based APIsAdds 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

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.

  1. Open chrome://extensions in a new tab.
  2. Find the extension you want to check.
  3. Click Details on that extension's card.
  4. Scroll to find the Manifest version field.
  5. 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: declarativeNetRequest avoids 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

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.

Sources

  1. Chrome for Developers: What is Manifest V3?
  2. Chrome for Developers: Migrate to Manifest V3