A new version of Chrome that will be released later this year will break a number of ad blockers according to a new bug report submitted Tuesday by Raymond Hill, the maintainer of the popular ad blocking service uBlock Origin. Although the proposed changes to Chrome will still allow AdBlock Plus filtering capabilities, Hill argued that this would severely limit the ability of users to determine what kinds of content they see on the internet.
Hill’s bug report was posted to the website for Chromium, an open source project that develops the engine used by the Chrome, Brave, and Opera web browsers and soon Microsoft’s Edge browser. In October, Chromium developers announced their plan for Manifest V3, which they claimed would enable “trustworthy Chrome extensions by default.”
Chrome extensions are applications that run within Chromium browsers and allow users to customize the way they navigate the web. This can include everything from ad blocking extensions like uBlock to extensions that show you what the web would look like if you were colorblind or scrub offensive material from web pages.
For all their usefulness, many third-party Chrome extensions are also a major vulnerability. As Motherboard reported last year, extensions are a great vector for hackers to gain access to your computer. Chromium’s Manifest V3 is ostensibly an attempt to make Chrome extensions more secure by restricting the way the extensions can interact with a user’s computer.
In this respect, ad blockers like uOrigin seem to have been the casualties of good intentions. While there are many extensions that you wouldn’t want to have the same access to your computer that ad blockers have, these ad blockers also can’t serve their purpose without this access.
Ad blocker extensions like uBlock Origin work by reading network requests sent from ads on a web page to a user’s computer and filtering them according to the user’s preferences through a Chrome application program interface (API) called “webRequest.” In the new version of Chrome, however, extensions will still be able to see the network requests sent to a user’s computer via webRequest, but they will no longer be able to block them.
Instead, ad blockers will have to rely on an API called “declarativeNetRequest” which requires them to specify which types of network requests from ads they should block in advance, rather than allowing the dynamic blocking capabilities found in uBlock. The difference is like if you were charged with protecting a house, but could only pick a few of doors to protect in advance and hope your adversary chose those doors, rather than being able to move through the house and choose which doors to protect based on the ones an adversary was actually attacking.
This API was styled on the way that AdBlocker Plus blocks ads, which is far less robust than uBlock Origin. (Not to mention that AdBlock Plus also allows companies to pay to have their ads whitelisted, regardless of user preferences).
Moreover, as Hill noted, the declarativeNetRequest API limits the number of specific requests that can be blocked to 30,000 unique types. This is not enough to enforce EasyList, a popular list of basic rules for blocking unwanted content on the web, much less more sophisticated blocking rule lists.
A similar change was recently made to Apple’s Safari web browser, which was also met with animosity from ad blocking developers and their users. The difference, however, is that Apple still allows uBlock Origin to work with Safari and merely serves users a warning that the ad blocking extension will slow down their browsing. The changes made to Chromium, however, would prevent uBlock Origin from working at all.
“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 web sites which obviously would be happy to have the last word in what resources their pages can fetch/execute/render,” Hill concluded in his bug report.
Based on the response to Hill’s bug report on Hacker News and within the Chromium bug tracker itself, many users are pissed that the new version of the browser will prevent them from effectively blocking ads.
“If you haven’t already, please switch your browser,” one user wrote on the Chromium bug tracker. “Time to fork Chromium,” wrote another. Within 24 hours of Hill's post, the admins on the Chromium bug tracker had locked the issue from more comments and deleted several comments that had been made regarding the issue.
A Google spokesperson told 9to5Google.com that the proposed changes to Chrome are still “subject to change." Motherboard reached out to Google and the Chromium project to ask whether they still planned on disabling the webRequest API functions needed by uBlock origin and will update this post if we hear back.