ferdium / ferdium-app

All your services in one place, built by the community
https://ferdium.org
Apache License 2.0
3k stars 179 forks source link

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

Open MurzNN opened 2 years ago

MurzNN commented 2 years ago

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

mattdrepo commented 2 years ago

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 commented 2 years ago

Hello, this is important. Is it planned?

TiZ-HugLife commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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

Fijxu commented 1 year ago

+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 commented 1 year ago

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 commented 1 year ago

+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 commented 1 year ago

+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 commented 1 year ago

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

siamak-haschemi commented 1 year ago

+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 commented 1 year ago

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

appel commented 1 year ago

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 commented 1 year ago

On a more general note: certain really useful extensions (like FB Purity) also exist as userscripts to be run in Grease/TamperMonkey. It should be possible to run those as a user.js script in a specific service but there are a few problems with that:

One thing the devs may want to know is if we expect extensions (and their settings!) to be synched... Personally I'd consider it progress already if they're not - I don't expect to be installing as many extensions as I have in my browser.

lemikeone commented 1 year ago

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

ThinkSalat commented 1 year ago

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 commented 1 year ago

@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 commented 1 year ago

@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 commented 1 year ago

@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 commented 1 year ago

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

lemikeone commented 1 year ago

Thanks @MurzNN, I had a look at Shift, but I have to say that $149 per year to manage my messaging apps is a bit too much for me 😄

ThinkSalat commented 1 year ago

Yeah, was in love with Shift till I say $149 price tag PER YEAR. these people are psychos. We can make Ferdium better and completely free. There are a ton of cool apps like shift that cost less and have the same features.

@lemikeone It's true, oftentimes these electron apps have somewhat limited extension pools or are not well tested.

PandaWhisperer commented 1 year ago

Quick tip for those of you wanting support for blocking ads in Ferdium: you CAN block (or at least hide) advertisements using custom rules in your user.css.

For instance, adding this rule in user.css for Twitter will block promoted tweets in your timeline:

[data-testid="cellInnerDiv"] [data-testid="placementTracking"]:has([data-testid*="impression-pixel"]) { display: none; }

It's a bit of a PITA to figure out these rules and requires decent knowledge of CSS and use of the web inspector, but it does work. For more complex cases that aren't possible to target with CSS alone, there's also a user.js that allows injecting custom JavaScript into the page.

Havock94 commented 1 year ago

In my case, as a web developer, I have no problem figuring out the CSS rules for the websites I'm using, but unfortunately some websites use dynamic classes for their ads containers and that's impossible to manage with CSS only. Also remember that hiding the ads containers doesn't prevent the actual HTTP requests, that can slow down the page or even download malwares or adwares. That's where an adBlock comes handy.

CSS rules are of course a temporary workaround to hide the disturbing containers while we wait for extensions support, but it's not a "definitive" solution.

RJVB commented 1 year ago

On Thursday February 23 2023 01:28:55 Luca wrote:

That's where an adBlock comes handy.

Isn't a browser extension essentially a userscript with access to features that make it easier to use but do not concern its core function? Something like FB Purity exists as a userscript and that version does do its job in Ferdium. The only thing that doesn't work is setting the configuration options.

BTW: https://www.electronjs.org/docs/latest/api/extensions

Havock94 commented 1 year ago

@RJVB You're correct, but extensions can also access the browser APIs in ways you wouldn't be able to with simple scripts. I always use the example of an Ad Block, where the source code can contain thousands of code lines. You can write your own AdBlock, but why reinventing the wheel when it's already been done? Also by implementing extensions you'd also have automatic updates without having to worry to manually update the code on every release, let alone the fact that not everyone has the knowledge to write or even find and install scripts.

Again, with pure CSS and pure JS you can definitely do something, native extensions support is the next step

martinszy commented 1 year ago

So... if user scripts can be used to add functionality... maybe they could be used to write the extension manager?

miztizm commented 1 year ago

this would be a killer function +1111111111111111111111111111111111111111111111

mcopik commented 1 year ago

:+1: Integration of extensions such as Grammarly would be perfect. Right now, I can't make a complete switch with my mail client from browser to Ferdium since I need spellchecking and grammar verification for writing emails.

bboysnick5 commented 1 year ago

Please make it happen. begging.

benzntech commented 1 year ago

Here are some references done by getstation for the chrome-extension https://github.com/getstation/electron-chrome-extension

RJVB commented 1 year ago

As far as ad-blocking is concerned it seems uBlock Origin could be integrated via the npm/nodejs module they provide:

https://github.com/gorhill/uBlock/tree/master/platform/nodejs

wokawoka commented 1 year ago

