Will Google’s Manifest V3 break adblocking extensions?

Chrome Extension Web Store

In March 2021, Google first announced its intention to deprecate third-party cookies in Chrome.

Even though Safari and Firefox had already rolled out similar updates, this was a big deal because Chrome is the most widely used browser by a far margin—and therefore publishers will presumably feel the revenue hit from the loss of third-party cookie data much more acutely.

Fast forward to today, Google has already delayed its decision a few times and now intends to pull the plug on third-party cookies in the second half of 2024. Meanwhile, there’s another update coming to Chrome that’s been flying under the radar (relatively speaking) but has repercussions for publishers, third-party developers, adblock users, and the open Web.

First announced in 2018 and dubbed “Manifest V3”, the update determines what actions Chrome browser extensions can take, the changes they can or cannot make to user settings, and where they store code and data. Let’s get started.

What is Manifest V3?

Manifest V3 is an application programming interface (API) that will govern how Chrome extensions interact with a user’s browser. Manifest V2, the current version of the API, already handles these interactions, but Manifest V3 will change the rules for extensions in ways that might impact the manner in which a lot of extensions function.

This, in turn, means that most third-party extension developers will need to refactor their code to maintain compatibility with Manifest V3.

ZDNET reported that Manifest V3 will affect a lot of existing browser extensions that were designed for Manifest V2 specs, including antivirus products, security, and parental controls enforcement apps. However, certain types of extensions, such as content blockers and adblocking extensions, are disproportionately affected in terms of the work required to ensure compatibility with the new extensions API. (More on this in a later section.)

Firefox announced that it intends to support Manifest V3 to facilitate cross-browser development. In addition, Chromium-based browsers such as Vivaldi, Opera, Brave, and Microsoft Edge will also mimic Chrome’s migration to Manifest V3.

How has the industry responded?

The existing version of Chrome’s browser manifest, V2, has been in effect for over a decade. According to Google, Manifest V3 is a major step towards realizing its vision for the extensions platform—enhancing privacy, security, and performance for both developers and users.

The industry response to the development has been mixed, however. The Electronic Frontier Foundation (EFF) has raised questions about Google’s true motives behind this update.

“Like FLoC and Privacy Sandbox before it, Manifest V3 is another example of the inherent conflict of interest that comes from Google controlling both the dominant web browser and one of the largest internet advertising networks,” writes Daly Barnett, Staff Technologist at the EFF.

Several extension developers, including Ghostery, AdGuard, Noscript, and TrackMeNot, have also criticized the move, citing that it deepens Google’s control over the open Web. However, given that this criticism is unlikely to make Google deviate from its product roadmap, developers have been focusing resources on updating their extensions to ensure compatibility with Manifest V3.

How does Manifest V3 impact adblocking?

In order to understand how Manifest V3 impacts content blocking and adblocking extensions, a quick refresher on how adblocking extensions work may be useful.

Adblocking extensions use “filter lists” to determine which network requests to block and which to pass through. For instance, network requests linked to ad serving are typically blocked. General-purpose content blockers can go one step further and block privacy notices, subscription pop-ups, adblock walls, and other elements that users find annoying.

At this time, there are more than 2,000 filter lists maintained by volunteers and developers. Here are some other popular options:

  • EasyList: Most popular filter list on the web, created solely to block ads,
  • EasyPrivacy: A filter list that serves to block online trackers,
  • Fanboy’s SocialList: A filter list that blocks social widgets, ‘Like’ buttons etc.,
  • Language-specific filter lists: EasyList Germany, RUAdlist, AdGuard Turkish filter, etc.

So far, blocking extensions have relied on Chrome’s webRequest API, introduced with Manifest V2 in 2012, to block entire categories of HTTP requests. By giving developers the ability to manipulate web requests, the webRequest API played a pivotal role in allowing adblocking extensions to reliably block ad requests and gain widespread user adoption.

Manifest V3 provides a different system—called declarativeNetRequest API—to achieve the same objective. The problem? This new system only allows extensions to run no more than 30,000 rules, but adblocking extensions can require more than 10x that number to function properly. Here, a “rule” means a condition that allows the extension to block an HTTP address.

Further complicating matters, in addition to these rules, Manifest V3 also sets limits for how many filter lists can be loaded by an extension and can be concurrently active at any given time.

Here’s Andrey Meshkov, CTO and Co-Founder of AdGuard, speaking about Manifest V3 and its implications for extension developers, at the Ad-Filtering Dev Summit 2022, organized by eyeo:

Blockthrough’s CTO, Matt Kendall, also weighed in on the impact this update will have for publishers, specifically for those who participate in Acceptable Ads:

We’ve been working closely with key stakeholders in the Acceptable Ads community to ensure user continuity via MV3 compatibility with popular adblocking extensions. Blockthrough is currently testing the potential impact of the update on publishers’ ability to monetize using Acceptable Ads and based on initial findings, we don’t anticipate any material difference to their key revenue indicators.

How are developers responding to Manifest V3?

So, is it all doom and gloom? Is Manifest V3 likely to cause permanent and lasting damage to the ecosystem that allows millions of users to personalize their experience on the Web?

It’s unlikely. Yes, Manifest V3 requires developers to spend additional effort in order to make their extensions perform as expected while complying with new rules, requirements, and limits. For some developers, this may mean launch delays or releasing a version with certain limitations.

Take NoScript for example, an extension that allows security enthusiasts to block JavaScript on all sites except the ones whitelisted by the user.

When Manifest V3 was announced, the developer of NoScript, Giorgio Maone, said, “If Chrome developers go ahead with the planned changes, there may never be a NoScript version for Chrome, mainly because NoScript wouldn’t be able to work just as efficiently as it does on Firefox.” Despite that initial reaction, NoScript now has a stable, cross-browser version of the extension that is available for download in the Chrome store.

AdGuard, a general-purpose content blocker, released a Manifest V3-compatible version of their extension earlier this year. Similarly, Adblock Plus, the most popular adblocker in the world, noted in its changelog for version 3.13 released earlier this year that “[t]his release contains substantial under-the-hood changes in preparation for making the extension compatible with Manifest V3 later this year.”

In fact, if you’re using an adblocking extension—chances are that the developer has already put in the work to release a fully or partially performant version that is Manifest V3 compatible to a degree.

In summary

All software has a lifecycle. Not upgrading Manifest V2 or only making cosmetic changes to avoid “breaking things” would come with its own set of problems and cost in terms of privacy, security, and performance issues. Regardless of the many criticisms leveled against Google, it is well within its rights to make forward-looking upgrades to its extensions platform and APIs.

Google’s revised timeline for transitioning from MV2 to Manifest V3 starts in January 2023 and finishes in 2024. In preparation for the rollout, many developers have already made changes to their products to ensure compatibility and continuity for their users.

Let’s also take a minute to review the silver linings.

Firstly, Manifest V3 does not require any syntax changes in how filter lists are written, which means that maintaining functionality does not require filter lists to be completely re-written—only that special considerations will apply when it comes to the number of filter lists that can be used at any given time, and the rule-length of said filter lists.

Secondly, the reason why extensions never took off on mobile devices was linked to their potentially detrimental impact on page performance. With Manifest V3, users might finally be able to enjoy the benefits of using extensions on their mobile devices and personalize their experience with the same level of freedom that has so far been reserved for desktop devices.

When you consider all this together, Manifest V3 is more likely a speed bump than a roadblock.

Further reading

Leave a Reply

Your email address will not be published.