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

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

Issue 811283002: [Installer] Cleaning up dead code for App Launcher / App Host installs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update .gn file; remove TODO's. Created 5 years, 11 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/installer_state.h ('k') | chrome/installer/util/master_preferences.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/installer/util/installer_state.cc
diff --git a/chrome/installer/util/installer_state.cc b/chrome/installer/util/installer_state.cc
index 520fd58e2e4154a6176b9748ea6612fdba82009c..91bb4e8ec400ea9a7db8a2c9c140c17ace62ad3d 100644
--- a/chrome/installer/util/installer_state.cc
+++ b/chrome/installer/util/installer_state.cc
@@ -70,8 +70,7 @@ InstallerState::InstallerState()
package_type_(UNKNOWN_PACKAGE_TYPE),
root_key_(NULL),
msi_(false),
- verbose_logging_(false),
- ensure_google_update_present_(false) {
+ verbose_logging_(false) {
}
InstallerState::InstallerState(Level level)
@@ -82,8 +81,7 @@ InstallerState::InstallerState(Level level)
package_type_(UNKNOWN_PACKAGE_TYPE),
root_key_(NULL),
msi_(false),
- verbose_logging_(false),
- ensure_google_update_present_(false) {
+ verbose_logging_(false) {
// Use set_level() so that root_key_ is updated properly.
set_level(level);
}
@@ -108,9 +106,6 @@ void InstallerState::Initialize(const base::CommandLine& command_line,
if (!prefs.GetBool(master_preferences::kMsi, &msi_))
msi_ = false;
- ensure_google_update_present_ =
- command_line.HasSwitch(installer::switches::kEnsureGoogleUpdatePresent);
-
const bool is_uninstall = command_line.HasSwitch(switches::kUninstall);
if (prefs.install_chrome()) {
@@ -120,141 +115,15 @@ void InstallerState::Initialize(const base::CommandLine& command_line,
<< " distribution: " << p->distribution()->GetDisplayName();
}
- if (prefs.install_chrome_app_launcher()) {
+ // Binaries are only used by Chrome.
+ if (is_multi_install() &&
+ FindProduct(BrowserDistribution::CHROME_BROWSER)) {
Product* p = AddProductFromPreferences(
- BrowserDistribution::CHROME_APP_HOST, prefs, machine_state);
+ BrowserDistribution::CHROME_BINARIES, prefs, machine_state);
VLOG(1) << (is_uninstall ? "Uninstall" : "Install")
<< " distribution: " << p->distribution()->GetDisplayName();
}
- if (!is_uninstall && is_multi_install()) {
- bool need_binaries = false;
- if (FindProduct(BrowserDistribution::CHROME_APP_HOST)) {
- // App Host will happily use Chrome at system level, or binaries at system
- // level, even if app host is user level.
- const ProductState* chrome_state = machine_state.GetProductState(
- true, // system level
- BrowserDistribution::CHROME_BROWSER);
- // If Chrome is at system-level, multi- or otherwise. We'll use it.
- if (!chrome_state) {
- const ProductState* binaries_state = machine_state.GetProductState(
- true, // system level
- BrowserDistribution::CHROME_BINARIES);
- if (!binaries_state)
- need_binaries = true;
- }
- }
-
- // Chrome multi needs Binaries at its own level.
- if (FindProduct(BrowserDistribution::CHROME_BROWSER))
- need_binaries = true;
-
- if (need_binaries && !FindProduct(BrowserDistribution::CHROME_BINARIES)) {
- // Force binaries to be installed/updated.
- Product* p = AddProductFromPreferences(
- BrowserDistribution::CHROME_BINARIES, prefs, machine_state);
- VLOG(1) << "Install distribution: "
- << p->distribution()->GetDisplayName();
- }
- }
-
- if (is_uninstall && prefs.is_multi_install()) {
- if (FindProduct(BrowserDistribution::CHROME_BROWSER)) {
- // Uninstall each product of type |type| listed below based on the
- // presence or absence of |switch_name| in that product's uninstall
- // command.
- const struct {
- BrowserDistribution::Type type;
- const char* switch_name;
- bool switch_expected;
- } conditional_additions[] = {
- // If the App Host is installed, but not the App Launcher, remove it
- // with Chrome. Note however that for system-level Chrome uninstalls,
- // any installed user-level App Host will remain even if there is no
- // App Launcher present (the orphaned app_host.exe will prompt the user
- // for further action when executed).
- { BrowserDistribution::CHROME_APP_HOST,
- switches::kChromeAppLauncher,
- false },
- };
-
- for (size_t i = 0; i < arraysize(conditional_additions); ++i) {
- const ProductState* product_state = machine_state.GetProductState(
- system_install(), conditional_additions[i].type);
- if (product_state != NULL &&
- product_state->uninstall_command().HasSwitch(
- conditional_additions[i].switch_name) ==
- conditional_additions[i].switch_expected &&
- !FindProduct(conditional_additions[i].type)) {
- Product* p = AddProductFromPreferences(
- conditional_additions[i].type, prefs, machine_state);
- VLOG(1) << "Uninstall distribution: "
- << p->distribution()->GetDisplayName();
- }
- }
- }
-
- bool keep_binaries = false;
- // 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);
-
- if (type == BrowserDistribution::CHROME_BINARIES)
- continue;
-
- 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)) {
- // The product is not being uninstalled.
- if (type != BrowserDistribution::CHROME_APP_HOST) {
- keep_binaries = true;
- break;
- } else {
- // If binaries/chrome are at system-level, we can discard them at
- // user-level...
- if (!machine_state.GetProductState(
- true, // system-level
- BrowserDistribution::CHROME_BROWSER) &&
- !machine_state.GetProductState(
- true, // system-level
- BrowserDistribution::CHROME_BINARIES)) {
- // ... otherwise keep them.
- keep_binaries = true;
- break;
- }
- }
- }
-
- // The product is being uninstalled.
- }
- if (!keep_binaries &&
- machine_state.GetProductState(system_install(),
- BrowserDistribution::CHROME_BINARIES)) {
- Product* p = AddProductFromPreferences(
- BrowserDistribution::CHROME_BINARIES, prefs, machine_state);
- VLOG(1) << (is_uninstall ? "Uninstall" : "Install")
- << " distribution: " << p->distribution()->GetDisplayName();
- }
- }
-
BrowserDistribution* operand = NULL;
if (is_uninstall) {
@@ -272,18 +141,11 @@ void InstallerState::Initialize(const base::CommandLine& command_line,
operation_ = MULTI_INSTALL;
}
- // Initial, over, and un-installs will take place under one of the product app
grt (UTC plus 2) 2015/01/28 20:34:07 please retain this comment (just update the parent
huangs 2015/01/28 21:06:58 Done.
- // guids (Chrome, App Host, or Binaries, in order of preference).
if (operand == NULL) {
- BrowserDistribution::Type operand_distribution_type =
- BrowserDistribution::CHROME_BINARIES;
- if (prefs.install_chrome())
- operand_distribution_type = BrowserDistribution::CHROME_BROWSER;
- else if (prefs.install_chrome_app_launcher())
- operand_distribution_type = BrowserDistribution::CHROME_APP_HOST;
-
operand = BrowserDistribution::GetSpecificDistribution(
- operand_distribution_type);
+ prefs.install_chrome() ?
+ BrowserDistribution::CHROME_BROWSER :
+ BrowserDistribution::CHROME_BINARIES);
}
state_key_ = operand->GetStateKey();
@@ -606,7 +468,6 @@ void InstallerState::Clear() {
root_key_ = NULL;
msi_ = false;
verbose_logging_ = false;
- ensure_google_update_present_ = false;
}
bool InstallerState::AnyExistsAndIsInUse(
« no previous file with comments | « chrome/installer/util/installer_state.h ('k') | chrome/installer/util/master_preferences.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698