Since January, we’ve been following a set of major changes to extensions on Google Chrome, called Manifest V3, which includes a controversial rework of how ad blockers are expected to function. In response to the overwhelmingly negative feedback, Google has created an internal performance test for ad blocking extensions, to show that they’re committed to allowing ad blockers in Chrome.
For a quick recap, the main part of Chrome’s Manifest V3 that the community has taken issue with is that extensions will no longer be able to use the blocking capabilities of the “Web Request” API. Extensions like uBlock Origin and Ghostery use this to block unwanted web content (like ads and trackers) before it’s ever downloaded.
The problem that Google sees, with the way the Web Request API works now, is that any extension can silently have access to all of your Chrome traffic data. Well-meaning Chrome extensions, of course, don’t abuse this fact, but 42% of malicious extensions reportedly do.
Google intends to fix this glaring privacy issue with Manifest V3 by replacing Web Request’s blocking abilities with the “Declarative Net Request” API. Where the Web Request API checked in with extensions for every network request, Declarative Net Request instead has extensions “declare” ahead of time which requests need to be altered and what action to take on them.
Google has provided some handy illustrations to better explain these differences.
With the first two diagrams, the team is also trying to prove that ad blocking extensions using Declarative Net Request should perform faster than the previous Web Request API. This could indeed be the case, as Chrome won’t need to check in with every extension, just the ones that have registered a matching rule.
In an attempt to soon back up this claim, Google is taking the most direct route possible by creating their own ad blocker extension to test it. Spotted in Chromium’s Gerrit source code management site, a Chromium team member has been working on two ad blocker related projects.
The first is a tool, designed to convert from an ad blocker filter list to Declarative Net Request rules. The second is the fruit of that tool, a simple ad blocker extension, used exclusively for internal performance testing, powered by a converted version of popular ad blocking filter lists EasyList and EasyPrivacy. According to the related bug report, the goal of these projects is to help Google test ad blocker performance and detect early on if a change to Chrome causes a “regression” in ad blocker performance.
To do this, the ad blocker test extension will test about 6,000 web connections, running each one through the converted EasyList rules. This test is currently designed to measure how quickly the extension can process each request and how much RAM is used.
It should be noted that not every proposed code change found in the Chromium Gerrit makes its way to Google Chrome proper. So we’ll be keeping an eye on this ad blocker performance test as it develops and is iterated on going forward.
Changes to rule limits
Before they could actually use this ad blocker test, Google needed to address another issue with Manifest V3. One of the complaints critics had was with the proposed restriction on the number of “rules” each extension could create, set at a limit of 30,000.
Google’s ad blocker extension test further proved the complaint to be true, as it converted EasyList’s over 75,000 filters to just under 40,000 rules. (For reference, Google’s converter tool entirely ignored the parts of filter lists that altered page visuals, focusing exclusively on network filters.)
In response to this feedback, the proposal is being adjusted to a maximum of 150,000 rules shared across extensions.
We are actively exploring other ways to expand this API, including adding methods to get feedback about matched rules, and support for richer redirects leveraging URL manipulation and regular expressions. Additionally, we are currently planning to change the rule limit from maximum of 30k rules per extension to a global maximum of 150k rules.
Google’s stance on ad blockers
This actually isn’t even the first time Google has created something like an ad blocker, as the company launched a built-in ad blocker for Chrome early last year. However, this built-in blocker only targets ads that don’t conform to the “Better Ads Standards.”
Overall, the message Google is trying to get across is that Chrome isn’t doing away with ad blocking extensions. Creating a dedicated test to check the performance of ad blockers in Chrome is a strong sign of their future in the browser.
This article has been updated to further emphasize that this is for internal testing only.