Bug 759615 - Avoid running the PostUpdate step when only staging the update in the background; r=rstrong

This commit is contained in:
Ehsan Akhgari 2012-05-30 18:09:59 -04:00
Родитель b860e0877e
Коммит e52d047f9d
2 изменённых файлов: 17 добавлений и 8 удалений

Просмотреть файл

@ -239,6 +239,7 @@ StartUpdateProcess(int argc,
if (updateWasSuccessful && argc > 2) {
LPCWSTR installationDir = argv[2];
LPCWSTR updateInfoDir = argv[1];
bool backgroundUpdate = (argc == 4 && !wcscmp(argv[3], L"-1"));
// Launch the PostProcess with admin access in session 0. This is
// actually launching the post update process but it takes in the
@ -247,9 +248,14 @@ StartUpdateProcess(int argc,
// the unelevated updater.exe after the update process is complete
// from the service. We don't know here which session to start
// the user PostUpdate process from.
LOG(("Launching post update process as the service in session 0.\n"));
if (!LaunchWinPostProcess(installationDir, updateInfoDir, true, NULL)) {
LOG(("The post update process could not be launched.\n"));
// Note that we don't need to do this if we're just staging the
// update in the background, as the PostUpdate step runs when
// performing the replacing in that case.
if (!backgroundUpdate) {
LOG(("Launching post update process as the service in session 0.\n"));
if (!LaunchWinPostProcess(installationDir, updateInfoDir, true, NULL)) {
LOG(("The post update process could not be launched.\n"));
}
}
}
}

Просмотреть файл

@ -2428,7 +2428,10 @@ int NS_main(int argc, NS_tchar **argv)
// we need to manually start the PostUpdate process from the
// current user's session of this unelevated updater.exe the
// current process is running as.
if (useService) {
// Note that we don't need to do this if we're just staging the
// update in the background, as the PostUpdate step runs when
// performing the replacing in that case.
if (useService && !sBackgroundUpdate) {
bool updateStatusSucceeded = false;
if (IsUpdateStatusSucceeded(updateStatusSucceeded) &&
updateStatusSucceeded) {
@ -2751,12 +2754,12 @@ int NS_main(int argc, NS_tchar **argv)
// the service to a newer version in that case. If we are not running
// through the service, then MOZ_USING_SERVICE will not exist.
if (!usingService) {
if (!LaunchWinPostProcess(argv[callbackIndex], gSourcePath, false, NULL)) {
LOG(("NS_main: The post update process could not be launched.\n"));
}
NS_tchar installDir[MAXPATHLEN];
if (GetInstallationDir(installDir)) {
if (!LaunchWinPostProcess(installDir, gSourcePath, false, NULL)) {
LOG(("NS_main: The post update process could not be launched.\n"));
}
StartServiceUpdate(installDir);
}
}