Google is currently in the process of updating the API used by Chrome extensions. This is not something that typical users would have cared much about, until extension developers pointed out that one of the proposed changes could prevent many content blockers (including uBlock Origin) from functioning. Google has now been backtracked on the proposal after public outcry, legal threats, and an independent report that found some of Google's claims to be questionable.
First, a bit of backstory – the current API level for Chrome extensions, called 'Manifest V2 , 'was introduced in 2012. Since then, Chrome has been subject to time and time again for malicious extensions. With the Manifest V3, currently under development, Google hopes to reduce the potential damage that malicious extensions can do, while also increasing performance and adding new features.
One of the proposed changes is a new declarativeNetRequest API designed to replace the webRequest API that many extensions (including AdBlock Plus and uBlock Origin) currently use. Simply put, instead of extensions doing the network filtering themselves, they would provide a filter list that Chrome would parse. In the Manifest V3 design document, Google claims that the current API can have a "significant effect" on browser performance:
On the surface, It seems quite reasonable that sending each network request to an extension and pausing the browser until the extension sends a response would slow down performance. Cliqz, the company behind the extension of the popular Ghostery browser, has decided to conduct a study on ad blocker performance in real-world performance, and the results did not quite match what Google said.
(Image credit: ZDNet)
The study performed by Cliqz showed that the average impact performance across popular ad blockers – including Ghostery, uBlock Origin and AdBlock Plus – was often less than 0.05 milliseconds. While the design document did say that the existing API could only "potentially" slow down Chrome, in practice, it's not something that a typical user would encounter.
Ghostery / Cliqz has previously made its distaste for proposed API changes well known. In a blog post, the company wrote, "They pretend to do this for the sake of privacy and browser performance, however, in reality, users would be left with only very limited ways to prevent third parties from intercepting their surfing behavior or getting rid of. of unwanted content. Whether Google does this to protect their advertising business or simply force their own rules on everyone else, it would be nothing less than another case of misuse of its market-dominant position. If this is true, we will consider filing an anti-trust complaint. "
In response to the outcry from both developers and users, Chrome engineer Devlin Cronin wrote in Google Groups that the current webRequest API will not be" fully removed as part of Manifest V3 ":
I would like to reiterate that all of these changes are still in the draft and design stage, as explicitly mentioned in the document and tracking bug. The declarativeNetRequest API is still being expanded and under active development, and the exact changes that will be implemented as part of Manifest V3 are not finalized. Another way of clarifying is that the webRequest API will not be completely removed as part of Manifest V3. In particular, webRequest (i.e., anything that does not modify the request) is not planned to change. We are also continually listening to and evaluating the feedback we receive, and we are still narrowing down proposed changes to the webRequest API.
The forum post also outlines other changes to the proposal based on developer feedback, such as adding dynamic rule support to the upcoming declarativeNetRequest API and increasing the maximum number of ruleset