diff options
author | Ben Murdoch <benm@google.com> | 2013-07-25 10:06:34 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2013-07-25 10:06:34 +0100 |
commit | bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3 (patch) | |
tree | 51387d1614b16fcf107004649d44707d271da339 /chrome/installer | |
parent | 8a142c18176c4e279012cb218f060cfc3df087c5 (diff) | |
download | chromium_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.cc | 17 |
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)) { |