| 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);
|
|
|