ublock origin integration would be a gamechanger!

katastrophe92 commented 1 year ago

I use NextDNS or the NordVPN adblocking feature when VPN is ON. A lot of VPN providers have nowadays adblock feature. But NextDNS is the best. Even the free plan is enough for most peoples. I even have it as a "custom recipe" in Ferdium to look at the logs if something is blocked that I need, if is a false positive or to quick change something. It is really cheap the year plan and is working on every device If Ferdium would have extensions and maybe go away fron electron it will be the best. But I still love it 😍

Cris70 commented 1 year ago

@ThinkSalat, which competitors of Ferdium are you referring to?

Wavebox supports all Chrome extensions.

miztizm commented 1 year ago

@ThinkSalat, which competitors of Ferdium are you referring to?

Wavebox supports all Chrome extensions.

its not a freemium software

ThinkSalat commented 1 year ago

Ferdium still doesn’t have extensions?

benzntech commented 1 year ago

getstation supports all Chrome extensions.

This project is not actively maintained. Forks or PRs encouraged (PRs will be reviewed)

Cris70 commented 1 year ago

@ThinkSalat, which competitors of Ferdium are you referring to?

Wavebox supports all Chrome extensions.

its not a freemium software

Mmmm why do you say that? It is free for basic usage, with paid plans for advanced usage. See https://wavebox.io/pricing.

Cris70 commented 1 year ago

getstation supports all Chrome extensions.

Does not seem to be the case: see https://github.com/getstation/desktop-app/wiki/FAQ-%7C-%F0%9F%93%B1-Applications-&-extensions#can-i-use-extensions-inside-station

miztizm commented 1 year ago

@ThinkSalat, which competitors of Ferdium are you referring to?

Wavebox supports all Chrome extensions.

its not a freemium software

Mmmm why do you say that? It is free for basic usage, with paid plans for advanced usage. See https://wavebox.io/pricing.

when i add a extensions it says i need to pay.

MurzNN commented 1 year ago

I've found this library for Electron from Rambox developers: https://github.com/ramboxapp/electron-chrome-extensions Can we use it in Ferdium in the same way?

martinszy commented 1 year ago

I've found this library for Electron from Rambox developers: https://github.com/ramboxapp/electron-chrome-extensions Can we use it in Ferdium in the same way?

That looks promising. Maybe someone with the dev environment setup should try inserting the library at this location: https://github.com/ferdium/ferdium-app/blob/develop/src/index.ts#LL77C5-L77C7

The code would be this one: https://github.com/ramboxapp/electron-chrome-extensions/blob/master/README.md#advanced

Hopefully it's that simple. But I doubt it because ferdium has many custom behaviors.

RJVB commented 1 year ago

That looks promising. Maybe someone with the dev environment setup should try inserting the library at this location: https://github.com/ferdium/ferdium-app/blob/develop/src/index.ts#LL77C5-L77C7

Or just anyone who builds Ferdium from source...

josefpsurny commented 1 year ago

Can we have your attention @vraravam please and review possible implementation of this feature which can be done easily as show other similar apps to Ferdium? Thanks a lot!

vraravam commented 1 year ago

@josefpsurny - i have already announced that I will not be contributing actively to develop features in Ferdium. Please do not tag me again in any issue

benzntech commented 1 year ago

getstation supports all Chrome extensions.

This project is not actively maintained. Forks or PRs encouraged (PRs will be reviewed)

getstation is active now @MurzNN @vraravam

RJVB commented 1 year ago

getstation is active now @MurzNN @vraravam

But see https://github.com/getstation/desktop-app/issues/131 !

Wherein I also learnt about Biscuit (eatbiscuit.com) but apparently that isn't well maintained and doesn't support extensions either.

quentingosset commented 1 year ago

I've found this library for Electron from Rambox developers: https://github.com/ramboxapp/electron-chrome-extensions Can we use it in Ferdium in the same way?

That looks promising. Maybe someone with the dev environment setup should try inserting the library at this location: https://github.com/ferdium/ferdium-app/blob/develop/src/index.ts#LL77C5-L77C7

The code would be this one: https://github.com/ramboxapp/electron-chrome-extensions/blob/master/README.md#advanced

Hopefully it's that simple. But I doubt it because ferdium has many custom behaviors.

i have try 3 week agao, seems not work. But i can re-check when i have a little bit more time.

RJVB commented 1 year ago

FWIW, I just received a notification that "Stack" now supports all Chrome extensions (as a beta feature).

I won't be using it though; the interface is so gaudy that it bogs down my machine and already managed to crash the i915 driver (embedded, lower-end Intel GPU).