mbnuqw / sidebery

Firefox extension for managing tabs and bookmarks in sidebar.
MIT License
3.26k stars 163 forks source link

Other Platforms #10

Open ghost opened 5 years ago

ghost commented 5 years ago

Hello. Is it somehow possible to get Sidebery on Chrome? Thanks.

mbnuqw commented 5 years ago

No, unfortunately Chrome doesn't support sidebar and contextual identities WebExtension APIs, so there are no way (at least simple) to build this addon for Chrome

emvaized commented 4 years ago

@mbnuqw And what about Vivaldi browser? It's built on Chromium, and supports sidebars, even custom ones.

code3z commented 2 years ago

@mbnuqw And what about Vivaldi browser? It's built on Chromium, and supports sidebars

No, it doesn’t support sidebars for extensions. Opera might tho.

emvaized commented 2 years ago

@code3z You are mistaken — any extension's page could be set as a sidebar in Vivaldi in just a few steps. And there's even already existing tree-style-tabs extension as an example (abandoned though): https://forum.vivaldi.net/topic/15332/tree-tabs

mderazon commented 2 years ago

Do you know how these guys are doing it ? https://getforest.io/

code3z commented 2 years ago

@mderazon Probably with a script injected into the webpage.

@emvaized Yeah, that’s not an API though. If you want to add support for Vivaldi and can do it in a simple way and maintain it yourself, the author would probably accept it.

emvaized commented 2 years ago

@code3z Actually I remember asking Sidebery's developer about this some time ago, and he said that in V5 he may try to reduce dependence on Firefox-specific APIs, in order to make it more compatible with Vivaldi. However I'm not sure whether this was done or not – currently any attempts to install latest beta release fail on the stage of reading the manifest file.

solarkraft commented 1 year ago

Chromium actually has a side panel that can be tweaked to work a lot like Firefox's now (flags: unified-side-panel, side-panel-web-view, settings: appearance > side panel)! All that's missing now is a good tree style tabs extension!

Considering the features they're adding regarding the side panel I'd say there's a good chance they'll eventually natively support showing extension panels, so now is the best time to reconsider a port!

Do you know how these guys are doing it ? https://getforest.io/

One way they use (I think there are several, injecting into pages may be one of them) is to open an extra window or a pop-up when the extension's icon is clicked. The view that is loaded in these cases can be loaded into the Chromium side panel web view without any issues.

solarkraft commented 1 year ago

Actually I remember asking Sidebery's developer about this some time ago, and he said that in V5 he may try to reduce dependence on Firefox-specific APIs, in order to make it more compatible with Vivaldi. However I'm not sure whether this was done or not – currently any attempts to install latest beta release fail on the stage of reading the manifest file.

There is 1 commit that purportedly adds chromium compatibility. I'll see what can be done with it.

Since this is relevant again, can this issue be re-opened @mbnuqw?

solarkraft commented 1 year ago

The build action (npm run ...) build.all invokes the scripts copy.js, html.js, styles.js and scripts.js. Since the chromium commit copy.js and scripts.js listen for the --chromium command line flag. So I think the commands for building for chromium are:

node build/copy.js --chromium
node build/html.js
node build/styles.js
node build/scripts.js --chromium

However, when loading the addon folder into Chromium (same thing with build.ext and unzipping), I get the error:

Required value 'version' is missing or invalid. It must be between 1-4 dot-separated integers each between 0 and 65536.
Could not load manifest.

After changing the version in the manifest.json from 5.0.0b30 to 5.0.0, the extension can be loaded.

Chromium offers to inspect the extensions view bg/background.html, which errors out early with:

Uncaught (in promise) TypeError: Error in invocation of windows.getAll(optional windows.QueryOptions queryOptions, function callback): No matching signature.
    at Object.loadWindows (chunk-YSG6ZNNL.js:31:15471)
    at background.js:1:1068
    at background.js:1:2019

Opening the "Extension options" shows the view page.setup/setup.html, which errors out with:

Uncaught (in promise) TypeError: Error in invocation of windows.getCurrent(optional windows.QueryOptions queryOptions, function callback): No matching signature.
    at Object.loadWindowInfo (chunk-YSG6ZNNL.js:31:15718)
    at main (setup.js:21:18221)
    at setup.js:21:18927
loadWindowInfo @ chunk-YSG6ZNNL.js:31
main @ setup.js:21
(anonymous) @ setup.js:21
await in (anonymous) (async)
(anonymous) @ setup.js:21

Hmm.

I'll take another look and do some more tests at another time. Meanwhile it'd be interesting whether Chromium's manifest V3 stuff would have any impact here.

mbnuqw commented 1 year ago

side-panel-web-view - Nice, not as good as in Vivaldi (too much space wasted) but still. This is how sidebery looked like in April 2022 in Vivaldi: screenshot-2022-05-04 20:03:05

There were some browser-specific issues with layout (CSS) and too much work needed to be done with the WE API differences (the error message you got is just the beginning :)), so I decided to wait for the Manifest V3. I'll return to this idea later (maybe).

mbnuqw commented 1 year ago

Is it somehow manageable? Absolutely, it's just a question of time and priorities. After all it does (did??) work in Vivaldi, right? Not quite, I only managed to make it init and render properly, but handling of tab events was broken too.

solarkraft commented 1 year ago

Nice, not as good as in Vivaldi (too much wasted space) but still

