Create a Post
Electron webview partitions
I installed Station today and have been very impressed with the ootb functionality. One thing that seems not too difficult to add that I think would be extremely useful is a way to group related app instances into a persistent webview partition. The main problem with not being able to do this is the fact that all apps load in the Electron session.defaultSession, thus preventing users from logging in as different users to multiple instances of an app that does not support multiple instances (e.g. Microsoft Teams). It seems like it would be a fairly simple undertaking to take advantage of the 'partition' functionality already present in the Electron webview component to implement this. All that would be needed is a way to assign an app instance to a group (could literally just be another setting textbox for the app instance). Then, you could set the <webview partition="persist:[group-name]".../> attribute when that app instance is opened. This will cause only the app instances with the same [group-name] to use the same session, effectively isolating them from all other app instances of the same type. All un-grouped apps could continue to use session.defaultSession, preserving the existing functionality. To prove that this concept works, I unpacked app.asar, modified the mainRender.js file to add the partition attribute with a random string value to the webview element, repacked and substituted the updated file. I was able to login multiple times to app instances that used the same login provider and maintain distinct sessions. Of course, this rudimentary solution unconditionally isolates every app from every other app which is undesirable, but I think it serves as a good poc starting point. Any resistance to this? If it is just lack of resources I wouldn't mind putting a fork together to demo the functionality.
Load More