Google has set June 2025 as the final deadline for Manifest V3 enforcement, ending support for Manifest V2 extensions that power most ad blockers. After four years of controversy and delays, Chrome will stop loading MV2 extensions next summer, forcing over 200 million ad blocker users to accept reduced blocking capabilities or switch browsers. The technical reality is stark: MV3’s declarativeNetRequest API limits extensions to 30,000 filtering rules, while comprehensive ad blockers typically use 80,000-300,000 rules across filter lists like EasyList, EasyPrivacy, and regional blockers.
The 30K Rule Limit Is Real Capability Loss
This isn’t theoretical or marketing spin—the rule limit genuinely reduces ad blocker effectiveness. Popular filter lists exceed MV3’s constraints by massive margins: EasyList contains roughly 75,000 rules for ad blocking, EasyPrivacy adds 45,000 for tracking protection, and Annoyances filters contribute another 35,000. Regional lists for countries like Germany or France pack 15,000-30,000 rules each. Add them together and you’re looking at 200,000+ rules in a typical comprehensive setup. MV3 caps you at 30,000 static rules plus 5,000 dynamic rules.
The impact shows up in real-world testing. Raymond Hill, uBlock Origin’s developer, estimates 30-40% reduction in blocking effectiveness under MV3. Community testing confirms this: MV3 versions miss roughly 20% more ads than MV2 versions on news sites, and YouTube ads now slip through where MV2 blocked everything. Reddit and Twitter tracking scripts bypass MV3 blocking more frequently. This is measurable capability loss, not just “different architecture.”
The technical difference explains why. Manifest V2’s webRequest API allowed arbitrary JavaScript evaluation—your ad blocker could apply complex logic, user preferences, and real-time filter updates to every network request:
// MV2: Unlimited flexibility
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
const url = details.url;
if (shouldBlock(url, getUserPreferences(), getLiveFilters())) {
return {cancel: true}; // Block request
}
return {cancel: false};
},
{urls: ["<all_urls>"]},
["blocking"]
);
Manifest V3 replaces this with declarative rules—pre-defined patterns evaluated by Chrome’s engine, not extension code:
{
"id": 1,
"priority": 1,
"action": {"type": "block"},
"condition": {
"urlFilter": "*://ads.example.com/*",
"resourceTypes": ["script", "image"]
}
}
Simpler, yes. Faster, absolutely. But fundamentally less powerful. You can’t implement custom logic, evaluate complex patterns, or update rules dynamically without reloading the entire extension. The 30,000 rule cap forces ad blocker developers to choose: prioritize common ads and drop regional/niche blocking, or maintain comprehensive lists and violate API limits.
Security vs Control: Both Sides Have Merit
Google’s security arguments aren’t pure corporate spin—there are legitimate improvements in MV3. The webRequest API allowed extensions to execute arbitrary JavaScript while inspecting every network request, creating a genuine malware vector. Extensions could access sensitive data like passwords, authentication tokens, and personal information in transit. MV3’s declarative approach eliminates this attack surface.
Performance improvements are real too. MV2 extensions with persistent background pages consumed 150-400MB RAM each and added 50-150ms to page load times. MV3 service workers use 20-50MB RAM active (0MB when idle) and contribute only 5-15ms page load impact. These aren’t trivial gains—for users running multiple extensions, the difference is noticeable.
However, the Electronic Frontier Foundation’s criticism hits equally hard: “While we appreciate Google’s stated security goals, the practical effect of MV3 is to reduce user control over their browsing experience. The restrictions disproportionately affect privacy tools while Google’s own services remain unaffected.” The timing is suspicious—major changes to extension capabilities announced while Google faces antitrust scrutiny over its advertising business. Convenient that “security improvements” happen to weaken the tools blocking Google’s primary revenue source.
The technical trade-offs are real, but so are the questions about scope and motivation. Security and capability aren’t mutually exclusive—Firefox proves it by supporting both MV2 and MV3. Chrome could have implemented security improvements without such restrictive capability limits. The 30,000 rule cap feels arbitrary, not technically necessary.
Browser Choice Now Has Technical Consequences
Mozilla has positioned Firefox as the privacy-first alternative by committing to maintain Manifest V2 support indefinitely while also implementing optional MV3 features. This creates clear differentiation: Chrome and Edge enforce MV3 restrictions, Firefox preserves extension power, and Brave sidesteps the issue entirely with built-in ad blocking at the browser level.
Firefox currently holds roughly 3% desktop market share, but this decision matters beyond the numbers. It demonstrates that Google’s “security requires restriction” narrative isn’t the only path forward. Firefox developers can continue using powerful ad blockers without compromise. The irony is rich: Chrome, built on the open-source Chromium project, now restricts capabilities while Firefox champions user choice and extension power.
For users who prioritize ad blocking effectiveness over Chrome-specific features, Firefox is the practical alternative. For those locked into Chrome for enterprise requirements or ecosystem integration, the choice becomes: accept degraded blocking or supplement with DNS-level filtering via Pi-hole or NextDNS. Browser choice used to be about UI preferences and bookmark sync. Now it’s about fundamental capabilities and who controls your web experience.
What You Should Do Now
The timeline is tighter than it appears. Chrome 120 (December 2024) starts showing Manifest V2 deprecation warnings to users. Throughout Q1 2025, warning frequency increases. June 2025 is the hard cutoff—MV2 extensions stop loading entirely, no grace period for consumer installations.
Test MV3 versions of your critical extensions now while both are available. Install uBlock Origin Lite (the MV3 version) alongside uBlock Origin (MV2) and compare blocking effectiveness on your frequently visited sites. Export your extension settings before migration—some MV3 versions can’t import MV2 configurations. Check if your other extensions have MV3 updates or if developers plan to maintain them post-deadline.
Consider supplementary blocking strategies. DNS-level filtering through Pi-hole, NextDNS, or AdGuard DNS catches ads and trackers that browser extensions miss, and it works across all devices on your network. These tools complement browser-level blocking rather than replacing it, but as Chrome’s capabilities weaken, network-level protection becomes more important.
For developers maintaining browser extensions: migration complexity exceeds initial estimates. Rewriting background pages as service workers requires rethinking state management—no DOM, no localStorage, must use chrome.storage API exclusively. Converting webRequest logic to declarativeNetRequest rules within the 30K limit demands careful prioritization. Budget 3-6 months for thorough testing and user communication, not the 2-4 weeks it might appear to need.
Key Takeaways
- The June 2025 deadline is final after four years of delays—MV2 extensions will stop working on Chrome, affecting 200+ million ad blocker users who must accept reduced capabilities or switch browsers
- MV3’s 30,000 rule limit represents genuine capability loss compared to typical filter lists with 80,000-300,000 rules, resulting in measurably reduced blocking effectiveness (20-40% more ads/trackers getting through)
- Google’s security arguments have technical merit (removing arbitrary code execution, improving performance), but the restrictions conveniently benefit Google’s ad business while EFF and privacy advocates question whether the trade-offs are necessary
- Firefox maintains MV2 support indefinitely while Chrome enforces MV3, making browser choice technically consequential—if ad blocking effectiveness matters, Firefox or Brave offer better options than accepting Chrome’s limitations
- Test MV3 extension versions now, export settings before migration, and consider DNS-level blocking (Pi-hole, NextDNS) as supplementary protection since browser-level capabilities are weakening under MV3 restrictions











