Skip to content
DevMeme
5180 of 7435
Google's Manifest V3 Transition to Weaken Ad Blockers
Google Post #5674, on Nov 17, 2023 in TG

Google's Manifest V3 Transition to Weaken Ad Blockers

Why is this Google meme funny?

Level 1: No Mute Button

Imagine you’re watching your favorite TV show, and every few minutes a bunch of loud commercials come on. Normally, you’d grab the remote and hit the mute button or change the channel to ignore the ads, right? Now picture the TV company suddenly decides to take away your remote’s mute button so you can’t silence the commercials at all. You’re forced to sit through every single ad, no skipping, no muting – yikes! You’d probably get upset or lose focus on your show because of all the annoying interruptions. That’s what’s happening here to developers: the “mute button” they’ve been using to quietly block out distracting web ads (a browser tool called uBlock Origin) is being taken away by the browser’s owner (Google). It’s frustrating and a bit comical in a sad way, because the big company is basically saying, “No more skipping the annoying stuff, you have to watch it now,” and all the people who just want some peace online are groaning together.

Level 2: Extension Extinction

So, what’s actually happening with this Google Chrome change, and why are developers so upset? Let’s break it down in simpler terms. This is all about browser extensions – those add-on tools you install in Chrome (or other browsers) to add features or modify web pages. uBlock Origin, specifically, is a hugely popular AdBlocker. That means it’s an extension that stops advertisements and unwanted trackers from loading on websites. When you visit a news site full of banner ads, pop-ups, and auto-playing videos, uBlock Origin works like a magic shield: it filters out those annoying parts so you only see the content you care about. Many developers (and regular users alike) love it because it makes browsing cleaner, faster, and safer. It’s a big part of some people’s daily DeveloperExperience (DX) – imagine reading coding documentation or Stack Overflow without a half-page ad for dubious VPN services distracting you.

Now, Chrome extensions operate under something called a manifest – basically a file that declares what the extension can do and what resources (scripts, permissions) it uses. Think of it as an extension’s blueprint or rulebook for the browser. Chrome has had different versions of this manifest format over time. Manifest V2 (MV2) is the current (soon-to-be old) standard that uBlock Origin and many others use. Manifest V3 (MV3) is the new standard Google has been working on for a few years. Google announced they will phase out (retire) Manifest V2 in mid-2024 – meaning Chrome will no longer accept or run extensions built on the MV2 blueprint after that. All extensions must migrate to Manifest V3 to continue working in Chrome. This planned phaseout is the manifest_v2_phaseout you see referenced, and extension developers are in the middle of the manifest_v3_migration scramble right now.

Why does this matter? Because MV3 isn’t just a minor update – it changes what extensions are allowed to do, in the name of security and performance. One of the big changes is how extensions can block network requests (like those that fetch ads). Under MV2, extensions had a lot of freedom to inspect and block any web request. Under MV3, some of that freedom is curtailed. Here’s a quick comparison to illustrate:

Manifest V2 (Old) Manifest V3 (New)
Extensions could actively intercept network requests with code and cancel them.
Example: uBlock could see “hey, this URL looks like an ad URL” and stop that request before the ad even downloaded.
Extensions cannot run arbitrary code on each request. They must declare filter rules ahead of time for what to block.
Example: uBlock has to hand Chrome a big list like “block anything from ads.example.com”, and Chrome itself enforces it.
Allowed persistent background scripts (an extension could always be running in the background, doing whatever logic needed). Uses ephemeral background scripts (service workers) that start and stop, with stricter limits. Extensions also can’t do certain things (like load remote code) – this is meant to reduce malware possibilities.
Very flexible: extensions could dynamically decide how to handle content or network requests on the fly using JavaScript logic. More restrictive: extensions are safelisted into what Chrome considers safe actions. Flexibility is traded for preset behaviors (if your needed behavior isn’t allowed, tough luck).

For an ad blocker like uBlock Origin, this is a huge deal. Under Manifest V2, uBlock can do nifty things like: check each and every web request and use its own algorithms and constantly updated filter lists to decide “Block this, allow that, modify this element on the page, etc.” It’s like having a smart assistant that can adapt to nearly any sneaky new ad technique in real-time. Under Manifest V3, uBlock is stuck with whatever static rules it provided upfront. It’s like going from an agile ninja to a statue that just blocks whatever was defined in advance. A lot of the clever, adaptive filtering that uBlock does (for example, hiding certain page elements, or applying complex rules that depend on context) either becomes impossible or much less effective with the new rules.

