Skip to content
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

Feature: Ability to add Chrome extensions like password managers #135

Open
3 tasks done
MurzNN opened this issue May 11, 2022 · 78 comments
Open
3 tasks done

Feature: Ability to add Chrome extensions like password managers #135

MurzNN opened this issue May 11, 2022 · 78 comments
Labels
enhancement ✨ New feature or request help wanted 🙏 Extra attention is needed

Comments

@MurzNN
Copy link
Sponsor Contributor

MurzNN commented May 11, 2022

Preflight Checklist

Problem Description

Rambox has ability to add extensions to the services, here is a description of this feature: https://rambox.app/feature/extensions

This is very useful to automate entering passwords using password managers like Bitwarden, also Grammarly integration will be cool too!

Shift also has the same feature: https://tryshift.com/features/extensions/

Proposed Solution

Will be good to have same feature in Ferdium too!

Alternatives Considered

Nope

Additional Information

No response

@MurzNN MurzNN added the enhancement ✨ New feature or request label May 11, 2022
@Jvlsc Jvlsc mentioned this issue May 23, 2022
3 tasks
@mattdrepo
Copy link

Not forgetting the ability to add location spoofing via a plugin. Ferdi/Ferdium allow apps like Tinder as well as other location based apps to be included - when they rely on Location. Location is also a key part of websites serving content to people from X continent. I would prefer location to NOT be a plugin, but when this could be the only way: I think plugins garner more worth.

@martinszy
Copy link

Hello, this is important. Is it planned?

@TiZ-HugLife
Copy link

Hi there. Ferdium has been great so far, but this is important for me too; the organization I work for has switched to a policy that invalidates active logins every day, which means that without an autofilling password manager, I have to freshly log in to all of my apps that use my org's credentials every day. This causes me to risk missing important notifications from my job's Teams chats, as one example.

@cramberries
Copy link

Would love to have this feature as well.

If I just may add another use-case to the benefits of supporting extensions: being able to use scripts on certain websites (via extensions like TamperMonkey/GreaseMonkey) would make a lot of things easier for some sites as well.

@bassmanitram
Copy link

I just wanna disable auto modification of sound device volumes - there's an extension for that, so this issue would certainly help.

@Fijxu
Copy link

Fijxu commented Dec 10, 2022

+1. I would love to use Ublock Origin on Ferdium so Discord and all the other services don't send sketchy telemetry data to they servers

@rndthoughts
Copy link

Hi there. Ferdium has been great so far, but this is important for me too; the organization I work for has switched to a policy that invalidates active logins every day, which means that without an autofilling password manager, I have to freshly log in to all of my apps that use my org's credentials every day. This causes me to risk missing important notifications from my job's Teams chats, as one example.

This, times 100.

@soumyaDghosh
Copy link

+1. I would love to use Ublock Origin on Ferdium so Discord and all the other services don't send sketchy telemetry data to they servers

Same here

@Havock94
Copy link

+1 and following. I also use Ferdium for custom websites (news, forums etc) and some of them have really invasive ads, can't wait for extensions support!

@RJVB
Copy link

RJVB commented Jan 29, 2023

+++ for adblocking, now that Instagram is also serving ads to its "desktop" version!

@siamak-haschemi
Copy link

+1 My use-case is also to use a password-manager extension. I use KeePassXC on my mac, and a browser-plugin which connects to the locally running application to get the username/passwords for entering in the browser. I would love to be able to install the chrome-browser-plugin in Ferdium.

@wallieee
Copy link

wallieee commented Feb 2, 2023

+1 Looking forward for this to be implemented, extensions are really useful on the web apps such as ad blockers, etc...

@appel
Copy link

appel commented Feb 2, 2023

Not to further bloat this issue, as I'm sure the devs are aware of the upsides of extension support. Just want to point out that besides the obvious use case for extensions like adblockers and password managers I'd also like to be able to use extensions that enhance a specific service. Some are well-known, others are quite "niche" and specific.

For example, I use "Gmail Simple Notes" for adding notes to emails. I also use "Gmail Quick Links" to store custom searches. And I use "Stylus" across my services to clean up the interface.

Despite Ferdium already being super useful, not having access to these extensions are currently keeping me from fully switching over from my cluttered SSB setup.

@RJVB
Copy link

RJVB commented Feb 2, 2023 via email

@lemikeone
Copy link

I would really like to have the ability to install Chrome extensions too, especially to use LanguageTool.

@ThinkSalat
Copy link

I've also made this comment in the discord. Because it runs on chromium it should be easy to allow extensions. Many of Ferdi's competitors in the all in one services window space allow extensions already. not sure why this hasn't been a day one feature. Have any developers chimed in as to why this feature is still blocked?

@lemikeone
Copy link

