Re: thanks for nothing - a look at the uninstaller



On 02/03/2014 02:17 AM, Steffen Macke wrote:
there seems to be a recursive rm loop in the uninstall part
Yes, secured by an explicit warning dialog.

I'd remove it altogether. It may bite more users. I'd fear to recommend
Dia under Windows with this risk.

Choosing the wrong directory install time can be done by accident in a
dialog box: do you have to explicitly enter the directory for the dialog
to recognize it as chosen, or is selecting it in it's parent directory
enough? It has caused me confusion in the past under Windows because of
broken behavior on other applications. Not sure what the state of the
art is today on that platform.

Choosing a directory other than the default can be done intentionally
too (that's the purpose anyway of letting it happen). IIRC, Beatrice
said that she uses separate directories for OS and apps because of the
use of an SSD; an explicit directory selection occurred.

Given the above, the dialog is risky. I'm thinking "selective attention"
[1]. It is common for a human to shortcut/optimize small deviations of a
common case into the common case by misreading or misinterpreting. This
is what I read:

"This will erase C:\Program blah... blah, subdirectories, blah... sure?"
-- Yeah, go with it. I'm uninstalling just Dia, anyway.

[1] Remember the cool "how many passes does the white team make?" video?
http://www.youtube.com/watch?v=Ahg6qcgoay4

Unintended clicks can happen too: palm-touching the touchpad or
involuntary tick of a finger in the mouse. Although rarely, both happens
to me.

Also, I'm assuming the warning dialog is modal because the command is
MessageBox. If so, a sudden raise of a modal dialog can make the user
click on the dialog instead of a window that originally had the focus.
Also that has happened to me in other situations.

note the uninstall directory is shown at the first step of 
uninstall (but could be missed) later the uninstaller asks for 
confirmation for directory removal however at this stage the files 
are already deleted so I miss the point of this check

If you look to the uninstall process in a little bit more detail, 
you'll see that the uninstallation is performed in two stages: First 
the list of files from the installation log is deleted. Then the user
is asked, if he would like to delete the installation directory and
all of it's contents (in some cases there are some artifacts like 
temporary files or files from previous installations in it). Only 
after confirmation from the user, the directory and its contents 
removed.

If I may suggest: I'd make it safer by just informing the user that the
directory could not be removed and possible causes, and let the user
erase it himself. Not sure if NSI can do this, but I guess a check for
the existence of the directory after RmDir would help.

Temporary files by normal program usage should never be created in
C:\Program Files\Dia anyway. This could have been true in old versions
of Windows, but it was a really bad practice anyway. Files from previous
installations are also a corner case; the only super-important use case
for it is to ensure a clean installation for the next Dia install
--possibly useful for development cycle--. In a stable release the
installer is the one responsible for asking the user if he wants to go
ahead and install in an existing non-empty directory.

If it's useful for development, hide the MessageBox + RmDir /R section
under a command-line option, unselected by default. This way it's kept
for development purposes. Again, never used NSI, not sure if it can do
this without much hassle.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]