Skip to content
This repository has been archived by the owner on Dec 7, 2024. It is now read-only.

Multi Row Tabs Autoupdater #75

Closed
Sabine5034 opened this issue Jul 27, 2020 · 9 comments
Closed

Multi Row Tabs Autoupdater #75

Sabine5034 opened this issue Jul 27, 2020 · 9 comments
Labels
Duplicate Duplicate bug of an existing open issue. Installer Related to the installer executables.

Comments

@Sabine5034
Copy link

Good afternoon Izheil,

it's some months ago that we "talked" and you helped me a lot with my issues.
How are you doing in these strange days?

Just wanted to know how you're proceeding on the Auto-Updater (we discussed about) for the Patcher?
Latest version FF is 78 but I'm still at 76. I'd like to wait for your Auto-Updater, hoping that it helps to keep the personal modifications alive through the FF-Updates.

Best regards,
Sabine

@Izheil
Copy link
Owner

Izheil commented Jul 28, 2020

The autoupdater will be released with the new patcher, which will be available as an extension, as I commented in here.
After posting that, and due to some complications while connecting the back-end and front-end only using local files... I decided to end up creating a webextension that uses native messaging to pass-on the functions that the user wants to apply and their updates.

It solves a few problems and creates a few others... but it's the only solution that I could think of that would give less trouble.

Basically the system will be like this when it's available:

  1. Install the webextension and the patch.
  2. Install any function or code to modify Firefox from the webextension.
  3. Customize the options of any of the installed functions from the webextension, and your user-defined options will be stored and used throughout updates.
  4. These options along with the code of the file will be passed on to the native messaging application, that will create/update a .json file for the js loader on your profile folder to load these with your settings.
  5. A Firefox restart will be needed (just like now) for any change to take effect.

...at least, that's the basic idea by now.

Links to all the functions of the current patcher will be available for download right after installing the webextension from it, and maybe even the option to install other function modules from other creators.

Once you install a function once, if it has an update URL inside it's header (which I will add to all the functions here when it's ready), it will check for new versions on each startup, or after any period of time the user selects (or even only update manually from the webextension)

The options you select for each function inside the extension will be stored in a different section than the rest of the code , and it will replace the placeholders in the code of each function before runtime (so that it runs your options each time you change them).

The idea is to make the option selection and auto-updating simpler for all of you (using checkboxes, select boxes, etc), with the option for advaced users to edit the code directly from the extension if they want to.

The advantage of creating a webextension (apart from autoupdates for you all) is that it will appear on the extensions section on about:addons, so you will be able to manage it like any other extension.

The disadvantage is that since the webextension only manages the function edits or installations, if someone uninstalls the webextension thinking that it will remove the functions, they might be unpleasantly surprised (since the .json file and the loader will remain until they uninstall the patch). I'll add some landing page for people that uninstall it to tell them to use the patch uninstaller to remove it all, but I fear that there will always be that someone that won't care and will just close the tab before they even read it.

There is also the problem with hosting the webextension on AMO, where Mozilla is not too fond of extensions trying to change the UI of Firefox, so I'll try to host it here on github (probably in a new repository, since this one was suposed to just be about Firefox modifications) after signing it there.

Another problem is that people are usually not too fond of extensions that use native messaging... which is understable, but I couldn't find any other alternative (The main idea was to load it all as local files without the need of having an intermediary program to do the file-editting, but that ended up not being possible).

As to when will it be available... I couldn't say. It's the first time I've ever made a webextension or worked with indexedDB, so it's all new content to go through before I can release anything usable. I've got the loader that goes on the profile folder, and I'm now making the webextension GUI.... so once that's done, only the updates checking and the native messaging application will be left.

I am hoping to have it by the end of september... but don't take my word for it, because I'm going quite slow with it, and it might take more time depending on how many other problems I stumble upon.

@Izheil Izheil added Duplicate Duplicate bug of an existing open issue. Installer Related to the installer executables. labels Jul 28, 2020
@Sabine5034
Copy link
Author

thank you very much for this most informative update. It all sounds very promising and I'm looking forward to this new approach and to do some early (user)testing with you.
Again thank you very much for your efforts.

Sabine

