greasemonkey / greasemonkey

Greasemonkey is a user script manager for Firefox.
http://www.greasespot.net/
Other
2.34k stars 330 forks source link

Confirm before uninstalling userscripts #3098

Open Meriipu opened 3 years ago

Meriipu commented 3 years ago

I accidentally clicked uninstall instead of edit, and then clicked outside the contextmenu so that it closed. When I opened it again, the undo option was not there and the script was gone.

The timed undo feels incredibly fragile and unreliable, and explicitly asking whether to uninstall feels preferable. Perhaps even adding an opt-in option to not ask for confirmation for users who are very accurate in their clicks and never make mistakes ever who would rather not be asked to confirm.

Thankfully I was able to recover the script from a tab that had it cached via the firefox dev tools, but if I had not had one open I would have had to restore from a backup.

There is a very old issue pertaining to the same issue, but browsers/extensions and greasemonkey have likely changed a lot since then. #1102

benibela commented 3 years ago

OMG, I just did the same

I have been working for years on my script, over 6000 lines, and now it is just gone

Although I have a backup from November, I do not remember if I have changed anything since then

Cerberus-tm commented 3 years ago

How about an "Undo last uninstallation" button, which remains in the Greasemonkey menu until the browser is closed? That might be nicer than always having to click a confirmation.

Meriipu commented 3 years ago

That might be nicer than always having to click a confirmation.

why not both + an option to disable the confirmation?

Cerberus-tm commented 3 years ago

Would be fine with me, but probably quite a bit more work for whoever is to think about, write, and maintain the code.

Meriipu commented 3 years ago

The long-term undo sounds like the most complex option, since the script has to be stored. What happens if the browser crashes, for instance?

makyen commented 3 years ago

Just a confirm is usually fairly easy to implement and is beneficial where something irreversible is being done. "Undo" is nice, but substantially more complex and the user can effectively implement that on their own by making a backup. If you really want, the confirm could offer to make a backup as an additional option prior to deletion.

Confirms usually only become a pain if it's on something that you're doing repetitively. In such cases, they can become harmful, as the user is trained to always just click-through the confirmation, which can lead to ignoring other confirmations. If we're concerned about the case of a user deleting multiple scripts at a time, and thus getting frustrated with multiple confirms, then the confirmation dialog could have an option to not show the confirmation again while the popup is open, until the browser restarts, or forever, depending on what people feel is appropriate.