Last week, Raymond Hill, the developer behind uBlock Origin shared that the extension’s dev build 1.22.5rc1 was rejected by Google’s Chrome Web Store (CWS). uBlock Origin is a free and open-source browser extension widely used for content-filtering and adblocking.
Google stated that the extension did not comply with its extension standards as it bundles up different purposes into a single extension. An email to Hill from Google reads, “Do not create an extension that requires users to accept bundles of unrelated functionality, such as an email notifier and a news headline aggregator.”
Hill on a GitHub issue mentioned that this is basically “stonewalling” and in the future, users may have to switch to another browser to use uBlock Origin. He does plans to upload the stable version. He commented, “I will upload stable to the Chrome Web Store, but given 1.22.5rc2 is rejected, logic dictates that 1.23.0 will be rejected. Actually, logic dictates that 1.22.5rc0 should also be rejected and yet it’s still available in the Chrome Web Store.”
Users’ reaction on Google rejecting the uBlock Origin dev build
This news sparked a discussion on Hacker News and Reddit. Users speculated that probably this outcome is the result of the “crippling” update Google has introduced in Chrome (beta and dev versions currently): deprecating the blocking ability of the WebRequest API.
The webRequest API permits extensions to intercept requests to modify, redirect, or block them. The basic flow of handling a request using this API is, Chrome receives the request, asks the extension, and then gets the result. In Manifest V3, the use of this API will be limited in its blocking form. While the non-blocking form of the API, which permit extensions to observe network requests will be allowed.
In place of webRequest API, Google has introduced the declarativeNetRequest API. This API allows adding up to 30,000 rules, 5000 dynamic rules, and 100 pages. Due to its limiting nature, many ad blocker developers and maintainers have expressed that this API will impact the capabilities of modern content blocking extensions.
Google’s reasoning for introducing this change is that this API is much more performant and provides better privacy guarantees. However, many developers think otherwise. Hill had previously shared his thoughts on deprecating the blocking ability of the webRequest API.
“Web pages load slow because of bloat, not because of the blocking ability of the webRequest API — at least for well-crafted extensions. Furthermore, if performance concerns due to the blocking nature of the webRequest API was their real motive, they would just adopt Firefox’s approach and give the ability to return a Promise on just the three methods which can be used in a blocking manner.”
Many users also mentioned that Chrome is using its dominance in the browser market to dictate what type of extensions are developed and used. A user commented, “As Chrome is a dominant platform, our work is prevented from reaching users if it does not align with the business goals of Google, and extensions that users want on their devices are effectively censored out of existence.”
Others expressed that it is better to avoid all the drama by simply switching to some other browser, mainly Firefox. “Or you could cease contributing to the Blink monopoly on the web and join us of Firefox. Microsoft is no longer challenging Google in this space,” a user added.
While some others were in support of Google saying that Hill could have moved some of the functionalities to a separate extension. “It’s an older rule. It does technically apply here, but it’s not a great look that they’re only enforcing it now.
If Gorhill needed to, some of that extra functionality could be moved out into a separate extension. uBlock has done this before with uBlock Origin Extra. Most of the extra features (eg. remote font blocking) aren’t a huge deal, in my opinion.”
How Google reacted to the public outcry
Simeon Vincent, a developer advocate for Chrome extensions commented on a Reddit discussion that the updated extension was approved and published on the Chrome Web Store.
“This morning I heard from the review team; they’ve approved the current draft so next publish should go through. Unfortunately it’s the weekend, so most folks are out, but I’m planning to follow up with u/gorhill4 with more details once I have them.
EDIT: uBlock Origin development build was just successfully published. The latest version on the web store is 18.104.22.168.”
He also further said that this whole confusion was because of a “clunkier” developer communication process. When users asked him about the Manifest V3 change he shared, “We’ve made progress on better supporting ad blockers and content blockers in general in Manifest V3. We’ve added rule modification at runtime, bumped the rule limits, added redirect support, header modification, etc. And more improvements are on the way.”
He further added, “But Gorhill’s core objection is to removing the blocking version of webRequest. We’re trying to move the extension platform in a direction that’s more respectful of end-user privacy, more secure, and less likely to accidentally expose data – things webRequest simply wasn’t designed to do.”
Chrome ignores the autocomplete=off property
In other Chrome related news, it was reported that Chrome continues to autofill forms even if you disable it using the autocomplete=off property. A user commented, “I’ve had to write enhancements for Web apps several times this year with fields which are intended to be filled by the user with information *about other users*. Not respecting autocomplete=”off” is a major oversight which has caused a lot of headache for those enhancements.”
Chrome decides on which field should be filled with what data based on a combination of form and field signatures. If these do not match, the browser will resort to only checking the field signatures.
A developer from the Google Chrome team shared, “This causes some problems, e.g. in input type=”text” name=”name”, the “name” can refer to different concepts (a person’s name or the name of a spare part).” To solve this problem the team is working on an experimental feature that gives users the choice to “(permanently) hide the autofill suggestions.”
Check out the reported issue to know more in detail.