Open MurzNN opened 2 years ago
Adding myself to the cacophony. Being able to use Chrome Extensions like 1password, AI ghostwriters etc. would bring a massive productivity boost to ferdium!
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.
Agreed - this would be fantastic
+1 for Chrome extensions (not necessarily adblockers, I have a bunch of Gmail exts that enhance my workflow)
Please stop the +1 comments and just use the upvote function. I've subscribed to this issue for actual updates...
+1 for Chrome extensions
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.
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
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.
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.
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.
What about the option we were talking about last year with the rambox code?
here: https://github.com/ferdium/ferdium-app/issues/135#issuecomment-1566886105
What about the option we were talking about last year with the rambox code?
here: https://github.com/ferdium/ferdium-app/issues/135#issuecomment-1566886105
For anyone new to this issue, please hold any "+1" or other non-substantive posts until Ferdium devs can respond to @martinszy
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.)
As I see here https://github.com/ferdium/ferdium-app/blob/55a5d3843f099d331866f818f5cc2b1b9b3b1ae1/src/index.ts#L546-L547 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?
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?
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.
How big of an issue is extension support in the Electron world? Supposing there's enough demand for it from dependent project devs who have the general know-how, wouldn't it be more efficient to fork Electron? If not only to streamline this "Place unpacked extensions (not .crx archives) here to have them automatically loaded by the browser."
method?
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
This feature would be really need. Has there been any progress? :)
waiting for new contributors to help with the backlog @kteppris . till then, no progress can be made
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).
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.
On Sunday March 24 2024 23:20:05 Bayazid B. Halim wrote:
a GUI userscript manager
Something like TamperMonkey?
That'd be great, but I have the impression that would take us more than halfway to full extension support. Many of the userscripts I are crippled if not downright broken if they don't have access to a settings store mechanism and a standardised way to put up a GUI.
But since we're talking userscripts ... anyone here have an idea how to get one of the existing video-autoplay inhibitor scripts to work? Most do NOT require settings access or a GUI, from what I can tell.
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
But we already have some kind of userscripts via editing the per-serivce
user.js
file from the service settings page.
Yes, but that only allows you to have a single script, so you would have to implement a multiplexer yourself to run multiple scripts. Plus the standard APIs browser extensions can use to put up a settings page, menus and store settings are missing.
This would be an amzing feature to have
i think this may be related : https://github.com/samuelmaddock/electron-browser-shell
Still hoping to see that feature in the future.
omg this sounds super complicated to implement, don't get your hopes up, we need more devs
Maintainers, do you intend to support and use a project like https://github.com/getstation/electron-chrome-extension to solve that issue?
I think that is an interesting idea. How do I support?
On Thu, Jun 27, 2024 at 7:20 PM David Kennedy Souza Araújo < @.***> wrote:
Maintainers, do you intend to support and use a project like https://github.com/getstation/electron-chrome-extension to solve that issue?
— Reply to this email directly, view it on GitHub https://github.com/ferdium/ferdium-app/issues/135#issuecomment-2195503488, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFNBVHOEOIZUKWGFOU5SDX3ZJRQWFAVCNFSM5VTXRLTKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMJZGU2TAMZUHA4A . You are receiving this because you commented.Message ID: @.***>
Maybe some essential plugins can be made built-in like adblockers, vim shortcuts (like vimium) etc.
actually, that's what rambox is doing in their pro edition: a few addons available like µblock origin, dark reader, bitwarden, etc.
I have tried Rambox in the past. I was not impressed.
On Fri, Jul 12, 2024 at 2:32 PM Albirew @.***> wrote:
actually, that's what rambox is doing in their pro edition: a few addons available like µblock origin, dark reader, bitwarden, etc.
— Reply to this email directly, view it on GitHub https://github.com/ferdium/ferdium-app/issues/135#issuecomment-2225714910, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFNBVHPUTMGVHVFR7EIT3WTZL7SIPAVCNFSM5VTXRLTKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMRSGU3TCNBZGEYA . You are receiving this because you commented.Message ID: @.***>
Does User Scripts work?
Honnestly, i use wavebox now. it's not free but all chrome extension is available.
Honnestly, i use wavebox now. it's not free but all chrome extension is available.
But to what extent is this still different from just running the services in a browser tab?
Honnestly, i use wavebox now. it's not free but all chrome extension is available.
But to what extent is this still different from just running the services in a browser tab?
Perfect question. And that's why I banned all similar applications from my tool stack after I had moved maybe 5-6 times in a decade. In the end, it always turned into some disappointment. Now, I'm using Vivaldi as the replacement. It's fast, lightweight, and well maintained. My regular browser for browsing the web remains Firefox. That combination serves me well for the last 12 months.
On Friday August 16 2024 07:08:55 Jürgen Haas wrote:
Now, I'm using Vivaldi as the replacement. It's fast, lightweight, and well maintained.
I think every ChromeClone claims at least the 1st two aspects, but I wasn't impressed by Vivaldi in either department when I tried it a few years back. Maybe if you actually exploit all its customisation features that you can make something that's not an eyesore but rather lean-and-mean. But I'd be surprised if you didn't have to redo that all over gain regularly after some more-or-less-major update.
In terms of "lean and mean" Chromium there's Flashpeak Slimjet, but I'm not certain how well maintained it is.
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