rstrong's blog
in search of ponies
App Update / Win Installer status – 2010-11-19
November 19th, 2010 by rstrong
The flu kicked my butt last week and put a few things on the back burner but I was able to get a couple of cool things landed on trunk yesterday. The first one is fairly simple. On Windows, to start Firefox in safe mode you can now hold the shift key down while launching Firefox without having to use the safe mode shortcut. The second takes a few more words to explain.
We’ve always had issues with performing an update while files are in use on Windows. In the case where these files are in use by another instance of Firefox we shouldn’t update since the Firefox UI / JavaScript / strings / dll’s are not necessarily in memory. By updating these files they would be different than what a running instance of the application expects which can end up with the running instance being badly broken.
For Firefox 3.6 I made it so the updater must be able to exclusively lock the firefox.exe file (Bug 525390) which means that Firefox is not running before trying to perform an update. With this requirement in place it is possible to move the files in use out of the way to perform the update. Now, if the update is successful the files that are in use are moved to a directory named “tobedeleted” and are scheduled to be deleted on OS restart. There is more to it including additional fallback removal mechanisms than this but this is the gist of it.
There has been an increase of failed update reports due to crashreporter.exe and plugin-container.exe being in use during an attempt to update and the expression “not a moment too soon” comes readily to mind. Since Firefox 3.6 has the patch from Bug 525390 it is also possible to backport this to Firefox 3.6 if all goes well.
Progress:
- Landed on trunk – Bug 466778 [Toolkit] – [Win] Unable to update when files to be patched are in use on Windows (this is a Windows specific bug) [Windows Vista]
- Bug 611186 [Toolkit] – Try to lock the main exe multiple times before giving up [Windows]
- Landed on trunk – Bug 602562 [Toolkit] – Add keyboard modifier to start in safe mode for windows [Windows]
- Landed on mozilla-1.9.1 and mozilla-1.9.2 – Bug 552924 [Toolkit] – Allow distinguishing Universal ppc/i386 from Universal i386/x86_64 builds in AUS request [Mac OS X]
- Landed on trunk – Bug 608911 [Toolkit] – Invalid check in browser_bug562890.js [All]
- Landed on trunk – Bug 604136 [Toolkit] – [Windows SeaMonkey] mochitest-browser-chrome: “browser_bug562890.js | Test timed out” [Windows]
- Landed on trunk – Bug 608507 [Toolkit] – some minor test cleanup [All]
- Landed on trunk – Bug 608586 [Toolkit] – [SeaMonkey] mochitest-browser-chrome: …/browser-window/browser_bug562797.js fails [All]
Future:
- Bug 315278 [Toolkit] – Update process produces a broken application when disk space is low [All]
- Finish up Bug 597235 [Firefox] – Remove Java Console extensions in the install directory’s extensions directory on install and app update [Windows]
- Finish up the reviews in my queue