Google’s official reasoning for MV3 is that it makes extensions more secure and performance-friendly:

  • Security: By not letting extensions run arbitrary code on every request and limiting capabilities, there’s less chance for a malicious extension to do dangerous things (like secretly stealing your data or spying on all your web traffic). Manifest V3 also requires extensions to have more transparent code (they can’t pull in external scripts at runtime), which means Chrome Web Store reviewers can check them more thoroughly.
  • Performance: Extensions in MV3, using the built-in filtering rules, might be faster/leaner because the heavy lifting of filtering is done by the browser engine in a more optimized way, rather than by JavaScript running in the background. Also, limiting persistent background scripts means less constant memory and CPU usage.

Those sound like good goals, right? However, in practice, developers and power users are worried (and many are outright unhappy). The reason this meme calls out “every dev’s sanity workflow” is because extensions like uBlock have become essential to how we browse. It’s not just about hiding ads; it’s also about blocking trackers, improving page load times, and generally decluttering the internet. From a developer’s perspective, when you spend all day online reading documentation or using web-based tools, being bombarded by unwanted content is more than just a minor annoyance – it can genuinely affect your focus and productivity. So taking away or weakening our ad blocker feels like someone is removing the door lock from our house in a rough neighborhood. DeveloperExperience is not only about the code editors and command-line tools; it’s also about the environment in which we consume information. An ad-infested web is a tougher environment to work in.

There’s also a big-picture tension here: adtech_vs_users. Google is not just a browser maker; it’s one of the world’s largest advertising companies. Chrome’s new MV3 policy conveniently removes the most powerful method to strip out ads. Many in the developer community can’t help but see a conflict of interest. Even if Google’s public reasoning centers on safety, the outcome is that Google’s business (serving ads) stands to benefit. Users who want to avoid ads are losing a tool, and advertisers (and Google) potentially gain more reach. This has been framed as part of the BrowserWars: not a war between Chrome and Firefox this time, but a war between browsers that side with user choice (like Firefox pledging to keep robust ad-blocking) and those that side with a controlled ecosystem (Chrome’s stance). It’s an odd twist where a feature removal in Chrome becomes a competitive differentiator for other browsers.

For less experienced devs or those new to this saga, the alarm is about “MV2 shutdown threatens uBlock Origin” as the headline says:

  • uBlock Origin – one of the most effective ad blockers – currently can’t simply switch to MV3 without losing functionality. Its lead developer has been very frank that MV3’s limitations will cripple some of uBlock’s advanced features. So if MV2 is truly disabled, uBlock as we know it might not work on Chrome. The extension either has to become a dumbed-down version or Chrome users lose it entirely.
  • This doesn’t mean ads will suddenly be unblockable everywhere – but the popular tools to do so will be far less effective on Chrome. It’d be like if a new car regulation forced all cars to drop from V8 engines to lawnmower engines; you could still drive, but it’s gonna be slower and uphill battles… literally.
  • Other Chromium-based browsers (like Microsoft Edge, Brave, Opera which all use the Chromium engine under the hood) are also affected. Some, like Brave, have their own built-in adblocking and have said they’ll try to keep that working. Others (Edge) will likely follow Google’s policy strictly. Firefox, the main non-Chromium alternative, has indicated they won’t yank out the blocking ability. So there’s a bit of fragmentation coming: extensions might remain powerful in Firefox, but have reduced abilities in Chrome.

This situation is a prime example of an IndustryTrend that developers keep an eye on: reliance on a single dominant platform (Chrome) can introduce acute risk to workflows. Many devs are now saying, half-jokingly, “Maybe it’s time to switch back to Firefox for real.” From a learning perspective, if you’re a junior developer, it’s worth understanding why so many memes and discussions get heated about this:

  • Platform control – When one company controls a platform (be it an OS, a programming language, or a browser), they can make decisions that might benefit themselves but upset users/devs. Always be aware of vendor lock-in. Today it’s Chrome; tomorrow it could be something in the cloud or mobile OS that you depend on.
  • Change management – A big breaking change like this teaches why backward compatibility and community input matter. Google gave a heads-up (they announced Manifest V3 a while ago), but the pushback has been loud and clear that it’s not fully welcome. As a dev, you’ll see these kind of battles between maintaining powerful features vs. tightening things for security. It’s a delicate balance.

In summary, Google’s MV2 shutdown news is freaking out developers because it’s going to strip a tool that makes our daily web use bearable. The meme captures that panic and exasperation. It’s as if our comfy chair in front of the computer is suddenly getting nails sticking out – sure, we can still sit, but ouch, it’s not going to be fun. 😅 It underlines how even things that aren’t strictly “code” (like a browser extension) greatly affect our coding life. And that’s why you see devs on Reddit up in arms and joking darkly about their sanity – we know this change is real, and we’ll either have to adapt (maybe begrudgingly switch browsers or live with more ads) or find clever workarounds. The meme lets us vent that frustration collectively and say, “Here we go again, thanks Google.”

Level 3: Manifest Injustice

News: Google confirms they will disable uBlock Origin in Chrome in 2024

