Index: chrome/installer/setup/install_worker.cc |
diff --git a/chrome/installer/setup/install_worker.cc b/chrome/installer/setup/install_worker.cc |
index 5878c00439e338b422250972c0fa50ccb7bf8aa1..84c8246a2bea2869a853ffa07493c9779f66c7e6 100644 |
--- a/chrome/installer/setup/install_worker.cc |
+++ b/chrome/installer/setup/install_worker.cc |
@@ -40,6 +40,7 @@ |
#include "chrome/installer/util/callback_work_item.h" |
#include "chrome/installer/util/conditional_work_item_list.h" |
#include "chrome/installer/util/create_reg_key_work_item.h" |
+#include "chrome/installer/util/delete_old_versions.h" |
#include "chrome/installer/util/firewall_manager_win.h" |
#include "chrome/installer/util/google_update_constants.h" |
#include "chrome/installer/util/helper.h" |
@@ -1008,6 +1009,18 @@ bool AppendPostInstallTasks(const InstallerState& installer_state, |
post_install_task_list->AddWorkItem(regular_update_work_items.release()); |
} |
+ // If this is a regular update (chrome.exe not in use), this step will try to |
+ // delete files from all versions except the one that was just installed. |
+ // Otherwise, it will try to delete files from all versions except the one |
+ // that is in use and the one that was just installed. |
+ // |
+ // TODO(fdoray): Launch a cleanup process if this fails during a regular |
+ // update. crbug.com/451546 |
+ post_install_task_list |
+ ->AddCallbackWorkItem( |
+ base::Bind(&DeleteOldVersionsCallback, installer_state.target_path())) |
+ ->set_ignore_failure(true); |
+ |
AddRegisterComDllWorkItemsForPackage(installer_state, current_version, |
new_version, post_install_task_list); |