@Sabine5034
Copy link
Author

Good morning Izheil,
Haven't heard from you since July. Are you well?
Any news in regard to the new version of the Multi Row Tabs Autoupdater?

Rgds,
Sabine

@Sabine5034 Sabine5034 reopened this Oct 1, 2020
@Izheil
Copy link
Owner

Izheil commented Oct 1, 2020

News about the autoupdater and the extension can be found on my ko-fi page. As for the lastest progress report, you can find it in the blog post there.

Basically, I ended up managing to create a pseudo-extension instead of using webextensions (which has more advantages, like not needing to install a native application), which allows us to change things directly and overcome a few limitations that plain JavaScript has.

As far as the actual progress goes, I've got the basic interface elements set up, and now it's just adding the actual actions to them, (as well as reorganizing some that I'm still not too convinced about).

I also integrated CodeMirror to edit code directly from it, in case someone needs to change things in a more advanced way than just changing the basic settings of each script.

So to sum it up, what's left is:

  • Add the actions to the front-end (aka, connect to the back-end all things).
  • Add a way to update the extension apart from the functions to avoid having to re-install the extension with every update.
  • Create the actual installer in Python to install the extension.

For the "Beta" release, I'll try to just have the most relevant things going, which are the JS and CSS functions that are currently installed through the current installer working and being autoupdated, as well as a way for the pseudo-extension to autoupdate as well.

Later on I'll add other smaller features as stated in the blog post, but those aren't a priority right now.

Due to some unforeseeable issues this last month I couldn't get much done, but I've been back to working on the extension again since last week.

I'll comment something in this issue tracker once the first beta is released to let you know once it's done.

@Sabine5034
Copy link
Author

Thank you very much for bringing me up-to-date. And yes, pls let me know as soon as the beta is available.
I will also keep track of your ko-fi page :-).

Rgds,
Sabine

@Izheil
Copy link
Owner

Izheil commented Oct 2, 2020

I'll reopen this when the beta is open.

@Izheil Izheil closed this as completed Oct 2, 2020
@Sabine5034
Copy link
Author

Good afternoon Izheil,
haven't heard from you on this subject. Too busy ? :-)
Just wanted to know whether things have progressed since our last conversation?

Rgds,
Sabine

@Izheil
Copy link
Owner

Izheil commented Mar 18, 2021

Good afternoon Sabine,
I've made some progress with the front-end, which is the main thing right now.

Last time I just added the option to install scripts and see their code, and had left the customize, edit code directly, and the update parts.

I finished the customize section, renaming, and edittion of variables, so now they should be easier to edit without having to go to the code of the script.

The last I was working on was adding the interface for a simple code editor with CodeMirror so that you could edit the scripts if needed directly in there, like addons as Violentmonkey or Tampermonkey, or Stylus for CSS.

Once that's done I'll just add a stub for the scripts that are on the repo so that you can easily download and install them from the repository (you will be able to add your own scripts or install scripts from other people along with their update link as well), making it easier to discover new functions.

I still have to decide if I should create categories for each section of the UI instead of just splitting the functions as "CSS" and "JS", which might not be too intuitive for regular users, but I'll change that after the first release.

Lastly the autoupdating feature is still missing, since it's the last thing I'll add to the first release (as to make it work with the saved variables or changes and keep them stored between updates, etc).

I haven't been able to get much done this month since I've had a lot of work to do, and I probably won't be able to advance more again until may or the end of april.

In either case, thanks for your interest! I know development is going slow, but at least the lastest Firefox UI changes haven't broken many things during this time (at least until Proton redesign on FF89 lands). Hopefully I get some time to work on this and finish it soon™.

@Sabine5034
Copy link
Author

Good morning Izheil,
Thanks for your reply and explanations. Unfortunately most of the things we would love to do are prevented by things we need to do. Like work. Same for translators, like me :-). However, the project is advancing, slowly but surely. So there is still hope. I do look forward to the next steps.
Thank you very much indeed for all your efforts sofar.

You may close this issue now.

Best regards and have a nice weekend,
Sabine

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Duplicate Duplicate bug of an existing open issue. Installer Related to the installer executables.
Projects
None yet
Development

No branches or pull requests

2 participants