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.