Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9865)

Unified Diff: chrome/installer/setup/setup_main.cc

Issue 2459583002: Use InstallDetails in setup. (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/installer/setup/setup_main.cc
diff --git a/chrome/installer/setup/setup_main.cc b/chrome/installer/setup/setup_main.cc
index 3799bf282ad8de2d7a22a97ad218b620805d713c..a7fcfaea4f3bb1dd064f80010593d4a202218b7b 100644
--- a/chrome/installer/setup/setup_main.cc
+++ b/chrome/installer/setup/setup_main.cc
@@ -45,12 +45,14 @@
#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_switches.h"
+#include "chrome/install_static/install_details.h"
#include "chrome/installer/setup/archive_patch_helper.h"
#include "chrome/installer/setup/install.h"
#include "chrome/installer/setup/install_worker.h"
#include "chrome/installer/setup/installer_crash_reporting.h"
#include "chrome/installer/setup/persistent_histogram_storage.h"
#include "chrome/installer/setup/setup_constants.h"
+#include "chrome/installer/setup/setup_install_details.h"
#include "chrome/installer/setup/setup_singleton.h"
#include "chrome/installer/setup/setup_util.h"
#include "chrome/installer/setup/uninstall.h"
@@ -1704,6 +1706,8 @@ int WINAPI wWinMain(HINSTANCE instance, HINSTANCE prev_instance,
InstallerState installer_state;
installer_state.Initialize(cmd_line, prefs, original_state);
+ InitializeInstallDetails(cmd_line, prefs, installer_state);
+
persistent_histogram_storage.set_storage_dir(
installer::PersistentHistogramStorage::GetReportedStorageDir(
installer_state.target_path()));
@@ -1737,18 +1741,22 @@ int WINAPI wWinMain(HINSTANCE instance, HINSTANCE prev_instance,
return installer::OS_ERROR;
}
- // Some command line options don't work with SxS install/uninstall
- if (InstallUtil::IsChromeSxSProcess()) {
- if (system_install ||
- prefs.is_multi_install() ||
- cmd_line.HasSwitch(installer::switches::kSelfDestruct) ||
- cmd_line.HasSwitch(installer::switches::kMakeChromeDefault) ||
- cmd_line.HasSwitch(installer::switches::kRegisterChromeBrowser) ||
- cmd_line.HasSwitch(installer::switches::kRemoveChromeRegistration) ||
- cmd_line.HasSwitch(installer::switches::kInactiveUserToast) ||
- cmd_line.HasSwitch(installer::switches::kSystemLevelToast)) {
- return installer::SXS_OPTION_NOT_SUPPORTED;
- }
+ const install_static::InstallDetails& install_details =
+ install_static::InstallDetails::Get();
+ // Make sure multi_install and/or system_level are supported if requested.
+ if ((prefs.is_multi_install() && !install_details.supports_multi_install()) ||
+ (system_install && !install_details.supports_system_level())) {
+ return installer::SXS_OPTION_NOT_SUPPORTED;
+ }
+ // Some command line options don't work with secondary installs.
+ if (install_details.install_mode_index() != 0 &&
+ (cmd_line.HasSwitch(installer::switches::kSelfDestruct) ||
+ cmd_line.HasSwitch(installer::switches::kMakeChromeDefault) ||
+ cmd_line.HasSwitch(installer::switches::kRegisterChromeBrowser) ||
+ cmd_line.HasSwitch(installer::switches::kRemoveChromeRegistration) ||
+ cmd_line.HasSwitch(installer::switches::kInactiveUserToast) ||
+ cmd_line.HasSwitch(installer::switches::kSystemLevelToast))) {
+ return installer::SXS_OPTION_NOT_SUPPORTED;
}
// Some command line options are no longer supported and must error out.

Powered by Google App Engine
This is Rietveld 408576698