fork-maintainers / iceraven-browser

Iceraven Browser
4.78k stars 222 forks source link

Request: Restore Tab move functionality #402

Closed DefectiveByDesign closed 1 year ago

DefectiveByDesign commented 3 years ago

Old versions of firefox / iceraven used to be able to move tabs in the tab list, and this was removed.

I know this is due to being based on firefox, but the whole reason I've been using IceRaven is because firefox mobile has been going down the drain, not listening to users, making arbitrary changes, and removing key features. Which is why I switched to ice raven.

Not being able to re-arrange tabs is a stop using the program functionality change. If there are extensions I still need, I might uninstall the newer version and revert to the last version that worked with tab moving, but that is a temporary workaround that isn't safe long term. I'll keep an eye out for updates, or severe vulnerabilities, and if nothing changes I'll probably switch to brave at some point.

edit: if there is an extension that fixes this, let me know.

CharmCityCrab commented 3 years ago

While this issue doesn't effect my personal workflow, I can see why it would be a big issue for some users who's workflow depends on it.

As you mentioned, this is something that was passed down to Iceraven by Firefox, meaning unless Firefox changes it back (and we can certainly hope that happens at some point, but it's by no means certain), Iceraven would need to get the code from somewhere else. Obviously, if Firefox does change it back, Iceraven would, too.

The first place we could look to try to solve this would be to have someone code a solution for Iceraven and submit it as a pull request. This repo does take pull requests from anyone with a Github account (Obviously they only become part of the release version of Iceraven if Interfect approves them, though). I don't see any reason why Iceraven wouldn't accept a pull request with good code that gets this done, especially if the coder promised to make a good faith effort to keep it compatible with updates from upstream (aka Firefox) for a while.

If you can code it, or can find someone to code it, that's sort of the ideal solution. The project has been looking for extra coders for a long time now, whether to simply code a pet feature they want to see, or to do more wide-ranging work on the browser.

In this specific case, the code may exist in a previous version of Firefox that even a relatively novice coder might be able to grab and replace some of the new code with, build the browser and test it out on their phone, and then submit it as a pull request. It's not a sure thing by any means that the old code would be able to be made to work (Especially that easily), but it's a thought. Do you know what the last version of Iceraven or stable Firefox is that the tab functionality you want is? I know Iceraven lost a lot of tab options in 1.5 (Old code from a former Iceraven developer no longer worked with upstream and interfect couldn't devote any more time than he already had to trying to try to make it work, having tried failed to find a way to do it for a while- though in theory we could get all of that back if a new developer wants to and is able to code it in a way that's compatible with the current browser.), but that was a long time ago, so I doubt you'd be mentioning it now for the first time if it was part of that.

The other possibility would be if any of the other Fenix (The "new" Firefox for Android that replaced the old one a year and a half ago-ish) forks that exist out there code this up, since they are all open-source, Iceraven could in theory see if that code works with Iceraven, and, if it does, add it, just as any of them could add stuff from Iceraven if they wanted to. If anyone knows of any code in those browsers that does that, the ideal would be to get the guy from that project who coded it there to submit it here as a pull request (Makes it easier for Interfect to add in, will make it easier to see that the person who did it is visible and gets credit, and I get the feeling it's sort of a very informal hacker edict [I could be wrong on that last point.]). However, in theory, because it's open-source, someone could just identify it and submit it as their own pull request to Iceraven, or, if they don't know how to do that, at least point interfect at the code in their repo.

The thing is, I kind of doubt any of the other forks have it, because a lot of them are more laser-focused on kind of doing like one main thing differently than Firefox, and this wouldn't fall under any of their sort of mandates (Though one never knows when someone will take it on themselves to do something). Iceraven, with it's focus on options, would in theory by far the most likely to have developed this sort of thing- if it had enough developers with enough time to devote to it and still get the browser out.

I can't speak for interfect or for Iceraven on this, but I'm guessing it's the type of thing that interfect won't have enough time to get done unless it is personally bothering him enough to do it for himself and share it with us. He is the only reason we have an Iceraven browser and I don't personally want to push him on anything and risk losing him and the browser with it. He's always said that he happily accepts pull requests that add options, though- so if you can find a coder or do it or are a coder who will do it, that would be awesome. He does accept pull requests from anyone if they look good, and providing an option to rearrange tabs is probably something Iceraven would like to do in an ideal world and maybe can't right now due to changes in upstream and a lack of manpower (or womanpower).

Just as an aside, if you do wind up abandoning Iceraven for something else, and I hope you don't, I'd be wary of Brave. I'll just leave it at that because it would probably be inappropriate to start debating or discussing the merits and demerits of other browsers on a GitHub issues page (and I don't really feel like getting into it). Obviously, everyone will use whatever they want to use- it's just not something I'd use personally.

But hopefully that won't matter anyway because we'll find a way to get this done in Iceraven. Personally, like I said, the change doesn't effect me, so it won't keep me from continuing to heavily use Iceraven, but hopefully there's a way to get this corrected for the people who it does effect.

interfect commented 2 years ago

When exactly did we lose this? I suspect this happened when I ripped out our custom grid tab view that @abhijitvalluri wrote, in favor of the Mozilla grid tab view, because I'm not a real Android programmer and I wasn't able to solve what I think was a crash bug that crept into it during the merge.

This is https://github.com/mozilla-mobile/fenix/issues/16130 in Mozilla Firefox; they have it as "Next", whatever that means, so they might do it for us soon? Some backend stuff related to moving tabs landed in android-components recently.

The only workaround I know of right now is that closing a tab and undoing it bumps it to the top of the list. You could sort them all like that, but it would be a huge pain.

If someone wants to write a new tab view, or revive the old one, I'd be happy to take it. I'd rather not hack on the tab view Mozilla is using in place, because they completely revise it every version or so and I really can't usefully resolve merge conflicts in complex Android UI code. We'd want complete copies of any shared UI stuff, and another option next to grid and list in the tab view type settings menu.

interfect commented 2 years ago

There's an implementation for this already PR'd against Mozilla Firefox, actually: https://github.com/mozilla-mobile/fenix/pull/21157

It looks like it's being actively developed; if they take it, we should be able to pick it up.

If they don't take it, we can take it now, but unless the dev wants to sign on to maintain it, I suspect I won't be able to being it up to date with Mozilla's code 1 or 2 versions from now and will have to rip it out.

interfect commented 2 years ago

I've merged in that code and pushed up a drag-tabs branch. I've also built some APKs at https://ipfs.io/ipfs/Qmd8XEMy1ystmkPAxGdiWwWZ1cCTzHHeSMGo2UaJ7rmvT5; maybe try them out @DefectiveByDesign and report back?

ssk97 commented 2 years ago

I'm hoping that the PR will be merged into Fenix directly, but I'd be happy to help out. Some additional testing would be greatly appreciated!

Edit: note that you have to disable tab groups for my code to run.

MintMain21 commented 2 years ago

For the Record, Firefox Nightly now does allow for Tab Moving, so long as Tab Groups are disabled.

This should be easy to copy/paste into IceRaven, but if you guys could find a way to marry Tab Groups with Tab Moving (IE: Custom Tab Groups) then you would be ahead of Mozilla.