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

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

Issue 11267023: Implementing --app-launcher install/uninstall flow. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 months 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 4c17a1cb95eb4ab9c91abf86b215af3c6603e476..27791790ba91abfe5436bc9c7b6cc792bf85e65a 100644
--- a/chrome/installer/setup/setup_main.cc
+++ b/chrome/installer/setup/setup_main.cc
@@ -361,6 +361,9 @@ bool CheckMultiInstallConditions(const InstallationState& original_state,
const ProductState* chrome_state =
original_state.GetProductState(system_level,
BrowserDistribution::CHROME_BROWSER);
+ const ProductState* app_host_state =
+ original_state.GetProductState(system_level,
+ BrowserDistribution::CHROME_APP_HOST);
if (!binaries) {
// This will only be hit if --multi-install is given with no products, or
@@ -452,6 +455,20 @@ bool CheckMultiInstallConditions(const InstallationState& original_state,
IDS_INSTALL_NON_MULTI_INSTALLATION_EXISTS_BASE, NULL);
return false;
}
+
+ if (app_host) {
+ // TODO(huangs): Revisit all these once App Launcher is default.
+ if (app_host_state) {
+ const installer::ChannelInfo& channel_info(app_host_state->channel());
grt (UTC plus 2) 2012/10/25 14:46:53 same here: don't use the channel info for this. c
huangs 2012/10/29 21:15:16 Done.
+ if (channel_info.IsAppLauncher() &&
+ !app_host->HasOption(installer::kOptionAppLauncher)) {
+ LOG(ERROR) << "Cannot downgrade from App Launcher to App Host";
+ *status = installer::HIGHER_VERSION_EXISTS;
grt (UTC plus 2) 2012/10/25 14:46:53 please introduce a new code rather than overloadin
huangs 2012/10/29 21:15:16 Not doing this anymore, so moot.
+ return false;
+ }
+ }
+ }
+
} else {
// This is a non-multi installation.
@@ -1431,7 +1448,11 @@ int WINAPI wWinMain(HINSTANCE instance, HINSTANCE prev_instance,
original_state.Initialize();
InstallerState installer_state;
- installer_state.Initialize(cmd_line, prefs, original_state);
+ if (!installer_state.Initialize(cmd_line, prefs, original_state)) {
+ LOG(ERROR) << "Conflicting options are found.";
+ // TODO(huangs): Find better error code!
+ return installer::INSTALL_FAILED;
+ }
const bool is_uninstall = cmd_line.HasSwitch(installer::switches::kUninstall);
// Check to make sure current system is WinXP or later. If not, log

Powered by Google App Engine
This is Rietveld 408576698