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

Unified Diff: chrome/installer/util/installation_validator.cc

Issue 7005019: Put SxS switches back into the rename command. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 7 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
« no previous file with comments | « chrome/installer/util/installation_validator.h ('k') | chrome/installer/util/product.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/installer/util/installation_validator.cc
===================================================================
--- chrome/installer/util/installation_validator.cc (revision 84779)
+++ chrome/installer/util/installation_validator.cc (working copy)
@@ -22,7 +22,7 @@
return BrowserDistribution::CHROME_BROWSER;
}
-void InstallationValidator::ChromeRules::AddProductSwitchExpectations(
+void InstallationValidator::ChromeRules::AddUninstallSwitchExpectations(
const InstallationState& machine_state,
bool system_install,
const ProductState& product_state,
@@ -30,10 +30,12 @@
const bool is_multi_install =
product_state.uninstall_command().HasSwitch(switches::kMultiInstall);
- // --chrome should be present iff --multi-install. This wasn't the case in
- // Chrome 10 (between r68996 and r72497), though, so consider it optional.
+ // --chrome should be present for uninstall iff --multi-install. This wasn't
+ // the case in Chrome 10 (between r68996 and r72497), though, so consider it
+ // optional.
- // --chrome-frame --ready-mode should be present iff CF in ready mode.
+ // --chrome-frame --ready-mode should be present for uninstall iff CF in ready
+ // mode.
const ProductState* cf_state =
machine_state.GetProductState(system_install,
BrowserDistribution::CHROME_FRAME);
@@ -46,6 +48,24 @@
std::make_pair(std::string(switches::kChromeFrameReadyMode), ready_mode));
}
+void InstallationValidator::ChromeRules::AddRenameSwitchExpectations(
+ const InstallationState& machine_state,
+ bool system_install,
+ const ProductState& product_state,
+ SwitchExpectations* expectations) const {
+ const bool is_multi_install =
+ product_state.uninstall_command().HasSwitch(switches::kMultiInstall);
+
+ // --chrome should not be present for rename. It was for a time, so we'll be
+ // lenient so that mini_installer tests pass.
+
+ // --chrome-frame --ready-mode should never be present.
+ expectations->push_back(
+ std::make_pair(std::string(switches::kChromeFrame), false));
+ expectations->push_back(
+ std::make_pair(std::string(switches::kChromeFrameReadyMode), false));
+}
+
bool InstallationValidator::ChromeRules::UsageStatsAllowed(
const ProductState& product_state) const {
// Products must not have usagestats consent values when multi-install
@@ -58,7 +78,7 @@
return BrowserDistribution::CHROME_FRAME;
}
-void InstallationValidator::ChromeFrameRules::AddProductSwitchExpectations(
+void InstallationValidator::ChromeFrameRules::AddUninstallSwitchExpectations(
const InstallationState& machine_state,
bool system_install,
const ProductState& product_state,
@@ -71,6 +91,19 @@
false));
}
+void InstallationValidator::ChromeFrameRules::AddRenameSwitchExpectations(
+ const InstallationState& machine_state,
+ bool system_install,
+ const ProductState& product_state,
+ SwitchExpectations* expectations) const {
+ // --chrome-frame must be present for SxS rename.
+ expectations->push_back(std::make_pair(std::string(switches::kChromeFrame),
+ !product_state.is_multi_install()));
+ // --chrome must not be present.
+ expectations->push_back(std::make_pair(std::string(switches::kChrome),
+ false));
+}
+
bool InstallationValidator::ChromeFrameRules::UsageStatsAllowed(
const ProductState& product_state) const {
// Products must not have usagestats consent values when multi-install
@@ -83,7 +116,7 @@
return BrowserDistribution::CHROME_BINARIES;
}
-void InstallationValidator::ChromeBinariesRules::AddProductSwitchExpectations(
+void InstallationValidator::ChromeBinariesRules::AddUninstallSwitchExpectations(
const InstallationState& machine_state,
bool system_install,
const ProductState& product_state,
@@ -91,6 +124,14 @@
NOTREACHED();
}
+void InstallationValidator::ChromeBinariesRules::AddRenameSwitchExpectations(
+ const InstallationState& machine_state,
+ bool system_install,
+ const ProductState& product_state,
+ SwitchExpectations* expectations) const {
+ NOTREACHED();
+}
+
bool InstallationValidator::ChromeBinariesRules::UsageStatsAllowed(
const ProductState& product_state) const {
// UsageStats consent values are always allowed on the binaries.
@@ -372,9 +413,10 @@
ctx.system_install));
expected.push_back(std::make_pair(std::string(switches::kMultiInstall),
is_multi_install));
- ctx.rules.AddProductSwitchExpectations(ctx.machine_state,
+ ctx.rules.AddUninstallSwitchExpectations(ctx.machine_state,
ctx.system_install,
- ctx.state, &expected);
+ ctx.state,
+ &expected);
ValidateCommandExpectations(ctx, command, expected, source, is_valid);
}
@@ -397,6 +439,10 @@
ctx.system_install));
expected.push_back(std::make_pair(std::string(switches::kMultiInstall),
ctx.state.is_multi_install()));
+ ctx.rules.AddRenameSwitchExpectations(ctx.machine_state,
+ ctx.system_install,
+ ctx.state,
+ &expected);
ValidateCommandExpectations(ctx, command, expected, "in-use renamer",
is_valid);
« no previous file with comments | « chrome/installer/util/installation_validator.h ('k') | chrome/installer/util/product.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698