The blog from Google is their defensive posture defending their choice, not comparing their choice to how ad/content blockers work and how effective and speedy are MV2 extensions.
All of Google’s claims have been debunked. They claimed MV3 would be faster. Wrong in the benchmarks. They claimed MV3 would have a smaller footprint. Ad/content blockers have long had efficient and compact storage in memory. Rather than implement a permissions scheme to allow users to decide to what resources an extension is granted access by the user, instead Google decides to make blanket decisions in their interest, not the user’s.
I have used both uBlock Origin (uBO) and uBO Lite (uBOL), and found uBOL is a very crippled version of uBO hence uBOL is not as effective as uBO. Raymond Hill, author of uBO explained that he did not use any workarounds for loss of MV2, especially since MV2 code is getting chopped out of Chrome, but made his Lite version wholly MV3 compliant. The result is Brave Shields (which are not an extension but integral to Brave, so are not subject to Google’s MV3 limitations) is closer in effectiveness to uBO under MV2. uBO Lite is not as effective as uBO, especially with the loss of Expert Mode to see just what got blocked by domain, and letting the user override the blocks on a per-domain basis if they want to allow some untoward content to make a web page usable.
MV3 limits how many rules an extension can load into tables in memory. That limits how many rules are available for filtering untoward content. 30,000 static rules per extension, 330,000 aggregate rule count across all extensions.
Google Chrome’s uBlock Origin phaseout has begun
“uBlock Origin Lite has more limited filtering capabilities than uBlock Origin, as the Manifest V3 spec puts restrictions on the Declarative Net Request API used by ad-blocking extensions.”
You WILL be forced to uBOL when MV2 support disappears, and are forced to MV3.
At first, Raymond Hill gave up on MV3 saying he would not produce an MV3 version of uBO. Happily he relented, and did produce an MV3 “Lite” version. Better than nothing under MV3. Not all ad/content blocker authors have been so proactive.
Browser Guard reached rule limitations (MalwareBytes)
Since the total rule-count limit in MV3 is per-extension based, I recall reading how some adblockers would slice into multiple extensions trying to separate their service workers to get around the MV3 limitation, but are still limited to the 330,000 aggregate rule count across all extensions. The ad/content blockers still have a ceiling to stay under. Remember that these tables are in memory (which are compacted), so there is no performance loss to having more rules. There are more rules to look through, but database lookups are binary, not linear.
In uBO in Firefox, and subscribed to all supplied blocklists (and not added more than supplied at install-time), I have:
340,000 network filters + 247,358 cosmetic filters
Obviously that far exceeds the MV3 rule limit per extension. In uBOL which I must use in Edge which is a Chromium variant, I have:
20,554 rules CONVERTED from 356,355 network filters
The static-to-DNR rule conversion is needed to stay under the 30K static rules per-extension limit of MV3. Many static rules cannot be converted to DNR (declarative network request) rules, so those get discarded. See chrome.declarativeNetRequest documentation.
Notice there are NO cosmetic filters in uBOL. MV3 doesn’t allow them, because MV3 extensions are not allow to interrogate and modify web doc content before rendered. So, you cannot define a cosmetic filter to, say, get rid of those “Best viewed with Chrome” popup ads by Google when using a non-Chrome web browser at Google sites trying to nuisance users into switching to Chrome. There is a web site that I visit that started adding Wikipedia inserts as a top banner on their web pages, as though I’m too stupid to understand some terminology or technology, so I defined a cosmetic filter in uBO to eliminate that garbage content at that web site. Can’t do that in uBOL, or any other MV3 compliant ad/content blocker.
Another limitation of MV3: Ad/content blockers cannot update their blocklists. That means you don’t get the latest version of blocklists, and that is important to remove filters for sites that are no longer presenting untoward content, but also to add more filters for newly found sites with untoward content.
AdGuard Browser Extension for Chrome MV3
“No auto and manual filter updates. The options Auto-update filters and Check filters update are no longer available in the Filters tab. Since some of the rules are now applied in DNR form, we can’t update filters on request, only through the full process of updating the extension along with the review in the stores.”
You don’t get updated blocklists until the extension gets updated. To keep up-to-date on the latest versions of blocklists the MV3 extensions have to get updated as often, and many blocklists are updated every 1 to 6 days.
Every MV2 ad/content blocker has more than just subscribing to blocklists. They also have their own feature set in addition to rules, like:
- Disabling CSP (Content Security Policy) reporting, a means to track your visits via fingerprinting. See Content-Security-Policy-Report-Only.
- Disable pre-fetching of hyperlinked content. See Disable pre-fetching. However, while effective in Firefox, disabling pre-fetch in Chromium is flaky or impossible – because “Chromium allows web pages to override that user setting”.
- Uncloak canonical names. Another Firefox-only feature since Chromium doesn’t support it. A Chromium issue, not an MV3 issue. Brave’s integral Shields do have CNAME exposure; see Fighting CNAME trickery.
- Disable hyperlink auditing
- Cloud storage support. Sync extension settings across multiple instances of extension in different web browser or across OS platforms. This enhances the Sync function in the web browser, not add yet another cloud service.
- Cosmetic filters. Gone in MV3.
- And other additional features available in MV2 versions of other ad/content blockers that are not doable under MV3.
Forcing MV3 ad/content blocker extensions to use service workers means Google can undo the blocks within Chrome. If Google should decide, they can undo any blocks on their ad tags service, analytics service, and any other Google services they want to protect for their revenue streams. The web browser gets control over content, and can override extensions and their service workers.