Closed
Bug 237727
Opened 21 years ago
Closed 21 years ago
Installer should delete certain files if we install over an existing firefox installation
Categories
(Firefox :: Installer, defect, P2)
Tracking
()
VERIFIED
FIXED
Firefox1.0beta
People
(Reporter: bugs, Assigned: sspitzer)
References
Details
(Keywords: fixed-aviary1.0)
Attachments
(3 files, 1 obsolete file)
|
69.42 KB,
image/jpeg
|
Details | |
|
1.33 KB,
patch
|
Details | Diff | Splinter Review | |
|
12.36 KB,
text/plain
|
Details |
We have a number of problems that are caused by installing over the top of an
existing Firefox installation.
There are a number of ways around this:
1 Firefox used to just wipe C:\Program Files\Mozilla Firefox\ but this made
people very angry.
2 Firefox could invoke the uninstaller for that directory if it can find one.
3 Firefox could show a message and invoke the Add/Remove programs window
I favor a combination of 2 & 3. If an uninstaller is found, try and run it,
otherwise do 3 and don't let the user proceed until the old install is gone.
| Reporter | ||
Comment 1•21 years ago
|
||
This is such a problem we should really have some kind of interim solution by .9
Status: NEW → ASSIGNED
Priority: -- → P2
Target Milestone: --- → Firefox0.9
Comment 2•21 years ago
|
||
The uninstaller for 0.8 apparently deletes more than it should, just like the
installer did before 0.8. See bug 233625. Because of this, I think calling an
old uninstaller is a bad idea.
Updated•21 years ago
|
Flags: blocking0.9?
Comment 3•21 years ago
|
||
greprefs makes this an absolute requirement, we had at least a dozen bugs
related to that and non-clean installs
Flags: blocking0.9? → blocking0.9+
| Reporter | ||
Comment 4•21 years ago
|
||
scuttle this one out a little.
Flags: blocking1.0+
Flags: blocking0.9-
Flags: blocking0.9+
Target Milestone: Firefox0.9 → Firefox1.0beta
| Assignee | ||
Comment 5•21 years ago
|
||
I accidentally (?) installed 0.9.1 over 0.9, which I had installed over 0.8,
which made it so my user agent and credits ui looked like I was using 0.8, when
I was not.
let me attach a screen shot.
| Assignee | ||
Comment 6•21 years ago
|
||
| Reporter | ||
Comment 7•21 years ago
|
||
A good fix here might be for config.it to maintain a list of files that should
be removed by the newer installer. This introduces a maintenance cost in the
future as new files are added that may cause problems (e.g. new preferences
files) but these changes should be limited. Talk to me for more details.
Assignee: bugs → dveditz
Status: ASSIGNED → NEW
| Reporter | ||
Updated•21 years ago
|
Flags: blocking-aviary1.0RC1+
| Assignee | ||
Comment 8•21 years ago
|
||
I think the current mozilla installer has support for removing files.
I'll look into it.
| Assignee | ||
Comment 9•21 years ago
|
||
updating summary, per a conversation I had with ben.
Assignee: dveditz → sspitzer
Summary: Installer should halt if an existing Firefox install is found → Installer should delete certain files if we install over an existing firefox installation
| Assignee | ||
Comment 10•21 years ago
|
||
good news, as we thought, the installer has things in place to handle this sort
of problem.
see deleteThisFile() and deleteThisFolder() in
http://lxr.mozilla.org/mozilla/source/xpinstall/packager/common/share.t
for example usages, see
http://lxr.mozilla.org/mozilla/source/xpinstall/packager/windows/browser.jst#377
and stuff like:
function upgradeCleanup()
{
// Obsolete files from Netscape 6.0 and Netscape 6.01 that
// need to be cleaned up.
deleteThisFile("Program", "msgMapi.dll");
deleteThisFile("Components", "signed.dll");
deleteThisFile("Components", "smimestb.dll");
deleteThisFile("Components", "nsMapiRegistry.dll");
deleteThisFile("Components", "absyncsv.dll");
}
| Assignee | ||
Comment 11•21 years ago
|
||
sorry for the delay, working on this now.
I'm going to see which files that 0.8, 0.9, 0.9.1 and 0.9.2 are installing, and
see which ones should be deleted.
then I'll fix upgradeCleanup() in
http://lxr.mozilla.org/aviarybranch/source/browser/installer/windows/browser.jst#314
to delete those files.
Then I'll do the same thing for linux. I think mac is different and doesn't
need to worry about this, since mac doesn't use the installer.
Status: NEW → ASSIGNED
| Assignee | ||
Comment 12•21 years ago
|
||
when comparing 0.8, 0.9, 0.9.1, 0.9.2 and a fresh build off of the aviary 1.0
branch, I come up with this list of files that need to be removed:
./.autoreg
./chrome/en-win.jar
./chrome/US.jar
./components/compreg.dat
./components/xpti.dat
./defaults/pref/all.js
./defaults/pref/security-prefs.js
./defaults/pref/winpref.js
./defaults/pref/xpinstall.js
./defaults/profile/US/panels.rdf
I'll work up a patch and double check this list with ben.
| Assignee | ||
Comment 13•21 years ago
|
||
| Reporter | ||
Comment 14•21 years ago
|
||
Attachment #154257 -
Flags: review+
| Assignee | ||
Comment 15•21 years ago
|
||
Attachment #154257 -
Attachment is obsolete: true
Comment 16•21 years ago
|
||
(In reply to comment #12)
If the installer just updates installed-chrome.txt, won't installed-chrome.txt
still have references to US.jar?
| Assignee | ||
Comment 17•21 years ago
|
||
> If the installer just updates installed-chrome.txt, won't installed-chrome.txt
> still have references to US.jar?
hussam, good point.
I'll check with ben and see if it is dangerous to remove those chrome files.
| Assignee | ||
Comment 18•21 years ago
|
||
Comment 19•21 years ago
|
||
seth: erm, autoreg's sole job in life is to tell the next xpcom app to register
components. when the app succeeds it tries to delete the file. you should never
need to delete compreg.dat, simply packaging or forcing the creation of .autoreg
should be sufficient.
Comment 20•21 years ago
|
||
Except that there's no good way to unregister components you're going to get rid
of. autoreg will pick up new components, but leave registered components you may
have just deleted.
In many cases this doesn't really matter, but it does bloat memory, and any that
are registered in any of several categories will cause us to waste time trying
to load them.
This is especially true if we have NOT deleted the dll that contains the
component, say we keep revving the class ID, we'll end up with multiple entries
for the same thing.
xpti.dat has a similar problem, old interfaces into sticks around and bloats
memory. At least with compreg.dat there's a theoretical way to unregister
components even though it's pretty unworkable in practice since we can't
unregister loaded libraries.
| Reporter | ||
Updated•21 years ago
|
Flags: blocking-aviary1.0PR+ → blocking-aviary1.0PR-
| Reporter | ||
Updated•21 years ago
|
Flags: blocking-aviary1.0PR- → blocking-aviary1.0PR+
| Reporter | ||
Comment 21•21 years ago
|
||
br & trunk fixed.
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Comment 22•21 years ago
|
||
Adding fixed-aviary1.0 keyword for searching purposes based on comment #21
Keywords: fixed-aviary1.0
Comment 23•21 years ago
|
||
Is there a separate bug for removing old versions from the "Add/Remove programs
window"?
Comment 24•21 years ago
|
||
this isn't the right place to ask that question, but yes - bug 247884
Updated•19 years ago
|
Status: RESOLVED → VERIFIED
QA Contact: bugzilla → installer
You need to log in
before you can comment on or make changes to this bug.
Description
•