summaryrefslogtreecommitdiffstats
path: root/chrome/installer/setup/install_worker.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/installer/setup/install_worker.cc')
-rw-r--r--chrome/installer/setup/install_worker.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/chrome/installer/setup/install_worker.cc b/chrome/installer/setup/install_worker.cc
index 74d9a8f..f7067c5 100644
--- a/chrome/installer/setup/install_worker.cc
+++ b/chrome/installer/setup/install_worker.cc
@@ -794,6 +794,26 @@ void AddInstallWorkItems(const InstallationState& original_state,
temp_path);
}
+ // For the component build to work with the installer, we need to drop a
+ // config file and a manifest by chrome.exe. These files are only found in
+ // the archive if this is a component build.
+#if defined(COMPONENT_BUILD)
+ static const FilePath::CharType kChromeExeConfig[] =
+ FILE_PATH_LITERAL("chrome.exe.config");
+ static const FilePath::CharType kChromeExeManifest[] =
+ FILE_PATH_LITERAL("chrome.exe.manifest");
+ install_list->AddMoveTreeWorkItem(
+ src_path.Append(kChromeExeConfig).value(),
+ target_path.Append(kChromeExeConfig).value(),
+ temp_path.value(),
+ WorkItem::ALWAYS_MOVE);
+ install_list->AddMoveTreeWorkItem(
+ src_path.Append(kChromeExeManifest).value(),
+ target_path.Append(kChromeExeManifest).value(),
+ temp_path.value(),
+ WorkItem::ALWAYS_MOVE);
+#endif // defined(COMPONENT_BUILD)
+
// In the past, we copied rather than moved for system level installs so that
// the permissions of %ProgramFiles% would be picked up. Now that |temp_path|
// is in %ProgramFiles% for system level installs (and in %LOCALAPPDATA%