I totally agree, it looks pretty bad. But it's good enough for me until I manage to fix it (will probably involve compiling ...).

too much work needed to be done with the WE API differences (the error message you got is just the beginning :))

Ha, I feared that. Is it somehow manageable? After all it does (did??) work in Vivaldi, right?

There were some browser-specific issues with layout (CSS)

I may be able to help with that.

So I decided to wait for the Manifest V3

It's available right now :)

I'll return to this idea later (maybe).

I'm quite excited about this. Do you have a rough estimate of how much effort it is and how hard it would be for an outside contributor with web- but no extension development experience? Is there anything I can do to motivate you to return to this idea sooner rather than later?

mbnuqw commented 1 year ago

Do you have a rough estimate of how much effort it is and how hard it would be for an outside contributor with web- but no extension development experience? - Well I don't think experience will be a problem, WE API is well documented (in both MDN and developer.chrome.com) and I can't say anything about how hard it will be with the Manifest V3 (I hope it should be simpler than with V2)

Is there anything I can do to motivate you to return to this idea sooner rather than later? - I'll check the status of the MV3 for Firefox and if everything is ok, I will start working on adopting it (#916). After that, we can start porting on Chrome. (Though, my priority for now is still stable release of v5 for Firefox.)

solarkraft commented 1 year ago

My initial reaction was "V2 will be around long enough to make it worth it for me to port it right now, when you move to V3 it'll be fine on Chromium too", but ... maybe not.

A few issues:

mbnuqw commented 1 year ago

The problem is that Window.id is not unique between sessions. We can only rely on the tabsDataCache and try to guess what window is what on sidebar initializing. This approach is more fragile than with session API, but works most of the time.

The issue with return value of the API calls will be automatically fixed in MV3, just wait until #916 will be resolved (I will try to check it out soon)

solarkraft commented 1 year ago

Understood, I'm excited for the MV3 migration then!

BTW: Here's a little preview of what Chromium's side panel can look like with minimal patching (I can share the patch set if anyone is interested). Yep, that's with extension support!

sidepanel

Sidebery would look really good in there (and frankly the best TST extension for Chromium, Forest, kind of sucks) =)

YeungKC commented 1 year ago

Understood, I'm excited for the MV3 migration then!

BTW: Here's a little preview of what Chromium's side panel can look like with minimal patching (I can share the patch set if anyone is interested). Yep, that's with extension support!

sidepanel

Sidebery would look really good in there (and frankly the best TST extension for Chromium, Forest, kind of sucks) =)

I'm very interested in it.

gotjoshua commented 1 year ago

BTW: Here's a little preview

Do you have a gist or repo with an example for that?

Edit, found some: https://developer.chrome.com/docs/extensions/reference/sidePanel/#examples

solarkraft commented 1 year ago

I'm very interested in it.

I'm sorry that I haven't gotten around to it; I can't guarantee that I ever will (I'm begrudgingly back on Firefox).

michacassola commented 1 year ago

I wished there was a Chromium based browser with a GUI that is customizable like Firefox and Sidebery. So I guess what I am saying is: I wished Sidebery would be a Chromium/Electron based browser all by itself. 😃 Of course this is just wishful thinking.

AAraKKe commented 7 months ago

Now that Chrome has a side panel and extensions for tab tree views, is there any plan to try and bring SideBerry to Chrome? I really love Firefox, and I use it daily at work, but for my personal laptop and projects, I really prefer having Chrome as it suits my needs way better.

A great extension for Chrome is LinkMap, but it seems not to be in development anymore, and there are plenty of things it is missing. The ease of use of SideBerry (even if without workspaces) makes it perfect, and no extension in Chrome is there yet.

APISeeker commented 6 months ago

Hello, is there sidebery in CHROMIUM, mainly EDGE? Which is amazing with its many profil settings easy set up etc. Anyway is there an equivalent in EDGE?

guigirl42 commented 6 months ago

Fwiw fyi to those above who specifically mentioned Vivaldi, you might wish to have a look at Floorp, a fork of Firefox ESR with multiple innovative modifications, some of which seem strongly inspired by Vivaldi, including eg a dedicated Side Panel for user-configurable Web Panels, a tabs split-view [similar to one of Vivaldi's tab pane views], customisable UI, etc. Sidebery works very well in Floorp, so... cake/eat!

qalisto commented 3 months ago

SIDEBERRY: FOR CHROMIUM-BASED BROSWERS (like Brave)

For those of us who have 'questions' about Mozilla Foundations relationships with Three-Letter-Agencies and have more Trust in Brave ... we'd like to resurrect the interest in porting SB to the Chromium platform.

If mbnuqw has Time=Money considerations, please feel free to write me on ideas to monetize the extension in a non-obtrusive way.

albino1 commented 3 months ago

Follow this pull request:

https://github.com/mbnuqw/sidebery/pull/1608

prawwtocol commented 2 months ago

For now, after some research, I've started using https://chromewebstore.google.com/detail/tabs-outliner/eggkanocgddhmamlbiijnphhppkpkmkl

https://chromewebstore.google.com/detail/link-map/jappgmhllahigjolfpgbjdfhciabdnde is also good, but I didn't like the idea of double clicking to select a tab

I'm in no shape or form affiliated with these products.

If there are some beginner-friendly issues I could tackle to help bring Sideberry to chrome, I'd be happy to help.