| Index: chrome/installer/setup/setup_util.cc | 
| diff --git a/chrome/installer/setup/setup_util.cc b/chrome/installer/setup/setup_util.cc | 
| index 405fbdf472d4cfdb4016b2267b3cc135633fcf46..68900f92223f6189f4f538a302083c37ac93a5b9 100644 | 
| --- a/chrome/installer/setup/setup_util.cc | 
| +++ b/chrome/installer/setup/setup_util.cc | 
| @@ -31,6 +31,8 @@ | 
| #include "base/version.h" | 
| #include "base/win/registry.h" | 
| #include "base/win/windows_version.h" | 
| +#include "chrome/install_static/install_details.h" | 
| +#include "chrome/install_static/install_modes.h" | 
| #include "chrome/installer/setup/installer_state.h" | 
| #include "chrome/installer/setup/setup_constants.h" | 
| #include "chrome/installer/setup/user_hive_visitor.h" | 
| @@ -55,19 +57,6 @@ namespace { | 
| constexpr wchar_t kEventLogProvidersRegPath[] = | 
| L"SYSTEM\\CurrentControlSet\\Services\\EventLog\\Application\\"; | 
|  | 
| -// TODO(grt): use install_static::InstallDetails::Get().install_full_name() when | 
| -// InstallDetails is initialized in the installer. | 
| -base::string16 InstallFullName() { | 
| -#if defined(GOOGLE_CHROME_BUILD) | 
| -  base::string16 reg_path(L"Chrome"); | 
| -  if (InstallUtil::IsChromeSxSProcess()) | 
| -    reg_path.append(L" SxS"); | 
| -  return reg_path; | 
| -#else | 
| -  return base::string16(L"Chromium"); | 
| -#endif | 
| -} | 
| - | 
| // Returns true if the "lastrun" value in |root|\|key_path| (a path to Chrome's | 
| // ClientState key for a user) indicates that Chrome has been used within the | 
| // last 28 days. | 
| @@ -104,7 +93,7 @@ bool OnUserHive(const base::string16& client_state_path, | 
| // for this mode of install was dropped from ToT in December 2016. Remove any | 
| // stray bits in the registry leftover from such installs. | 
| void RemoveBinariesVersionKey(const InstallerState& installer_state) { | 
| -  base::string16 path(MakeBinariesRegistrationData()->GetVersionKey()); | 
| +  base::string16 path(install_static::GetBinariesClientsKeyPath()); | 
| if (base::win::RegKey(installer_state.root_key(), path.c_str(), | 
| KEY_QUERY_VALUE | KEY_WOW64_32KEY) | 
| .Valid()) { | 
| @@ -698,7 +687,7 @@ void RecordUnPackMetrics(UnPackStatus unpack_status, | 
| void RegisterEventLogProvider(const base::FilePath& install_directory, | 
| const base::Version& version) { | 
| base::string16 reg_path(kEventLogProvidersRegPath); | 
| -  reg_path.append(InstallFullName()); | 
| +  reg_path.append(install_static::InstallDetails::Get().install_full_name()); | 
| VLOG(1) << "Registering Chrome's event log provider at " << reg_path; | 
|  | 
| std::unique_ptr<WorkItemList> work_item_list(WorkItem::CreateWorkItemList()); | 
| @@ -738,7 +727,7 @@ void RegisterEventLogProvider(const base::FilePath& install_directory, | 
|  | 
| void DeRegisterEventLogProvider() { | 
| base::string16 reg_path(kEventLogProvidersRegPath); | 
| -  reg_path.append(InstallFullName()); | 
| +  reg_path.append(install_static::InstallDetails::Get().install_full_name()); | 
|  | 
| // TODO(http://crbug.com/668120): If the Event Viewer is open the provider dll | 
| // will fail to get deleted. This doesn't fail the uninstallation altogether | 
| @@ -748,17 +737,16 @@ void DeRegisterEventLogProvider() { | 
| } | 
|  | 
| std::unique_ptr<AppRegistrationData> MakeBinariesRegistrationData() { | 
| -#if defined(GOOGLE_CHROME_BUILD) | 
| -  return base::MakeUnique<UpdatingAppRegistrationData>( | 
| -      L"{4DC8B4CA-1BDA-483e-B5FA-D3C12E15B62D}"); | 
| -#else | 
| +  if (install_static::kUseGoogleUpdateIntegration) { | 
| +    return base::MakeUnique<UpdatingAppRegistrationData>( | 
| +        install_static::kBinariesAppGuid); | 
| +  } | 
| return base::MakeUnique<NonUpdatingAppRegistrationData>( | 
| -      L"Software\\Chromium Binaries"); | 
| -#endif | 
| +      base::string16(L"Software\\").append(install_static::kBinariesPathName)); | 
| } | 
|  | 
| bool AreBinariesInstalled(const InstallerState& installer_state) { | 
| -  if (InstallUtil::IsChromeSxSProcess()) | 
| +  if (!install_static::InstallDetails::Get().supported_multi_install()) | 
| return false; | 
|  | 
| base::win::RegKey key; | 
| @@ -766,7 +754,7 @@ bool AreBinariesInstalled(const InstallerState& installer_state) { | 
|  | 
| // True if the "pv" value exists and isn't empty. | 
| return key.Open(installer_state.root_key(), | 
| -                  MakeBinariesRegistrationData()->GetVersionKey().c_str(), | 
| +                  install_static::GetBinariesClientsKeyPath().c_str(), | 
| KEY_QUERY_VALUE | KEY_WOW64_32KEY) == ERROR_SUCCESS && | 
| key.ReadValue(google_update::kRegVersionField, &pv) == ERROR_SUCCESS && | 
| !pv.empty(); | 
| @@ -779,7 +767,7 @@ void DoLegacyCleanups(const InstallerState& installer_state, | 
| return; | 
|  | 
| // The cleanups below only apply to normal Chrome, not side-by-side (canary). | 
| -  if (InstallUtil::IsChromeSxSProcess()) | 
| +  if (!install_static::InstallDetails::Get().is_primary_mode()) | 
| return; | 
|  | 
| RemoveBinariesVersionKey(installer_state); | 
|  |