Google is planning to make some major changes to extension behavior in Chrome that could wipe out some ad blockers.
Raymond Hill, the developer of uBlock Origin and uMatrix, raised concerns on Tuesday via the Chromium bug tracker that upcoming changes to certain Chrome APIs would mean his extensions can "no longer exist".
Hill's concerns center on Google's proposal to prevent ad blocking through the webRequest API and restrict blocking capabilities to a new DeclarativeNetRequest API.
He explains that the new API would not impact Adblock Plus as it "merely enforces" that particular ad blocker's way of blocking. That in itself is a potential concern, given Google and others reportedly pay Adblock Plus to have their ads whitelisted. And the new restriction on third-party ad blockers follows Google's own ad-blocking efforts in Chrome.
However, Hill is most worried that if ad blockers are restricted to only using the declarativeNetRequest API, uBlock Origin and uMatrix will be ruined.
Hill also notes that it will be impossible for other ad-blocker developers to build new and novel filtering-engine designs.
Google explains that in Manifest V3 it will aim to limit the blocking version of webRequest, "potentially removing blocking options from most events (making them observational only)". It will also encourage content blockers to instead use declarativeNetRequest.
The current webRequest API is useful for ad-blocker extensions because it allows them to "intercept network requests to modify, redirect, or block them."
Google explains that the webRequest API can have a significant effect on all network requests, even those that aren't modified, redirected or blocked by the extension because Chrome needs to pass a request to the extension and wait for the extension to process it before handling it itself.
Assuming Manifest V3 is adopted, the new webRequest API would only allow extensions to observe network requests, but not modify, redirect or block them.
Describing the declarativeNetRequest API, Google notes the API allows extensions to tell Chrome what to do with a given request, rather than have Chrome forward the request to the extension.
"Thus, instead of the above flow where Chrome receives the request, asks the extension, and then eventually gets the result, the flow is that the extension tells Chrome how to handle a request and Chrome can handle it synchronously" the Google document states.
"This allows us to ensure efficiency since a) we have control over the algorithm determining the result and b) we can prevent or disable inefficient rules. This is also better for user privacy, as the details of the network request are never exposed to the extension."
However, Hill argues that the shift from webRequest to the DeclarativeNetRequest API will kill so many content-blocking capabilities that he questions whether Chrome can be called a 'user agent' and suggests rather that it's an agent for websites.
"Extensions act on behalf of users, they add capabilities to a 'user agent', and deprecating the blocking ability of the webRequest API will essentially decrease the level of user agency in Chromium, to the benefit of websites, which obviously would be happy to have the last word in what resources their pages can fetch/execute/render," wrote Hill.
"With such a limited declarativeNetRequest API and the deprecation of blocking ability of the webRequest API, I am skeptical 'user agent' will still be a proper category to classify Chromium."
Previous and related coverage
Google takes steps to protect Chromebooks from some types of physical access attacks.
Microsoft's Chromium-based Edge browser could close the extension gap.
And Google makes the case against using search copyright takedowns to combat piracy.
But not for long - they will be gone again by Chrome 70.
Bogus ad-blocker extensions in the Chrome Web Store trick millions of people into installing them.
How will Microsoft be able to maintain its own browser priorities once it no longer controls the destiny of its own browser engine?
A more rigorous review process that includes more humans seeks to better scrutinize extensions that demand lots of power.