| 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% | 
|  |