@ThinkSalat, which competitors of Ferdium are you referring to?
I have tried several in recent days, including Franz, texts.com, Beeper, Rambox, and Singlebox, but none of them support Chrome extensions.
The only options that do support extensions are more like alternative browsers, providing more features than I require.
Currently, Singlebox works best for me. I would have preferred to stay with Ferdium, but I often encountered issues with the purple splash screen freeze and slow loading times.
If Ferdium were to add support for Chrome extensions, I would definitely reconsider my choice.

@Havock94
Copy link

Havock94 commented Feb 6, 2023

@lemikeone I haven't got much experience with the alternatives but Rambox claims to support extensions in its website (although in a pro plan)

@lemikeone
Copy link

@Havock94 For what I have seen when I tried it, they only support their own selection of extensions (LanguageTool is not part of it) : 1Password, BitWarden, Boomerang for Gmail, Dark Mode, Dark Reader, DashLane, DragApp, Google Docs Offline, Google Translate, Grammarly, LastPass, NordPass, SafelnCloud and uBlock.

@MurzNN
Copy link
Sponsor Contributor Author

MurzNN commented Feb 6, 2023

Shift also provides wide list of extensions: https://tryshift.com/extension/

@R2Pitou
Copy link

R2Pitou commented Nov 16, 2023

Adding myself to the cacophony. Being able to use Chrome Extensions like 1password, AI ghostwriters etc. would bring a massive productivity boost to ferdium!

@bayazidbh
Copy link

There's already so many people asking for this, but how would this be implemented? Isn't Ferdium using electron? Not sure if that supports extensions, beyond some .js ones (though, having a better UX for that would still help). Wavebox, which I'm currently use it. implement it by just being an actual browser - it's actual real Chromium browser with a different front-end a la Vivaldi. That would require a major rewrite of the project, though, in which case I get why there's no answer/plan here yet from the devs.

@nickchomey
Copy link

Agreed - this would be fantastic

@germain-italic
Copy link

+1 for Chrome extensions (not necessarily adblockers, I have a bunch of Gmail exts that enhance my workflow)

@D3SOX

This comment was marked as off-topic.

@Qu1ckJ
Copy link

Qu1ckJ commented Jan 29, 2024

+1 for Chrome extensions

@o0-o
Copy link

o0-o commented Jan 29, 2024

Are Chrome extensions at all feasible for a platform based on Electron? Looking at Rambox, it looks like they transitioned their whole platform from Electron to pure Chromium at which point they were able to support Chrome extensions. Of course, that was also the point at which they transitioned away from open source, so I suppose we can't know exactly what happened with the code.

Anyway, I just wanted to point out that implementing general support for Chrome extensions would likely involve a fundamental restructure of either Ferdium or Electron. Correct me if I'm wrong.

@vraravam
Copy link
Contributor

Anyway, I just wanted to point out that implementing general support for Chrome extensions would likely involve a fundamental restructure of either Ferdium or Electron

Yes, you are absolutely correct. Electron (as a framework) needs to provide support for chrome extensions, after which, based on volunteers in Ferdium, we can try to incorporate/enable the same. Without either of them, its pointless to keep adding +1 messages to this ticket.
For those who want to watch/subscribe to this thread, please click on the "Subscribe" button on the right, rather than adding a comment. It only creates spam for those of us watching, without any positive impact on the outcomes. TIA

@Julian88Tex
Copy link

Thanks for the extra context. RE electron supporting chrome extensions, is there perhaps an electron issue we can subscribe to with this request?

RE +1s, I suspect many people don't know or forget about this github feature. Seems like a reasonable Github feature request is for it to prompt and subscribe or emoji response before posting.

@o0-o
Copy link

o0-o commented Jan 29, 2024

RE electron supporting chrome extensions, is there perhaps an electron issue we can subscribe to with this request?

If that issue exists, linking it here and freezing additional comments (assuming that is possible?) would make sense, imho.

@Julian88Tex
Copy link

It appears Electrons documentation explicitly states that supporting extensions is a "non-goal": https://electronjs.org/docs/latest/api/extensions

In that case it seems like this should be closed as a won't do with some reasoning provided or it should be linked to another issue which discusses the possibility of rewriting Ferdium as a non-Electron app with pros and cons.

@martinszy
Copy link

martinszy commented Jan 29, 2024

What about the option we were talking about last year with the rambox code?

here: #135 (comment)

@o0-o
Copy link

o0-o commented Jan 29, 2024

What about the option we were talking about last year with the rambox code?

here: #135 (comment)

For anyone new to this issue, please hold any "+1" or other non-substantive posts until Ferdium devs can respond to @martinszy

@vraravam
Copy link
Contributor

here: #135 (comment)

This is non-trivial (and requires an almost full rewrite of Ferdium), and unless we have new volunteers who are willing to take this up, it won't be implemented. (I have greatly minimized my contribution to Ferdium, so I might not have the latest thinking from the rest of the core contributors - so please take that into account.)

@MurzNN
Copy link
Sponsor Contributor Author

MurzNN commented Jan 29, 2024

As I see here

ferdium-app/src/index.ts

Lines 546 to 547 in 55a5d38

