-
-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extension Manifest V3 not supported #38
Comments
Is there any news on electron's support for injecting JS into service worker contexts? https://developer.chrome.com/docs/extensions/mv3/mv2-sunset/ Here's the V2 support timeline, and so we're looking to get upgraded to V3 before V2 is completely killed off. |
Currently no update. I've spent time researching what it would take and the amount of work is non-trivial. Electron's preload scripts work in a secure environment thanks to the effort of extension content scripts which provide an isolated JS context. Node's globals and other variables within preload scripts are separate from the main JS context. This is how V8's binding system works: https://chromium.googlesource.com/chromium/src/+/master/third_party/blink/renderer/bindings/core/v8/V8BindingDesign.md#world The problem is when trying to do the same thing with Workers (Service, Web, Shared). Support for isolated worlds/contexts within a worker environment isn't something that exists yet. This has been attempted before without context isolation which isn't a secure approach (see electron/electron#28923 (comment)). At a high-level, here's a list of what might be needed:
Then there's a few other requirements just for API design within Electron. A design proposal might be needed for that in the API governance repo. I do realize the importance of this work prior to Chrome dropping support of MV2, however, I don't currently have a roadmap for these contributions. |
@samuelmaddock hello. May I know the current status of this matter? Is there any news on electron's support for injecting JS into service worker contexts? |
Electron does not yet support preload scripts for service workers. I'm not aware of others currently working towards adding this. I spent time on it a couple of months ago, but I have no estimate and I'm not close to a solution. |
In case anyone is interested, there is movement towards Manifest v3; electron/electron#39395 |
any updates on this :( |
I'm currently awaiting comments on my RFC which would unblock this |
Hello, @samuelmaddock |
Depends on this electron/rfcs#4 |
This RFC has been around for a long time... |
Manifest V3 (MV3) is that latest versions of the Chrome extensions API which is now stable in Chrome.
It's partially supported in Electron at the moment since electron/electron#27562 was introduced.
Known affected extensions
I don't know of any widely used extensions shipping with MV3 yet, but there will be as MV2 begins to be phased out.
Possible solutions
electron-chrome-extensions
provides new extension APIs by injecting them with JavaScript. This is done in Electron preload scripts. Instead of background hosts using a WebContents instance, MV3 uses service workers.Electron doesn't have support for injecting JS into a service worker context yet. The API will need to be expanded to support new contexts. Work on specing out changes has started in electron/governance#366
The text was updated successfully, but these errors were encountered: