[tor-browser/esr24] Bug 925747 - Patch file extraction cleanup. r=bbondy, a=sledru

commit 6ff583446d721fdda2c272fb0d6ee108427c4304 Author: Robert Strong <robert.bugzilla@gmail.com> Date: Mon Jan 27 10:50:54 2014 -0800 Bug 925747 - Patch file extraction cleanup. r=bbondy, a=sledru --- .../macbuild/Contents/_CodeSignature/CodeResources | 12 ++++++++++ toolkit/mozapps/update/test/unit/head_update.js.in | 23 ++++++++++++++++++++ toolkit/mozapps/update/updater/updater.cpp | 10 +++++++-- 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/browser/app/macbuild/Contents/_CodeSignature/CodeResources b/browser/app/macbuild/Contents/_CodeSignature/CodeResources index 22666b9..6f6e20e 100644 --- a/browser/app/macbuild/Contents/_CodeSignature/CodeResources +++ b/browser/app/macbuild/Contents/_CodeSignature/CodeResources @@ -54,6 +54,18 @@ <key>weight</key> <real>10</real> </dict> + <key>^Updated.app/.*</key><dict> + <key>omit</key> + <true/> + <key>weight</key> + <real>10</real> + </dict> + <key>^updating/.*</key><dict> + <key>omit</key> + <true/> + <key>weight</key> + <real>10</real> + </dict> </dict> </dict> </plist> diff --git a/toolkit/mozapps/update/test/unit/head_update.js.in b/toolkit/mozapps/update/test/unit/head_update.js.in index 974afa4..68a19e1 100644 --- a/toolkit/mozapps/update/test/unit/head_update.js.in +++ b/toolkit/mozapps/update/test/unit/head_update.js.in @@ -424,6 +424,22 @@ function getUpdatedDirPath() { } /** + * Helper function for getting the updating directory which is used by the + * updater to extract the update manifest and patch files. + * + * @return nsIFile for the directory for the updating directory. + */ +function getUpdatingDir() { + let updatingDir = getApplyDirFile(null, true); + + if (IS_MACOSX) { + updatingDir = updatingDir.parent.parent; + } + updatingDir.append("updating"); + return updatingDir; +} + +/** * Helper function for getting the nsIFile for the directory where the update * has been applied. * @@ -650,6 +666,9 @@ function runUpdate() { updateSettingsIni.moveTo(updateSettingsIni.parent, FILE_UPDATE_SETTINGS_INI); } + logTestInfo("testing updating directory doesn't exist"); + do_check_false(getUpdatingDir().exists()); + return process.exitValue; } @@ -1015,6 +1034,10 @@ function runUpdateUsingService(aInitialStatus, aExpectedStatus, if (aCheckSvcLog) { checkServiceLogs(svcOriginalLog); } + + logTestInfo("testing updating directory doesn't exist"); + do_check_false(getUpdatingDir().exists()); + aCallback(); } diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp index eae3ce3..927f77e 100644 --- a/toolkit/mozapps/update/updater/updater.cpp +++ b/toolkit/mozapps/update/updater/updater.cpp @@ -1394,7 +1394,7 @@ PatchFile::Prepare() mPatchIndex = sPatchIndex++; NS_tsnprintf(spath, sizeof(spath)/sizeof(spath[0]), - NS_T("%s/%d.patch"), gSourcePath, mPatchIndex); + NS_T("%s/updating/%d.patch"), gDestinationPath, mPatchIndex); NS_tremove(spath); @@ -2230,6 +2230,10 @@ UpdateThreadFunc(void *param) if (rv == OK) { rv = DoUpdate(); gArchiveReader.Close(); + NS_tchar updatingDir[MAXPATHLEN]; + NS_tsnprintf(updatingDir, sizeof(updatingDir)/sizeof(updatingDir[0]), + NS_T("%s/updating"), gDestinationPath); + ensure_remove_recursive(updatingDir); } } @@ -3644,7 +3648,8 @@ int DoUpdate() { NS_tchar manifest[MAXPATHLEN]; NS_tsnprintf(manifest, sizeof(manifest)/sizeof(manifest[0]), - NS_T("%s/update.manifest"), gSourcePath); + NS_T("%s/updating/update.manifest"), gDestinationPath); + ensure_parent_dir(manifest); // extract the manifest int rv = gArchiveReader.ExtractFile("updatev2.manifest", manifest); @@ -3657,6 +3662,7 @@ int DoUpdate() } NS_tchar *rb = GetManifestContents(manifest); + NS_tremove(manifest); if (rb == NULL) { LOG(("DoUpdate: error opening manifest file: " LOG_S, manifest)); return READ_ERROR;
participants (1)
-
mikeperry@torproject.org