This meme hits experienced developers right in the gut, mixing dark humor with browser-war flashbacks. The screenshot from Reddit’s r/uBlockOrigin isn’t a joke headline – it’s a real Industry trend bombshell. Google is phasing out Manifest V2 (MV2) for Chrome extensions and forcing everyone onto Manifest V3 (MV3) by mid‑2024. The catch? This extension_api_changes means uBlock Origin – a beloved open-source ad blocker – will effectively be neutered or booted out of Chrome. Seasoned devs see the writing on the wall: it’s a case of platform power plays, adtech vs users, and a nasty reminder of what platform_lock_in feels like.

Why is this so darkly funny to veteran engineers? It’s the ironic sanity breakdown scenario:

  • Developers’ sanity workflow often includes having an ad blocker on at all times. It’s practically part of the dev toolkit, right up there with Stack Overflow. Many of us can’t imagine debugging a web app or reading docs while pop-ups scream “💰 YOU WON! CLICK HERE 💰”. WebDev life without uBlock? That’s nightmare fuel.
  • Google’s Chrome, the same browser devs use to test cutting-edge web features, is now saying “Oh by the way, that tool you use to keep the web usable? We’re killing it (for your own good).” The meme exaggerates every dev’s sanity being at risk, and honestly, it’s only half exaggeration. We’ve all had those days where a surprise breaking change from a big vendor drives us up the wall. This one hits home for anyone who’s been burned by a sudden API deprecation or product shutdown (Google Reader PTSD, anyone?).

The humor has a sharp edge of truth: Google framing this as a security and performance upgrade (Manifest V3 was touted to make extensions “safer” and “more efficient”). Senior devs instantly translate that corporate speak: “safer” for Google’s revenue stream, “efficient” at showing ads. We’ve seen this pattern. It’s almost cliché in the BrowserWars saga:

  • Back in the day, Microsoft’s IE and Netscape fought over proprietary features; now Chrome (Google) battles user empowerment tools. The eternal war has shifted to who controls the browsing experience. Here, Google wields its browser monopoly to dictate what extensions can or cannot do. Manifest_v2_phaseout is essentially Google saying, “It’s MV3 (our way) or the highway.”
  • It’s a textbook platform lock-in move. Chrome commands ~65% of browser market share, so extension developers must comply or lose most of their users. Google’s able to push a change that nobody really asked for, because where else will users go? (Firefox: “Hi, over here! We still support real ad blocking!” 🙋‍♀️)

The technically juicy bit: MV3 removes the powerful API that uBlock Origin relies on – the ability to intercept and block network requests on the fly. In MV2, an extension could register a webRequest listener and cancel undesirable requests (like those loading ads or trackers) before they even happened. For example, in MV2 uBlock can do something like:

// Manifest V2 style: actively block matching requests in real-time
chrome.webRequest.onBeforeRequest.addListener(
  details => ({ cancel: true }),                   // Cancel the request
  { urls: ["*://*/*ads*/*"] },                     // Target any URL with "ads" in it (simplified)
  ["blocking"]                                     // This flag allows blocking the request
);

This kind of imperative control is the heart of advanced ad blockers. MV3 flat-out disallows that ["blocking"] part. Instead, it introduces a more rigid declarativeNetRequest system – basically, you predefine static filtering rules, and Chrome’s engine enforces them (within set limits). No custom scripting on each request, no on-the-fly decision-making. In pseudo-code, MV3’s approach is like:

// Manifest V3 style: define static rules upfront
chrome.declarativeNetRequest.updateDynamicRules({
  addRules: [{
    id: 101,  
    priority: 1,
    action: { type: "block" },
    condition: { urlFilter: "*ads*" }
  }],
  removeRuleIds: [101]  // (Rules can be updated, but logic must be encoded in rules, not code)
});

Sure, that still blocks some ads, but it’s inflexible. It’s like replacing a skilled bouncer (who can adapt and decide on the spot) with a fixed list of names on a do-not-enter list. Senior engineers immediately recognize how this hamstrings extensions like uBlock. The change isn’t simply a version bump; it’s a fundamental shift from dynamic scripting to declarative rules. And it comes with tight limits (for a while, MV3 only allowed ~30K rules – which sounds big until you realize comprehensive ad block lists often exceed that; Google later raised the cap after community backlash, a small concession to the angry mob).

The meme also resonates as a live case study in DeveloperExperience_DX gone wrong. Google’s move is ostensibly about improving user safety (no more rogue extensions doing man-in-the-middle on all your web requests). But in doing so, they undermine the developer and power-user experience. It’s a classic trade-off: security for flexibility. The punchline here is that devs feel this is security theater at best, and a cash-grab at worst. After all, Google’s primary business is advertising. Disabling the most effective AdBlocker on their platform conveniently aligns with their financial interest. As one battle-hardened dev might quip with a smirk: “I’m sure it’s just a coincidence, right? Google caring about my safety by making sure I see all their ads… totally unrelated to their ad revenue.” 🤨

