Index: chrome/installer/setup/install_worker.cc |
diff --git a/chrome/installer/setup/install_worker.cc b/chrome/installer/setup/install_worker.cc |
index 171de1d2ef3ca3fae72e6aef474dc842efdfb820..43ce81a1676efa5126c00999bd3bd8c73bbfaafc 100644 |
--- a/chrome/installer/setup/install_worker.cc |
+++ b/chrome/installer/setup/install_worker.cc |
@@ -116,8 +116,18 @@ void AddInstallerCopyTasks(const InstallerState& installer_state, |
// %LOCALAPPDATA% otherwise), there is no need to do this for the archive. |
// Setup.exe, on the other hand, is created elsewhere so it must always be |
// copied. |
+#if !defined(COMPONENT_BUILD) |
install_list->AddMoveTreeWorkItem(archive_path.value(), archive_dst.value(), |
temp_path.value(), WorkItem::ALWAYS_MOVE); |
+#else // COMPONENT_BUILD |
+ // The archive is usually extracted in |temp_path| in which case we want to |
+ // move it as mentioned above; however in the component build, setup.exe |
+ // uses chrome.7z directly from the build output, moving it means that |
+ // setup.exe cannot be run again without regenerating the archive, so copy |
+ // it instead in this case to save developer time. |
+ install_list->AddCopyTreeWorkItem(archive_path.value(), archive_dst.value(), |
+ temp_path.value(), WorkItem::ALWAYS); |
+#endif // COMPONENT_BUILD |
} |
} |