I don't understand the technical details of this - could someone explain it to an idiot?
- Is the change specifically to block ad blockers, or uBlock specifically? Or is it just a new extension API?
- Could ad blockers adapt to the new version to work again?
I am reminded of the new version of (Mac) Safari, which features a new extensions API. It took a while for them to appear but there are now good ad blocking extensions again, like AdGuard for Safari.
From what I understand, there are currently events which gave you the ability to inspect, and also cancel a request if you want. This allows you to do things like cancel a request if it's trying to download a big video file.
But Google wants to remove the ability to cancel a request through the events, and they want to replace that with declarativeNetRequest[1]. If you look at the link, in the Rules section, it seems to be simple, kinda hardcoded (but configurable) filters.
You can also see there's a limit of only 30,000 rules[2], which is not enough for EasyList[3] (example used in the tracker), which seems to have ~74,000 rules.
This is not targeted to ad blockers specifically. It's a change that makes blocking requests less flexible. For example, uBlock and uMatrix rules can be overridden by more specific rules, something that declarativeNetRequest can't do.
>This is not targeted to ad blockers specifically.
At superficial inspection it's not obviously targeted at ad blockers. It might still be. Most of google's revenue comes from advertising, fighting against ad blockers wouldn't be unexpected for them.
The fact that they are leaving in the functionality to view/record/forward anything you visit makes it clear to me that the target is adblockers. Removing solely the ability to cancel a preflight request is, er, pretty specific.
I would defer to someone more knowledgeable, but here's my take:
1. Google is proposing to limit the API uBlock Origin uses, and replace it with a less capable one.
2. Google also plans to put artificial limits on the new API (30,000 rules or something), which will make it even more difficult to make an effective ad blocker. That's not even enough to implement current blocklists.
3. The new API is inflexible, so it will be difficult to impossible to create innovative ad blockers in the future.
Not to mention, once adtech gets the carrot dangling in front of them they will all overload their code with a ton more variations to escape the broad net of the top 30,000 rules. Which means the worst actors would be the ones most likely to escape filtering.
ghacks does a great job of explaining this (saw it first here).
Paraphrasing the article: Basically, they are limiting filters (used by ad-blockers) to 30k. Lots of blocking lists use more than 30k.
This is part of (possible) removal of blocking options from the webRequest API and the (possible) move to declarativeNetRequest to handle blocking requests.
The problem is with the limit on the number of filters. On desktop Firefox I have ~120,000 network filters active on uBlock. Safari on iOS limits the number of filters an adblocker can have active to 50,000 and Google are proposing limiting it to 30,000 on Chrome.
On iOS and macOS, blockers can have more filters than this "limit" by simply exposing more than one list, since the quota is per-list. I think AdGuard exposes four, for example.
Is there something special that needs to be done to configure it? Every time I go over 50,000 I get a red warning at the bottom of the AdGuard filters setting screen telling me that I'm over the limit.
1Blocker for iOS and Mac works around this limitation by segmenting it's blocker list into categories, and each category is a separate blocker extension but they are all shipped together in the same app.
This way they can have pretty much as many multiples of 50,000 rules as they need.
- Is the change specifically to block ad blockers, or uBlock specifically? Or is it just a new extension API?
- Could ad blockers adapt to the new version to work again?
I am reminded of the new version of (Mac) Safari, which features a new extensions API. It took a while for them to appear but there are now good ad blocking extensions again, like AdGuard for Safari.