rstrong's blog
in search of ponies
App Update / Win Installer status – 2010-07-18
July 18th, 2010 by rstrong
Progress:
- Submitted a 1.9.2 patch for review for Bug 576939 [Toolkit] – Backport app update fixes to 1.9.2 [All]. This includes fixes for several long standing bugs and adds application update ui tests for 1.9.2.
- Started patch to backport to 1.9.2 Bug 480178 [Toolkit] – Billboard should extend to available space and the update UI should be the same width for all locales [All].
- Submitted a patch for Bug 540537 [Firefox] – In China, set default browser does not work [Windows]. This might not fix all of the issues but it definitely fixes one of the issues. Thanks go out to Lingfeng Guan for tracking down the registry fixes and for testing. btw: the try server was absolutely useless for this bug due to random errors for multiple submissions.
- Discussed the solution with dveditz and johnath for Bug 544442 [Toolkit] – Add support for signed AUS update snippets [All]. Should be able to fix this next week.
- Wrote a service for silent / background updates on Windows along with much of the code for being notified when an update is available, checking if there is a running instance of the application to be updated, etc. The current work provides several of the stepping stones in the full path to getting this working.
Future:
- Fix Bug 544442 [Toolkit] – Add support for signed AUS update snippets [All].
- Fix Bug 577563 [Toolkit] – Consider renaming log files so they don’t have a .log file extension [Windows]. This bug breaks uninstalls after running a utility that removes log files… meh.
- Land on 1.9.1 and 1.9.2 Bug 367539 [Toolkit] – When upgrading an existing install use the uninstall.log to uninstall the previous version before install [Windows]. Yay!
- Get review / land Bug 570689 [Toolkit] – Convert preprocess-locale.pl to a python script [Windows].
- Get review / land Bug 575838 [Toolkit] – Build scripts should be able to handle @BINPATH@/extensions/testpilot@labs.mozilla.com/* in package-manifest.in for the installer [Windows].
- Continue working on silent / background updates on Windows.
App Update / Win Installer status – 2010-06-25
June 25th, 2010 by rstrong
Progress:
- Landed on trunk mozilla-central and comm-central for all applications Bug 367539 [Toolkit] – When upgrading an existing install use the uninstall.log to uninstall the previous version before install [Windows] and created patches for the 1.9.1 and 1.9.2 branches. To support removing files when installing on top of (e.g. a pave over install) the removed-files list used by application update was processed during build time to create a file that is read by the installer to know which files should not be present in the new installation. This works ok for upgrading to a newer version but fails badly when downgrading to a previous version and we would mitigate that updating the removed-files list for the previous branch’s next release to include the new files in the latest branch so they would be removed. Now the installer will remove the previous installation’s files and directories using the uninstall.log as follows:
- file deleted if possible.
- file can’t be deleted and can be renamed it is renamed and deleted on OS reboot.
- file can’t be deleted and can’t be renamed.
- if the file exists in the installer it is replaced by the file in the installer on OS reboot.
- if the file doesn’t exist in the installer the file is deleted on OS reboot.
- Landed on trunk Bug 571387 [Toolkit] – Use the official Unicode UAC and ShellLink distributions [Windows]. For Firefox 3.5 Unicode versions of these NSIS plugins were needed but the official distributions for the plugins didn’t have Unicode versions. Now that there are official Unicode versions for these plugins the modified source was removed from other-license in mozilla-central and the official versions were added.
- Landed on trunk Bug 569058 [Toolkit] – Upgrade NSIS version to 2.45 or later (PCA complains when installer / uninstaller is cancelled on Windows 7) [Windows]. This actually just prepares the installer code for upgrading MozillaBuild to include NSIS 2.46 Unicode which will be done in Bug 569534 [mozilla.org] – Add NSIS 2.46 Unicode to Mozilla Build [Windows] and Bug 570473 [mozilla.org] – Release MozillaBuild 1.5 [Windows]. Once these bugs have landed and the build systems have been upgraded to the latest MozillaBuild it will fix PCA from complaining and also fix Bug 506867 [Toolkit] – /S command line option for silent installation is broken – fixed in the latest NSIS [Windows].
- Landed on trunk Bug 572224 [Toolkit] – Remove check-locales.pl [Windows]. The check-locales.pl perl script was added to simplify a bunch of locale changes for the installer and is no longer necessary now that I’ve removed all of the call sites.
- Landed first patch to remove perl scripts that are no longer used on trunk, received r+ on all of the comm-central changes, and submitted for review the two remaining patches for Bug 570689 [Toolkit] – Convert preprocess-locale.pl to a python script [Windows]. A couple of other patches I’ve landed removed all of the installer perl scripts except for the preprocess-locale.pl script which I have completed converting to python. There used to be three perl scripts that were not used, one unused perl module, and three used perl scripts (two of which I was able to remove the usage of). Soon there will just be one python script… yay!
- Landed on the 1.9.1 branch for Firefox 3.5.11 and 1.9.2 branch for Firefox 3.6.6 Bug 522065 [Toolkit] – PCA complains when installer is cancelled [Windows].
- Landed on 1.9.2 branch for Firefox 3.6.6 Bug 552617 [Toolkit] – A paused update can’t be resumed when closing the window using a window manager control [All]
- Landed on the 1.9.1 branch for Firefox 3.5.11 Bug 574041 [Firefox] – Need to update the 3.5.11 removed files list with files added by the latest 3.6.x [Windows]. This should be the last time this has to be done contingent on approval / landing of Bug 367539 [Toolkit] – When upgrading an existing install use the uninstall.log to uninstall the previous version before install [Windows] on the branches.
- Landed on mozilla-build Bug 569534 [mozilla.org] – Add NSIS 2.46 Unicode to Mozilla Build [Windows]. This also removes the NSIS version we used in 1.9.0.x which does not support Unicode.
- Received r+ for Bug 568904 [Toolkit] – Don’t perform a shell refresh when there are no shortcuts for the install location when updating app modal id’s [Windows 7].
- Pinged dveditz again about Bug 544442 [Toolkit] – Add support for signed AUS update snippets [All]… specifically waiting on his additional feedback. Time available to finish this up is getting short.
Future targets:
- Continue working on silent / background update for Windows.
- As soon as feedback is provided by dveditz finish the patch for Bug 544442 [Toolkit] – Add support for signed AUS update snippets [All].
- Get review for and land Bug 570689 [Toolkit] – Convert preprocess-locale.pl to a python script [Windows].
App Update / Win Installer status – 2010-06-18
June 18th, 2010 by rstrong
I’m on holiday today (6/18) and Monday (6/21)
Progress:
- Landed Bug 570066 [Toolkit] – Update UI dialogue box in Firefox disappeared before Firefox could be updated. [Windows 7].
- Pinged dveditz about Bug 544442 [Toolkit] – ‘Add support for signed AUS update snippets [All]‘… specifically waiting on his additional feedback.
- Discovered that Bug 552924 [Toolkit] – Allow distinguishing Universal ppc/i386 from Universal i386/x86_64 builds in AUS request [Mac OS X] will require fixing Bug 572125 [Core] – macutils impl should provide info to distinguish which universal binary distribution is being used [Mac OS X] first.
- Landed Bug 570680 [Firefox] – Remove call to check-locales.pl for Firefox [Windows 7].
- Landed Bug 572221 [SeaMonkey] – Remove call to check-locales.pl for SeaMonkey [Windows 7].
- Landed Bug 572222 [Thunderbird] – Remove call to check-locales.pl for Thunderbird [Windows 7].
- Landed Bug 572225 [Calendar] – Remove call to check-locales.pl for Sunbird [All].
- Received r+ and Mossop landed an app update test fix that broke due to changes in Bug 562795 [Toolkit] – Sorting by name in the digest view is case-sensitive for all types of add-ons [All].
- Received r+ for Bug 572224 [Toolkit] – Remove check-locales.pl [Windows 7].
- Received r+ for the first patch for Bug 570689 [Toolkit] – Convert perl scripts to python [Windows 7].
- While working on silent / background update for Windows I ran into Bug 572162 [Toolkit] – Remove requirement for app dir to be under program files for UAC elevation [Windows 7]. I have a patch but I don’t want to submit it until I flush out how this will interact with silent / background updates. Also discussed the high level process with several people during the week for a sanity check.
Future targets:
- As soon as feedback is provided by dveditz finish the patch for Bug 544442 [Toolkit] – Add support for signed AUS update snippets [All].
- Land Bug 572224 [Toolkit] – Remove check-locales.pl [Windows 7].
- Land first patch for Bug 570689 [Toolkit] – Convert perl scripts to python [Windows 7].
- Hope to get review and land the following after Jim Mathies is free from his beta work
- Bug 569058 [Toolkit] – Upgrade NSIS version to 2.45 or later (PCA complains when installer is cancelled on Windows 7) [Windows].
- Bug 571387 [Toolkit] – Use the official Unicode UAC and ShellLink distributions [Windows 7].
- Hope to get review for Bug 569534 [mozilla.org] – Add NSIS 2.46 Unicode to Mozilla Build [Windows 7] and finish up Bug 545294 [mozilla.org] – Add WiX Toolset to Mozilla Build [Windows 7] so Ted can finish up Bug 570473 [mozilla.org] – Release MozillaBuild 1.5 [Windows 7].
- Continue working on silent / background update for Windows.
App Update / Win Installer status – 2010-06-11
June 11th, 2010 by rstrong
Progress:
- Discussed Bug 544442 [Toolkit] – ‘Add support for signed AUS update snippets [All]. Almost done with the app update patch which will include a fallback for when the cert check repeatedly fails’ with dveditz and he asked me to wait for additional feedback.
- Waiting on review for the final patch and landed patches that prepare the build system on mozilla-central and comm-central for landing – Bug 569058 [Toolkit] – Upgrade NSIS version to 2.45 or later (PCA complains when installer is cancelled on Windows 7) [Windows].
- Landed the MOZ_UPDATER configure changes for Bug 526333 [Toolkit:Build Config] – Having to create patches for each app’s package manifest and removed-files and then get reviews from each app is a PITA [All] to avoid requiring Makefile changes for the fix to Bug 535520 [Firefox] – Fix for bug 531703 should use #ifdef MOZ_UPDATER [Windows CE].
- Landed on trunk – Bug 485114 [Toolkit] – Add plugin for modifying file permissions and move NSIS plugins under other-licenses [Windows Vista].
- Backported and / or requested approval for 1.9.2.6 for patches on the following bugs:
- Bug 522065 [Toolkit] – PCA complains when installer is cancelled [Windows 7].
- Bug 536547 [Toolkit] – 3.5.6 is downloading the same version for an update [Windows XP].
- Bug 551283 [Toolkit] – Suspicious and possibly unused code in updates.js updateListener.onProgress [All].
- Bug 552617 [Toolkit] – A paused update can’t be resumed when closing the window using a window manager control [All].
- Bug 569648 [Toolkit] – First async XHR without other network activity has null securityInfo for the channel when using auto-detect proxy [All].
- Submitted patch for feedback for Bug 552924 [Toolkit] – Allow distinguishing Universal ppc/i386 from Universal i386/x86_64 builds in AUS request [Mac OS X].
- Submitted patch for review for Bug 570680 [Firefox] – Remove call to check-locales.pl for Firefox [Windows 7].
- Submitted patch for review for Bug 571387 [Toolkit] – Use the official Unicode UAC and ShellLink distributions [Windows 7].
- Started working in my spare time on and submitted first patch for Bug 570689 [Toolkit] – Convert perl scripts to python [Windows 7].
- Attached mozilla-central patches for when we are ready to require NSIS 2.46 for Bug 571381 [Toolkit] – Require NSIS 2.46 Unicode and remove iconv requirement, utf16-le-bom.bin, etc. [Windows 7]. This was done earlier than necessary to verify that it is possible to remove the iconv requirement for building the NSIS installer. Still need comm-central patches but they can be submitted when we are closer to requiring NSIS 2.46 Unicode.
- Landed for SeaMonkey – Bug 569791 [SeaMonkey] – PCA complains when installer is cancelled [Windows 7].
- Landed for Thunderbird – Bug 569789 [Thunderbird] – PCA complains when installer is cancelled [Windows 7].
- Finished several reviews though less than I had wanted to.
- Started the documentation for the silent application update process for Windows.
- Discussed mozmill app update tests with Henrik for Bug 567258 [Toolkit] – [mozmill] Update the SoftwareUpdateAPI for Firefox 4.0 [All] to avoid redundant tests and to update tests for the changes made to application update.
Future targets:
- Focus on silent update implementation and clean up my review queue.
- As soon as feedback is provided by dveditz finish the patch for Bug 544442 [Toolkit] – Add support for signed AUS update snippets [All].
- Hopefully land a patch for Bug 552924 [Toolkit] – Allow distinguishing Universal ppc/i386 from Universal i386/x86_64 builds in AUS request [Mac OS X] so it doesn’t block Josh’s work in Bug 571367 [mozilla.org] – turn production x86_64 builds into i386/x86_64 universal binaries [Mac OS X].
- With luck get r+ on outstanding review requests listed in the Progress section above and get them landed.
App Update / Win Installer status – 2010-06-05
June 5th, 2010 by rstrong
Progress:
- Landed on trunk – Bug 546595 [Toolkit] – Add mochitests for the incompatibleList and incompatibleCheck pages [All]. Now all app update UI pages and different page sequence scenarios are tested except for the pluginupdatesfound page.
- Landed on trunk – Bug 569648 [Toolkit] – First async XHR without other network activity has null securityInfo for the channel when using auto-detect proxy [All]. This fixes Bug 471889 [Toolkit] – Software update sometimes stops with “Update XML file malformed (200)” (Error: channel.securityInfo is null) [All].
- Landed on trunk for Firefox – Bug 522065 [Toolkit] – PCA complains when installer is cancelled [Windows 7].
- Received r+ from dveditz for the CertUtils.jsm portion of Bug 544442 [Toolkit] – Add support for signed AUS update snippets [All]. Almost done with the app update patch which will include a fallback for when the cert check repeatedly fails.
- Submitted patch for review – Bug 569058 [Toolkit] – Upgrade NSIS version to 2.45 or later (PCA complains when installer is cancelled on Windows 7) [Windows]
- Submitted patch for review – Bug 569534 [mozilla.org] – Add NSIS 2.46 Unicode to Mozilla Build [Windows]
- Received r+ for SeaMonkey – Bug 569791 [SeaMonkey] – PCA complains when installer is cancelled [Windows 7]
- Received r+ for Thunderbird – Bug 569789 [Thunderbird] – PCA complains when installer is cancelled [Windows 7]
Future targets:
- Finish the last patch for Bug 544442 [Toolkit] – Add support for signed AUS update snippets [All].
- Focus on silent update implementation and clean up my review queue.
App Update status – 2010-05-21
May 22nd, 2010 by rstrong
Progress:
- Landed the file rename patch on trunk and submitted the patch for review to simplify the tests for Bug 566267 [Toolkit] – Simplify mochitest-chrome tests [All]. I have several new app update mochitest-chrome tests in the works and wanted to simplify the test files by putting the vast majority of the code for each test in the common utils.js file used by these tests.
- Landed on trunk – Bug 566807 [Toolkit] – Workaround Bug 566787 when checking for incompatible add-ons [Windows 7]. This was found while writing the patch for Bug 546595 [Toolkit] – Add mochitests for the incompatibleList and incompatibleCheck pages [All].
- Landed on trunk – Bug 567054 [Toolkit] – Cc and Ci are not defined in updates.js [All]. This was found while writing the patch for Bug 546595 [Toolkit] – Add mochitests for the incompatibleList and incompatibleCheck pages [All].
- Almost done with the patch for Bug 546595 [Toolkit] – Add mochitests for the incompatibleList and incompatibleCheck pages [All].
- Submitted for review the CertUtils.jsm portion of Bug 544442 [Toolkit] – Add support for signed AUS update snippets [All]. I’m almost done with the app update patch which will include a fallback for when the cert check repeatedly fails.
Future targets:
- Get r+ and land the last patch for Bug 566267 [Toolkit] – Simplify mochitest-chrome tests [All].
- Finish the app update patch for Bug 544442 [Toolkit] – Add support for signed AUS update snippets [All].
- Finish the patch for Bug 546595 [Toolkit] – Add mochitests for the incompatibleList and incompatibleCheck pages [All].
Status Update – week ending 4/23
April 23rd, 2010 by rstrong
Progress:
- Landed on trunk and mozilla-1.9.2 branch for Gecko 1.9.2.4 / Firefox 3.6.4 – Bug 539717 [Toolkit] – update is paused, can’t unpause [All]. This is the only known regression from the App Update Gecko 1.9.2 / Firefox 3.6 work and it feels great to have this fixed. It also feels great to have a relatively small number of App Update bugs reported after several update offers for the first time (see App update improvement for Firefox 3.6 / Gecko 1.9.2for more info).
- Finished reviewing all patches in my queue for the trunk landing of the Extension Manager rewrite.
- Performed a lot of bug triage which seems to be taking more time than usual possibly due to many of the bugs being very edge-casey. For example, take a look at Bug 554314 [Firefox] – Lost passwords and private mode not working after upgrading [Windows XP] where the reporter didn’t mention that they were replacing Firefox’s all.js preference file with a custom one.
- Submitted a patch with tests for Bug 558914 [Toolkit] – Provide a ‘Not Updating?’ survey page [All] but the initial behavior discussed with metrics is not what UX wants so I have started over.
Future targets:
- Review new patches (if any) for the Extension Manager rewrite.
- Submit a new patch for Bug 558914 [Toolkit] – Provide a ‘Not Updating?’ survey page [All].
- Start work on Bug 544442 [Toolkit] – Add support for signed AUS update snippets [All].
- I hope to spend some time helping Kyle Huey with Bug 231062 [Firefox] – Provide Firefox MSI package [Windows] but there will likely be other things to work on with a higher priority.
App update improvement for Firefox 3.6 / Gecko 1.9.2
April 20th, 2010 by rstrong
There are several changes that made it into Firefox 3.6 / Gecko 1.9.2 that have significantly lessened the number of app update bug reports filed with each update offered. The one that made the most difference is Bug 525390 [Toolkit] – 3.5.4 Upgrade failure: “entry point js_SaveRegExpStatics could not be located” [Windows] which prevents starting Firefox and other Mozilla applications using Gecko 1.9.2 on Windows while an update is in progress. The solution was first conceived of by bsmedberg in Bug 312010 [Toolkit] – possible to start firefox when the “Software Update” dialog is running [Windows] which got backed out due to breaking partial updates.
One of the scenarios where this badly broke app update is as follows:
- a background download of an update finishes and the notification is not seen or is ignored
- the application is closed and sometime later the application is launched again which initiates the update process
- since the application isn’t displayed the application is launched again
- update is unable to patch the files that are now in use
- update tries to rollback to previous files but is unable to due to the files in use
The end result with the above scenario is Firefox now has files from both the previous as well as the new versions and is what we not so lovingly call Frankenfox. With the fix, which is Windows only, app update makes a copy of the primary executable, opens the primary executable exclusively to prevent it from being opened again, patches the copy made earlier, and replaces the primary executable with the patched copy after all other files have been successfully updated.
The only regression in app update that I know of in Firefox 3.6 / Gecko 1.9.2 is Bug 539717 [Toolkit] – update is paused, can’t unpause [All] which is due to other app update work and has a patch I hope will be approved for a 3.6.x release.
There are also a couple of edge-case bugs that are very difficult and time consuming to track down the root cause. If anyone would like to help diagnose what is going on with any of the following bugs I would very much appreciate it.
Bug 500303 [Toolkit] – Infinite loop of update failures [Windows XP]
Bug 560047 [Toolkit] – Firefox 3.6.4 beta update wouldn’t run due to platform version incompatability [Linux]
Bug 504758 [Toolkit] – I cannot install any Firefox updates through the software update dialog [Windows Vista]
Bug 522190 [Toolkit] – App update failed, left a 0-byte firefox.exe. [Windows Vista]
Bug 554542 [Toolkit] – Firefox 3.6.2 update failure. [Windows XP]
Bug 549140 [Toolkit] – updates search looping [Linux]
Status Update – week ending 4/9
April 9th, 2010 by rstrong
Progress:
- Finished reviewing all patches for Bug 553169 [Toolkit] – Initial review of API rewrite [All] and for bugs dependent of Bug 461973 [Toolkit] – Extension manager API rewrite tracking bug [All]. A few patches still need to be resubmitted and reviewed again but the light at the end of the tunnel can be seen. Though there will be bugs when the changes land as there always will be with such a large rewrite I must say that Dave Townsend has done an awesome job.
- Landed on trunk – Bug 538331 [Firefox] – On update perform action based upon the update metadata [All]. This is the last client side patch for Actions based on update xml after app update but the AUS side still needs to be completed in Bug 459972 [AUS] – Add new attributes to the update snippets [All] to take advantage of the changes. I’ve also backported the patches for 1.9.2 and submitted them so they are ready when the release vehicle has been chosen for these changes.
- Landed on trunk – Bug 553763 [Toolkit] – [SeaMonkey 2.1] mochitest-chrome: bug 530872 update ui tests time out [All].
Future targets:
- Finish reviewing the remaining patches for the trunk landing of Bug 553169 [Toolkit] – Initial review of API rewrite [All] and for bugs dependent of Bug 461973 [Toolkit] – Extension manager API rewrite tracking bug [All].
- Continue investigation of Bug 504758 [Toolkit] – I cannot install any Firefox updates through the software update dialog [Windows Vista]. The reporter has been extremely helpful with trying to track down the cause.
- Continue investigation of Bug 557136 [Toolkit] – Firefox built in updater is frozen [Windows XP]. The reporter was able to submit the information I believe is required to be able to figure this bug out.
- Start work to add a survey for when an update is declined.
- Start work on limiting updates checks to a specific certificate.
- There is more but I doubt I’ll be able to finish all of the above in the next week so I’m not going to list them at this time.
Status Update – App Update, etc.
April 2nd, 2010 by rstrong
Progress:
- Finished second round and waiting on updated patches for Bug 553169 [Toolkit] – Initial review of API rewrite [All]. Also started reviewing followup bugs that are dependent of Bug 461973 [Toolkit] – Extension manager API rewrite tracking bug [All].
- Finished tests and submitted patch for review and ui-review (need me some strings
) for Bug 538331 [Firefox] – On update perform action based upon the update metadata [All].
Future targets:
- Land the following on trunk – Bug 538331 [Firefox] – On update perform action based upon the update metadata [All].
- Finish third round of reviews (contingent on updated patches) for Bug 553169 [Toolkit] – Initial review of API rewrite [All].
- Finish first round of reviews for dependent bugs of Bug 461973 [Toolkit] – Extension manager API rewrite tracking bug [All]. Only 9 more to go.
- Start work to add a survey for when an update is declined.