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

Other Platforms #10

Open
ghost opened this issue Mar 3, 2019 · 27 comments
Open

Other Platforms #10

ghost opened this issue Mar 3, 2019 · 27 comments

Comments

@ghost
Copy link

ghost commented Mar 3, 2019

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

@mbnuqw
Copy link
Owner

mbnuqw commented Mar 3, 2019

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

@mbnuqw mbnuqw closed this as completed Mar 3, 2019
@emvaized
Copy link
Contributor

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

@code3z
Copy link

code3z commented Dec 19, 2021

@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
Copy link
Contributor

@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
Copy link

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

@code3z
Copy link

code3z commented Apr 26, 2022

@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
Copy link
Contributor

emvaized commented Apr 27, 2022

@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
Copy link

solarkraft commented Jan 27, 2023

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
Copy link

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
Copy link

solarkraft commented Jan 27, 2023

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
Copy link
Owner

mbnuqw commented Jan 27, 2023

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
Copy link
Owner

mbnuqw commented Jan 27, 2023

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
Copy link

solarkraft commented Jan 27, 2023

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
Copy link
Owner

mbnuqw commented Jan 27, 2023

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
Copy link

solarkraft commented Jan 30, 2023

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:

  • browser.windows.getCurrent returns a Promise on Firefox, but takes a callback function on Chromium. Okay, simple enough.
  • browser.sessions.getWindowValue isn't available. Okay, maybe we can use currentWindow.id as uniqWinId.
  • setWindowValue() isn't available at all. Damn it, now I actually have to start thinking about what it does and how it can be worked around. It looks important.

@mbnuqw
Copy link
Owner

mbnuqw commented Jan 31, 2023

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
Copy link

solarkraft commented Feb 8, 2023

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
Copy link

YeungKC commented Feb 17, 2023

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
Copy link
Contributor

gotjoshua commented May 19, 2023

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
Copy link

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
Copy link

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
Copy link

AAraKKe commented Feb 5, 2024

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
Copy link

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
Copy link

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
Copy link

qalisto commented May 19, 2024

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
Copy link

albino1 commented May 19, 2024

Follow this pull request:

#1608

@prawwtocol
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests