The manifest v3 migration mandate is incredibly frustrating

542 views
Skip to first unread message

Alexander Harding

unread,
Oct 29, 2021, 12:54:17 PM10/29/21
to Chromium Extensions
Frankly, I'm at a loss of words. I understand the benefits of service workers for websites. They make sense.

But there are so many web extension use cases that need persistent background pages.

For example, I have an extension that acts like a password manager on steroids: It records the tab while the "session" is open on a tab, passes those recorded chunks to the server on an interval, and communicates with a websocket to the server to allow the session to be closed remotely, etc.

It needs a persistent background page when these "sessions" are active.

It's a corporate security product, and needs to be authoritarian over tabs it's been enabled on.

There's simply no way to replicate its behavior with manifest v3. There's no way to store HTMLAudioElement or MediaStream in the background page for cleanup when the session ends. There's no way to have a background websocket. There's no way to automatically clear in-memory data when the browser is closed. There's no way to implement webRequestBlocking + onAuthRequired. There's no way to run an interval < every minute. There's no way to store Blob video chunks from the tabCapture MediaStream to queue to upload to the server. There's so much more that is just not there.

I understand that most web extensions don't need this functionality. But some genuinely do. And I keep looking things up that my extension *needs*, and all I see are unanswered stackoverflow questions, empty forum threads, open issues.

I don't know what to do. I'm sorry for this rant, but I feel like there's major chasms of functionality that are lost in v3. And it's not just one thing, it's many completely absent core features to my extension's functionality.

Cuyler Stuwe

unread,
Oct 29, 2021, 1:30:44 PM10/29/21
to Alexander Harding, Chromium Extensions
Yep.

The company I'm currently with is also developing a security product in the browser.

Essentially the best thing we've come up with for MV3 is to make a "zombie window" that asks users not to try to close it. It fulfills some of the roles of a persistent background page, and reopens itself if closed.

--
You received this message because you are subscribed to the Google Groups "Chromium Extensions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-extens...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-extensions/3ecb703a-1498-43e1-9439-41def77e7f44n%40chromium.org.

Cuyler Stuwe

unread,
Oct 29, 2021, 1:32:10 PM10/29/21
to Alexander Harding, Chromium Extensions
Google's extension team essentially has boiled down the use-cases to effectively a handful of "toy apps", and didn't seem to really consider that there are people who are trying to build serious products on the extensions platform.

hrg...@gmail.com

unread,
Oct 29, 2021, 1:56:00 PM10/29/21
to Chromium Extensions, salem...@gmail.com, Chromium Extensions, aeha...@gmail.com
I fear that this "foreground background page" technique you mentioned, is going to be the only choice for us as well. A service worker lacks way too much functionality.

Cuyler Stuwe

unread,
Oct 29, 2021, 2:00:20 PM10/29/21
to hrg...@gmail.com, Chromium Extensions, aeha...@gmail.com
Yeah, this is a pretty big faux pas on Google’s part, roughly on-par with Windows Vista, Apple’s Butterfly keyboards, or Apple’s new notch in their latest laptops. A lot of similar stubborn defense of a decision that most of the informed public could see is bad from a mile away. 

Alexander Harding

unread,
Oct 29, 2021, 2:11:13 PM10/29/21
to Chromium Extensions, salem...@gmail.com, Chromium Extensions, Alexander Harding, hrg...@gmail.com
Thanks "salem" - At least there's some semblance of a workaround in the worst case scenario, even if the UX is really jank.

And to give v3 credit, there are some good things. For example, preventing arbitrary code execution makes sense. There's no good non-malicious use case for arbitrary code execution. Removing deprecated APIs makes sense. Breaking changes to coalesce namespaces (capture API) makes sense.

But all of the things that make sense in v3 are overshadowed by just how crippling the service worker context makes the background script, especially for our very valid use cases.

😔

Cuyler Stuwe

unread,
Oct 29, 2021, 2:13:12 PM10/29/21
to Alexander Harding, Chromium Extensions, hrg...@gmail.com
Yep. It’s exactly like how my amazing new M1 Max MacBook is marred by a distracting ugly notch that I hate, which for the time being I have to put up with if I want the speed and battery life it offers.

Really really similar misstep.

wOxxOm

unread,
Oct 29, 2021, 5:01:48 PM10/29/21
to Chromium Extensions, aeha...@gmail.com, salem...@gmail.com, Chromium Extensions, hrg...@gmail.com
MV3 doesn't actually prevent arbitrary or remote code execution, see https://crbug.com/1239976.

hrg...@gmail.com

unread,
Oct 30, 2021, 2:39:46 AM10/30/21
to Chromium Extensions, aeha...@gmail.com, salem...@gmail.com, Chromium Extensions, hrg...@gmail.com

There's no good non-malicious use case for arbitrary code execution.

There's plenty of good uses for arbitrary code execution.

The so called user-script manager extensions (Grease Monkey and the like) are used by dozens of millions of users worldwide and have resulted in an entire ecosystem of user scripts, which are the accumulated contributions of developers and enthusiasts throughout more than 15 years (even before Chrome existed).

There's also the need for extendable extensions, i.e. extensions whose functionality can be extended with scripts. This is actually a common need in software in general, not just browser extensions. For example, MS Office has a scripting language called VBA, Photoshop can be scripted with Javascript, Google Docs are extendable with "Apps script", Audacity can be scripted with Python... the list is looooong.

Alexander Harding

unread,
Oct 30, 2021, 11:14:38 AM10/30/21
to hrg...@gmail.com, Chromium Extensions, Alexander Harding, salem...@gmail.com
That’s a great point. I chose my words poorly, I was trying to say arbitrary code execution without an explicit extension API/permission, which is the case in v2.
Message has been deleted

tea

unread,
Nov 12, 2021, 2:13:57 PM11/12/21
to Chromium Extensions, vladimira...@gmail.com, Alexander Harding, Chromium Extensions, salem...@gmail.com, hrg...@gmail.com
Hey guys,
Where is the mandate to migrate from MV2 to MV3? I have not seen anything published with a deadline. Am I missing something? Can someone share a link?
Thank you

On Friday, November 12, 2021 at 7:24:16 AM UTC-5 vladimira...@gmail.com wrote:
help me figure out the site etherscan.io I am the owner , it is unclear how to withdraw funds from the exchange , I ask for help , you will receive a percentage of the profit if you figure it out

суббота, 30 октября 2021 г. в 18:14:38 UTC+3, Alexander Harding:

Alexander Harding

unread,
Nov 12, 2021, 2:33:46 PM11/12/21
to Chromium Extensions, tea, vladimira...@gmail.com, Alexander Harding, Chromium Extensions, salem...@gmail.com, hrg...@gmail.com

Alexander Harding

unread,
Nov 12, 2021, 3:07:58 PM11/12/21
to Chromium Extensions, Alexander Harding, tea, vladimira...@gmail.com, Chromium Extensions, salem...@gmail.com, hrg...@gmail.com
As an update, I created an issue in w3c/webextensions. I also did some brainstorming and came up with "persistent event pages" that addresses my concerns with MV3. I also tried to incorporate some limitations that prevent such proposal from being abused or used unnecessarily.


I personally hope something like this can be implemented before the MV3 mandate, as it would make for a much better user experience than opening a random tab to treat as a background page.

Klapaucius Klapaucius

unread,
Nov 12, 2021, 3:30:27 PM11/12/21
to Alexander Harding, Chromium Extensions

--
You received this message because you are subscribed to the Google Groups "Chromium Extensions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-extens...@chromium.org.
Reply all
Reply to author
Forward
Message has been deleted
0 new messages