Closed Bug 325042 Opened 19 years ago Closed 14 years ago

Feedback survey prevents uninstaller from completing

Categories

(Firefox :: Installer, defect, P1)

x86
Windows XP
defect

Tracking

()

RESOLVED WONTFIX

People

(Reporter: wgianopoulos, Unassigned)

References

Details

Attachments

(1 obsolete file)

The code to launch Internet Explorer for the feedack survey waits for it to complete befroe continuing.  If the user continues to just use this browser window, the uninstaller does not exit untill all IE windows are closed.

Steps to reproduce:

1.  Install a version of Firefox including the fix for bug 320504, using the windows installer build.
2.  Go to the uninstall folder in the Deer Park 2 application folder and edit uninstaller.ini changing the product name form "Mozilla FIrefox" to "Deer Park ALpha 2" (necessary until bug 323096 is fixed)
3.  Go to add/remove programs and remove Deer Park Alpha 2.
4.  When prompted to take the survey check the box and click OK.
5.  Notice that the entry from add remove progras is not removed untill the resultant IE window is closed.
Summary: Feedback survey prevents unistaller from completing → Feedback survey prevents uninstaller from completing
Hmm... I also see this bug.  The funny thing is, the uninstaller executable is no longer running, but the Add/Remove programs dialog appears to be completely locked up until I exit the IE process.  I don't understand why this is happening.
Status: NEW → ASSIGNED
Target Milestone: --- → Firefox 2
I suspect that the unistaller was called form the add/remove programs process.  It , in turn calls iexplore.exe then exits and makes it's child a child of it's parent so add/remove programs is now waiting for iexplore.exe to exit.
Hmm.. yeah, but when I use Process Explorer from sysinternals.com, I see that iexplore.exe is not a child of the "add/remove programs" process (which seems to be spawned using rundll32.exe).  Of course, that doesn't mean that it isn't still waiting on the iexplore process.  That does seem to be the cause of the problem.  I thought I was creating a detached process when launching iexplore.  Clearly though, I'm not :-/
From a quick read of MSDN, the CREATE_NEW_PROCESS_GROUP looks interesting.  I'm not sure if that will help, but it might.  It seems worth exploring at any rate.
What's odd, is that the uninstaller here spawns a copy of itself as soon as it starts - and that frees up the Add/Remove dialog to continue doing stuff even while the uninstaller is running. Thus, I don't see this bug.

Also, the way it's happening here means the item is never removed from the list without closing and reopening the dialog (it waits for the uninstall app to finish, and then checks if it's been removed - but because the uninstaller spawns a copy of itself, and the original one terminates, the dialog thinks its finished instantly).
Priority: -- → P2
Flags: blocking1.8.0.3?
-> P1 (see also bug 330885)
Priority: P2 → P1
Flags: blocking1.8.0.3? → blocking1.8.0.3+
I think the answer may be to use ShellExecute to launch iexplore.exe.  That should cause the shell to execute iexplore.exe instead of our own process.
Attached patch candidate patch - untested (obsolete) — Splinter Review
here's a patch that uses ShellExecute.  still need to test this.
Comment on attachment 217120 [details] [diff] [review]
candidate patch - untested

nevermind, this patch didn't seem to work either.
Attachment #217120 - Attachment is obsolete: true
I had another idea on this.  Instead of trying to launch IE and not have the uninstaller or add/remove programs window wait for it;s exit, it would probably work just as well if IE could be launched without the toolbars so it was just a window with the Windows titlebar so it had a close button, etc.  That way after completing the survey the user would not be tempted to use that window for other browsing and would most likely close the window.

Unfortunately this does not seem to a something that is very easy to do either.  You can easily launch IE in kiosk mode, by use of the -k command line argument, but then you don;t get a close button.

I found the following VBS code that accomplishes the task, but I really don't know how to do this in C.

Dim objIE
Set objIE = WScript.CreateObject ("InternetExplorer.Application")
ObjIE.Toolbar = false
objIE.Navigate "http://www.savilltech.com"
objIE.Visible = true

THh best I have been able to come up with is a message in the survey window saying "If you do not wish to complete the survey, please close this window to allow the uninstall to complete".  And similarly in the Thank you for completing the survey window saying "Please close this window to allow the unistall to complete."
CREATE_BREAKAWAY_FROM_JOB doesn't work.  CreateProcess generates an access denied error when I try to use that flag.  There is an API to modify the job settings to possibly permit this flag to be used, but that might also generate an access denied error -- not sure yet.

The other suggestion of using the system scheduler service sounds like it might work.
No solution yet, must move to the next release.
Flags: blocking1.8.0.5?
Flags: blocking1.8.0.4-
Flags: blocking1.8.0.4+
not sure if the survey stuff is hooked up on the trunk, but if it is, be good to have this for for 1.9a1
Flags: blocking1.9a1+
Realistically this doesn't look like it's going to get attention in a 1.8.0.x release, and it's not truly a blocker for a security release. Minusing for 1.8.0.5, nominating for FF2
Flags: blocking1.8.0.5?
Flags: blocking1.8.0.5-
Flags: blocking-firefox2?
This is also something that I have seen with every other uninstaller that launches a process from AoRP. There may be a way to come up with a fix for this but I haven't seen any uninstaller to date that has.
Not a blocker, will take a patch if a solution comes up in time.
Flags: blocking-firefox2? → blocking-firefox2-
Target Milestone: Firefox 2 → ---
Flags: blocking1.9?
I hit this while testing Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4) Gecko/2007051502 Firefox/2.0.0.4. It's kind of annoying. If we are going to do something about it for FF 3 it needs to get on the radar.
-> reassign to default owner
Assignee: darin.moz → nobody
Status: ASSIGNED → NEW
MS makes it so uninstallers launched via Add/Remove Programs and any processes they launch keep Add/Remove Programs from finishing until those processes exit. I highly doubt there is anything we can do about this.
Nominating for 3.5 just because of the blocking-1.9a1 flag...
Flags: blocking-firefox3.5?
Drivers, please see comment #20 for guidance regarding whether this should block.
Whiteboard: [wontfix, invalid?]
Not a new bug, doesn't block.
Flags: blocking-firefox3.5? → blocking-firefox3.5-
There is sample NSIS code for JOB_OBJECT_LIMIT_BREAKAWAY_OK at http://nsis.sourceforge.net/Escape_ARP_Job_With_New_Process

Might be worth looking at
Add / Remove Programs intentionally does this and all solutions are rather difficult to implement. Now that bug 617787 has removed the uninstall survey this is WONTFIX
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → WONTFIX
Whiteboard: [wontfix, invalid?]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: