summaryrefslogtreecommitdiff
path: root/chrome/installer
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2013-07-25 10:06:34 +0100
committerBen Murdoch <benm@google.com>2013-07-25 10:06:34 +0100
commitbbcdd45c55eb7c4641ab97aef9889b0fc828e7d3 (patch)
tree51387d1614b16fcf107004649d44707d271da339 /chrome/installer
parent8a142c18176c4e279012cb218f060cfc3df087c5 (diff)
downloadchromium_org-bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3.tar.gz
Merge from Chromium at DEPS revision r213605
This commit was generated by merge_to_master.py. Change-Id: I5ef9e03bf077dac295a7904f06b3cb6dec9fe213
Diffstat (limited to 'chrome/installer')
-rw-r--r--chrome/installer/util/installer_state.cc17
1 files changed, 14 insertions, 3 deletions
diff --git a/chrome/installer/util/installer_state.cc b/chrome/installer/util/installer_state.cc
index 32d9b5acb4..6409d44d78 100644
--- a/chrome/installer/util/installer_state.cc
+++ b/chrome/installer/util/installer_state.cc
@@ -214,8 +214,8 @@ void InstallerState::Initialize(const CommandLine& command_line,
}
bool keep_binaries = false;
- // Look for a product that is not the binaries and that is not being
- // uninstalled. If not found, binaries are uninstalled too.
+ // Look for a multi-install product that is not the binaries and that is not
+ // being uninstalled. If not found, binaries are uninstalled too.
for (size_t i = 0; i < BrowserDistribution::NUM_TYPES; ++i) {
BrowserDistribution::Type type =
static_cast<BrowserDistribution::Type>(i);
@@ -223,11 +223,22 @@ void InstallerState::Initialize(const CommandLine& command_line,
if (type == BrowserDistribution::CHROME_BINARIES)
continue;
- if (machine_state.GetProductState(system_install(), type) == NULL) {
+ const ProductState* product_state =
+ machine_state.GetProductState(system_install(), type);
+ if (product_state == NULL) {
// The product is not installed.
continue;
}
+ if (!product_state->is_multi_install() &&
+ type != BrowserDistribution::CHROME_BROWSER) {
+ // The product is not sharing the binaries. It is ordinarily impossible
+ // for single-install Chrome to be installed along with any
+ // multi-install product. Treat single-install Chrome the same as any
+ // multi-install product just in case the impossible happens.
+ continue;
+ }
+
// The product is installed.
if (!FindProduct(type)) {