diff options
Diffstat (limited to 'chrome/installer/setup/main.cc')
-rw-r--r-- | chrome/installer/setup/main.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/chrome/installer/setup/main.cc b/chrome/installer/setup/main.cc index f9bf767..d9b4bc6 100644 --- a/chrome/installer/setup/main.cc +++ b/chrome/installer/setup/main.cc @@ -293,6 +293,16 @@ int WINAPI wWinMain(HINSTANCE instance, HINSTANCE prev_instance, parsed_command_line.HasSwitch(installer_util::switches::kSystemInstall); LOG(INFO) << "system install is " << system_install; + // Check to avoid simultaneous per-user and per-machine installs. + scoped_ptr<installer::Version> + chrome_version(InstallUtil::GetChromeVersion(!system_install)); + if (chrome_version.get()) { + LOG(ERROR) << "Already installed version " << chrome_version->GetString() + << " conflicts with the current install mode."; + return system_install ? installer_util::USER_LEVEL_INSTALL_EXISTS : + installer_util::MACHINE_LEVEL_INSTALL_EXISTS; + } + // Check the existing version installed. scoped_ptr<installer::Version> installed_version(InstallUtil::GetChromeVersion(system_install)); |