Historically, this isn’t the first extension mass extinction event:

  • Long-time Firefox users remember the XUL extension purge when Firefox Quantum dropped support for legacy add-ons in 2017. Many beloved add-ons died or were forced to rewrite as Chrome-style WebExtensions. It was painful (users rioted on forums), but at least that move was to adopt a more modern, multi-process-friendly extension framework. Firefox essentially adopted Chrome’s MV2 model then.
  • Now Chrome is doing its own purge, and ironically Firefox might become a refuge. Mozilla has hinted they’ll support blocking webRequest for adblockers even under MV3 (basically, they don’t plan to cripple uBlock on Firefox). We’ve come full circle: the once-dominant Chrome is becoming restrictive, and good old Firefox is the rebel alliance preserving user freedom. Cue the “Use Firefox” memes – something I haven’t heard this loudly since the IE6 era.

From a senior dev perspective, this situation exemplifies breaking change risk and why we fret about dependency on walled gardens. It’s a mild chuckle of despair: “There goes Google, yanking the rug from under devs again. What did we expect from the company that’s killed off countless beloved products?” The meme’s title calls it a threat to “every dev’s sanity workflow” because we’ve all had that one critical tool or hack that, when taken away, nearly made us lose our minds. For many, uBlock Origin (or similar blockers) is exactly that tool for the web at large. Chrome’s MV3 decision flips the table on a decade of accepted WebDevelopment norms (where users had final say via extensions). The new manifest feels like Google saying, “We own this platform, and we’ll decide what your extensions can do.” It’s a power move – and power moves often come with casualties (in this case, our peaceful, ad-free reading experience).

In summary, the humor here is the gallows humor of devs watching a slow-motion train wreck finally hit. We joke that our sanity is at stake because, well, imagine doing your 9-to-5 dev job while the internet blares autoplay videos and pop-overs nonstop. Funny? Maybe in a tragicomic way. It’s the kind of announcement that makes a grizzled engineer lean back and mutter, “Well, time to dust off my Firefox install… again.” The meme gets an exasperated laugh because it validates our cynicism: in the adtech vs users saga, Chapter 2024, the house (Google) wins and the devs l̶o̶s̶e̶ adapt. Same as it ever was in the BrowserWars.

Description

A screenshot of a Reddit post from the r/uBlockOrigin subreddit. The post, submitted by user u/jasonrmns, has a title in large white font: "Google confirms they will disable uBlock Origin in Chrome in 2024". Below the title, tagged with "News", the post body clarifies: "Google confirms they will disable MV2 extensions including uBlock Origin in mid 2024". A hyperlink to a chrome.com developer blog post is visible at the bottom. The overall interface is dark mode Reddit. This image captures a key moment in the ongoing controversy surrounding Google Chrome's transition from Manifest V2 to Manifest V3 for browser extensions. The change effectively deprecates powerful APIs that ad-blockers like uBlock Origin rely on, leading to widespread concern that Google is intentionally kneecapping ad-blocking technology to protect its advertising revenue. For senior developers, this isn't just about ads; it represents a larger struggle over platform control, user privacy, and the open nature of the web

Comments

7
Anonymous ★ Top Pick Google is transitioning to Manifest V3 to 'enhance security and privacy,' which is the same way a casino enhances your financial security by holding onto your wallet for you
  1. Anonymous ★ Top Pick

    Google is transitioning to Manifest V3 to 'enhance security and privacy,' which is the same way a casino enhances your financial security by holding onto your wallet for you

  2. Anonymous

    Looks like Manifest V2 is the new Python 2 - except this deprecation turns every code review into a pop-up ad

  3. Anonymous

    Google deprecating the one API that actually worked as intended - truly the most backward-compatible move since they sunset a messaging app every quarter

  4. Anonymous

    Google deprecating Manifest V2 is the enterprise equivalent of 'we've decided to sunset your favorite debugging tool because it was too effective at finding our bugs.' Classic move: control the browser, control the extensions, control the revenue stream. At least they're giving us until mid-2024 to migrate - plenty of time to watch the community fork Chromium again or finally make that switch to Firefox we've been threatening since the last API deprecation

  5. Anonymous

    Chrome’s MV3 is the rare “security upgrade” that replaces webRequest() with a declarative ACL - great for SLOs on ad delivery, terrible for our attention firewall

  6. Anonymous

    Manifest V3: the first API upgrade where your webRequest becomes their OKRRequest - you keep the extension, they keep the packets

  7. Anonymous

    MV3's declarativeNetRequest: unlimited power for Google Ads, 30k-rule cap for your ad blocker

Use J and K for navigation