Index: chrome/installer/setup/install_worker.cc |
diff --git a/chrome/installer/setup/install_worker.cc b/chrome/installer/setup/install_worker.cc |
index 74d9a8f68b1c278f022f2b8e296ed363ebf3eaea..f7067c5fbe47e00ff74ba1933ee10e3f866477ad 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% |