const serviceSession = session.fromPartition(`persist:service-${serviceId}`);
const child = new BrowserWindow({

We're already creating a new Browser Windows for each service, so seems we can pass it to the extension from the example https://github.com/ramboxapp/electron-chrome-extensions/blob/master/README.md#advanced:

// Adds the active tab of the browser
  extensions.addTab(browserWindow.webContents, browserWindow)

Or this will not work and we shold rework the whole approach?

@vraravam
Copy link
Contributor

where are extensions managed from? What format will that be "understood" in? do we want universally enabled or per-service-enabled? what about performance hits due to extensions?

@MurzNN
Copy link
Sponsor Contributor Author

MurzNN commented Jan 29, 2024

where are extensions managed from? What format will that be "understood" in?

As I see in this example https://github.com/samuelmaddock/electron-browser-shell - seems we should manually "pack" them: https://github.com/samuelmaddock/electron-browser-shell/tree/master/extensions

Place unpacked extensions (not .crx archives) here to have them automatically loaded by the browser.

After this, I guess they should automatically appear in the url bar at the right.

do we want universally enabled or per-service-enabled?

I think global enabling would be more convenient, especially for password managers like Bitwarden and ad blockers.

what about performance hits due to extensions?

I think like in the usual Chrome instance, but I think everyone thirsty for this feature will be ready to get some performance degradation.

P.S. I understand that this is maybe not as trivial as I describe, but just want to give it a try, maybe the integration will be really not as hard as it looks. Especially if we already have a working example here https://github.com/samuelmaddock/electron-browser-shell

I'm not an Electron developer, so can't give any deep technical help from my side, but really wish to get extensions in the Ferdium, so ready to test and give ideas.

@RJVB
Copy link

RJVB commented Jan 29, 2024 via email

@quentingosset
Copy link

where are extensions managed from? What format will that be "understood" in?

As I see in this example https://github.com/samuelmaddock/electron-browser-shell - seems we should manually "pack" them: https://github.com/samuelmaddock/electron-browser-shell/tree/master/extensions

Place unpacked extensions (not .crx archives) here to have them automatically loaded by the browser.

After this, I guess they should automatically appear in the url bar at the right.

do we want universally enabled or per-service-enabled?

I think global enabling would be more convenient, especially for password managers like Bitwarden and ad blockers.

what about performance hits due to extensions?

I think like in the usual Chrome instance, but I think everyone thirsty for this feature will be ready to get some performance degradation.

P.S. I understand that this is maybe not as trivial as I describe, but just want to give it a try, maybe the integration will be really not as hard as it looks. Especially if we already have a working example here https://github.com/samuelmaddock/electron-browser-shell

I'm not an Electron developer, so can't give any deep technical help from my side, but really wish to get extensions in the Ferdium, so ready to test and give ideas.

Hey @MurzNN do you have find something to make extension work ?
it's seems electron can use chrome extension. If you see the dependencies used on this product : https://codecanyon.net/item/web3-browser-ifox/46329836 you can see "electron-chrome-extensions": "^3.10.1". So i think we have a proof thats it possible. now, we need just learn how to use it and make it work :D

@kteppris
Copy link

This feature would be really need. Has there been any progress? :)

@vraravam
Copy link
Contributor

waiting for new contributors to help with the backlog @kteppris . till then, no progress can be made

@RJVB
Copy link

RJVB commented Mar 24, 2024

Not that it makes a lot of difference with the backlog, but part of the reason behind the request for extension support is to be able to run an adblocker.

I can't recall if it's been suggested already, but adblocking could also be built in. Quite a few applications provide implementations of that which are compatible with standard AdBlock filter lists (I was just reminded it exists, or existed, in KMail, for instance).

I would be really surprised if no module exists for NodeJS and/or Electron that implements such functionality (and that would thus probably be a lot easier to integrate).

@bayazidbh
Copy link

Adblock and a GUI userscript manager would be enough in most cases IMO. I'd love to have more, but at that point it'd be a browser, and I do actually have actual browsers for that.

@RJVB
Copy link

RJVB commented Mar 25, 2024 via email

@MurzNN
Copy link
Sponsor Contributor Author

MurzNN commented Mar 25, 2024

Adblock and a GUI userscript manager would be enough in most cases IMO. I'd love to have more, but at that point it'd be a browser, and I do actually have actual browsers for that.

But we already have some kind of userscripts via editing the per-serivce user.js file from the service settings page. You can include there any hacks you want :) But copy-pasting some kind of adblock there will be a pretty tricky task

@RJVB
Copy link

RJVB commented Mar 25, 2024 via email

@trymeouteh
Copy link

This would be an amzing feature to have

@odnar-dev
Copy link

i think this may be related : https://github.com/samuelmaddock/electron-browser-shell

@SpecialAro SpecialAro added the help wanted 🙏 Extra attention is needed label May 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement ✨ New feature or request help wanted 🙏 Extra attention is needed
Projects
Status: New
Development

No branches or pull requests