Chrome 88 introduces the controversial Manifest v3, which seeks to fix the ‘extensions problem’

I’ve been covering Chrome extensions and their many mishaps for quite a while here now. Every time something crazy happens to a developer stealing user data and such, like the 15 cases from this past month, the four from last week that Facebook broke, and even the popular tab suspension tool that became harmful, says yourself of something called “Manifesto v3” that could help end it all. What exactly is this Manifest v3, though, and is it the end of all fixes for the Chrome extensions problem? Will it have adverse effects on extensions that are not malicious? We’re going to demystify all of that today, so sit down, grab a drink and let’s get started.

Manifest v3 was released in 2018 and has a long and controversial history. Basically, it is a new platform that makes Chrome extensions more secure, performing and respecting privacy by default. In particular, it does not allow the presence of code hosted remotely in extensions uploaded to the Chrome Web Store, which can facilitate the identification of potential threats in the review process.

It also allows extensions to be updated more quickly thanks to a new service worker that remains in memory only when needed, making it use fewer resources. In addition, it gives users greater visibility and control over how extensions using the new manifest are using and sharing their data. A cool trick is that it allows users to retain confidential extensions permissions when installing them.

In fact, the whole idea behind Manifest v3 is to provide ways for extensions to work well without having to persistently access user data. Not only that, but Google wants to move towards a future where all extensions are upgraded from Manifest v2 to v3, so that any potential performance issues do not affect the overall browser experience for the end user (the extensions badly coded are known to swallow RAM) and so that they can maintain a capable, powerful and feature-rich platform that can be enhanced by extensions and not hindered by them.

At this point, you may be wondering why this looks so familiar. Well, there are two reasons, actually. First, the Google Play Store has taken exactly the same approach in recent years. Developers must clearly state how they will use your data and for what purpose each permission requested from you will be used within the context of your application experience (Granular Permissions).

On Android Q, Google has started to allow you to go even further and let an application access only permissions while it is running, as opposed to in the background, if desired, and shows a persistent notification while any permissions are being accessed for that you remain in complete control of your privacy from moment to moment.

Second, I’ve reported several times how the Chrome Web Store would mimic a lot of that in early January and, well, here we are. Chrome will start giving users control over which data extensions they can access, and developers who respect user privacy will receive a “seal of approval” from Google (seen below), which can help users make informed decisions about which ones extensions are safe to install and use. In a nutshell, Google wants to fight the uncontrolled approach the Web Store has been operating in for so many years – it seems free to everyone, and that is unacceptable. Going forward, Web Store extensions should look a lot like the informative and professional appearance of Play Store listings, and Manifest v3 is directly responsible for all of these changes.

The new ‘Seal of Approval’ for extensions – If you don’t see it, run to the other side!

Okay, let’s sum it up a little bit – if Manifest v3 is so awesome, then why is it considered controversial? The main problem is that it requires developers like Raymond Gorhill, the incredible and reliable creator of the popular uBlock Origin and other adblockers, to use a new ‘DeclarativeNetRequest’ API that will limit the blocking of filter entries to 30,000 among other things, which does not equals close enough. In the process of limiting how many entries an extension can have in order to prevent abuse by malicious users, Google is literally disabling the very function that allows adblockers to exist!

Ad blockers are one of the most popular extension types, and a handful of the biggest developers in this space turned to Google to complain – so much so that Google had to delete several of the comments on the Chromium bug tracker and move the discussion to a topic private. In a response, a Googler stated that he had no intention of breaking extensions, but that in the process of ensuring user privacy and security, there would be some broken eggs, no matter what.

Our goal is not to break extensions. We are working with extension developers to strive to keep this breach to a minimum, while still advancing on the platform to improve security, privacy and performance for all users.

Chromium Bugs

At the time of writing this, we’re not sure whether Manifest v3 was changed to make an exception for adblockers and, if it was, it would have to be individually according to the developer’s confidence level and the relationship with Google in these private discussions. UBlock Origin developer Raymond has posted several on your Twitter account about how the argument about the performance costs of privacy-focused browser extensions doesn’t seem to be valid. In doing so, he quoted an article from the ACM Digital Library discussing this. The article was written by Kevin Borgolte and Nick Feamster, who are professors at Princeton University and the University of Chicago, respectively.

Contrary to Google’s claims that extensions that inspect and block requests negatively affect browser performance, we found that a browser with privacy-modified request modifications performs similarly or better in our metrics compared to a browser without extensions. In fact, even a combination of these extensions doesn’t perform any worse than a browser without extensions. Our results highlight that extensions with a focus on privacy not only improve users ‘privacy, but can also increase users’ browsing experience.

ACM Digital Library

Anyway, Manifest v3 is basically being implemented now with Chrome 88, so whether or not it will destroy popular adblockers as we know and love them, remains to be seen. We’ll keep you posted on how it all goes, but from now on, it looks like Google created a one-year migration period for them to start using the new DeclarativeNetRequest API – leaving them to discover a new method of circumventing their limitations or interrupting operations. In the meantime, they will continue to support the old Manifest v2 extensions webRequest API until that time expires.

What are your thoughts on all of this? Do you use uBlock Origin or another adblocker? If you are a developer, do you think these types of extensions slow down the browser experience? One, two, three, argue!

Source