element-hq / element-web

A glossy Matrix collaboration client for the web.
https://element.io
GNU Affero General Public License v3.0
11.01k stars 1.96k forks source link

Browser WebExtension with Native Messaging as alternative to Electron #14523

Open stoically opened 4 years ago

stoically commented 4 years ago

Is your suggestion related to a problem? Please describe.

Personally I prefer running web apps in my browser of choice, which is not possible with apps that are powered by Electron. Running in the browser also has several benefits like

Using Element Web as is however comes with a set of limitations, namely it doesn't provide search in encrypted rooms (seshat) or storing of pickle keys into OS secure storage (keytar).

Describe the solution you'd like

To get those features that rely on native code into the browser world, something that can be done is using a WebExtension that talks via Native messaging with a executable on the host through stdio.

When trying to use a functionality that normally is restricted to Element Desktop, like when searching in an encrypted room, Element Web could offer instructions to install the WebExtension along with the native messaging host binary.

Describe alternatives you've considered

Not aware of alternatives yet.

Notes

This might also be interesting in combination with the PWA or even bundling Element Web itself as WebExtension.

steef435 commented 4 years ago

If this would replace the electron app, it would be rather unhandy with three separate dependencies (browser, extension, native binary), all with their own update mechanism.

t3chguy commented 4 years ago

It most definitely would not replace it.

stoically commented 4 years ago

Yeah, the idea would be just to have an alternative, not a replacement.

Keeping the browser up to date should be done regardless, the extension can auto-update itself, and yeah, the native binary would be a bit more tricky - though, it could be made self-updating as well.

jryans commented 4 years ago

@stoically Shouldn't you mention your own extensions which implement effectively this...? At the very least, you've already prototyped the idea.

stoically commented 4 years ago

Didn't want to make the impression of using this issue to promote my extensions. Would be nice to see it upstream and hence thought it might make sense to have a place to discuss this as a concept.

t3chguy commented 4 years ago

@stoically has great Web Extensions which solve this issue such as https://github.com/stoically/radical-native


No worry, I'll do it for you :P

jryans commented 4 years ago

Aha okay, sorry then. I was just a bit surprised to see no mention of it, as surely it would be at least a good reference for anyone thinking about this idea!