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

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

Issue 2618583005: Remove support for non-browser products from InstallationState and ProductState. (Closed)
Patch Set: sync to position 442664 Created 3 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/installation_state.h ('k') | chrome/installer/util/product_state_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/installer/util/installation_state.cc
diff --git a/chrome/installer/util/installation_state.cc b/chrome/installer/util/installation_state.cc
index 712e12ee2af144844047f9c65c1b2adf27b4983c..271f513e0b7ef13127ea362a9253af2be3664c90 100644
--- a/chrome/installer/util/installation_state.cc
+++ b/chrome/installer/util/installation_state.cc
@@ -9,11 +9,31 @@
#include "base/strings/utf_string_conversions.h"
#include "base/version.h"
#include "base/win/registry.h"
+#include "chrome/installer/util/browser_distribution.h"
#include "chrome/installer/util/google_update_constants.h"
#include "chrome/installer/util/install_util.h"
namespace installer {
+namespace {
+
+// Initializes |commands| from the "Commands" subkey of |version_key|. Returns
+// false if there is no "Commands" subkey or on error.
+bool InitializeCommands(const base::win::RegKey& version_key,
+ AppCommands* commands) {
+ static const DWORD kAccess =
+ KEY_ENUMERATE_SUB_KEYS | KEY_QUERY_VALUE | KEY_WOW64_32KEY;
+ base::win::RegKey commands_key;
+
+ if (commands_key.Open(version_key.Handle(), google_update::kRegCommandsKey,
+ kAccess) == ERROR_SUCCESS) {
+ return commands->Initialize(commands_key, KEY_WOW64_32KEY);
+ }
+ return false;
+}
+
+} // namespace
+
ProductState::ProductState()
: uninstall_command_(base::CommandLine::NO_PROGRAM),
eula_accepted_(0),
@@ -28,30 +48,10 @@ ProductState::ProductState()
ProductState::~ProductState() {
}
-bool ProductState::Initialize(bool system_install,
- BrowserDistribution::Type type) {
- return Initialize(system_install,
- BrowserDistribution::GetSpecificDistribution(type));
-}
-
-// Initializes |commands| from the "Commands" subkey of |version_key|.
-// Returns false if there is no "Commands" subkey or on error.
-// static
-bool ProductState::InitializeCommands(const base::win::RegKey& version_key,
- AppCommands* commands) {
- static const DWORD kAccess =
- KEY_ENUMERATE_SUB_KEYS | KEY_QUERY_VALUE | KEY_WOW64_32KEY;
- base::win::RegKey commands_key;
-
- if (commands_key.Open(version_key.Handle(), google_update::kRegCommandsKey,
- kAccess) == ERROR_SUCCESS)
- return commands->Initialize(commands_key, KEY_WOW64_32KEY);
- return false;
-}
-
-bool ProductState::Initialize(bool system_install,
- BrowserDistribution* distribution) {
+bool ProductState::Initialize(bool system_install) {
static const DWORD kAccess = KEY_QUERY_VALUE | KEY_WOW64_32KEY;
+ const BrowserDistribution* distribution =
+ BrowserDistribution::GetDistribution();
const std::wstring version_key(distribution->GetVersionKey());
const std::wstring state_key(distribution->GetStateKey());
const HKEY root_key = system_install ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER;
@@ -95,9 +95,7 @@ bool ProductState::Initialize(bool system_install,
// Read in the brand code, it may be absent
key.ReadValue(google_update::kRegBrandField, &brand_);
- // "UninstallString" will be absent for the multi-installer package.
key.ReadValue(kUninstallStringField, &setup_path);
- // "UninstallArguments" will be absent for the multi-installer package.
key.ReadValue(kUninstallArgumentsField, &uninstall_arguments);
InstallUtil::ComposeCommandLine(setup_path, uninstall_arguments,
&uninstall_command_);
@@ -117,11 +115,9 @@ bool ProductState::Initialize(bool system_install,
DWORD dw_value = 0;
msi_ = (key.ReadValueDW(google_update::kRegMSIField,
&dw_value) == ERROR_SUCCESS) && (dw_value != 0);
- // Multi-install is implied or is derived from the command-line.
- if (distribution->GetType() == BrowserDistribution::CHROME_BINARIES)
- multi_install_ = true;
- else
- multi_install_ = uninstall_command_.HasSwitch(switches::kMultiInstall);
+ // Multi-install is a legacy option that is read for the sole purpose of
+ // migrating clients away from it.
+ multi_install_ = uninstall_command_.HasSwitch(switches::kMultiInstall);
}
// Read from the ClientStateMedium key. Values here override those in
@@ -144,7 +140,7 @@ bool ProductState::Initialize(bool system_install,
}
}
- return version_.get() != NULL;
+ return version_.get() != nullptr;
}
base::FilePath ProductState::GetSetupPath() const {
@@ -152,16 +148,17 @@ base::FilePath ProductState::GetSetupPath() const {
}
const base::Version& ProductState::version() const {
- DCHECK(version_.get() != NULL);
+ DCHECK(version_);
return *version_;
}
ProductState& ProductState::CopyFrom(const ProductState& other) {
channel_.set_value(other.channel_.value());
- version_.reset(
- other.version_.get() ? new base::Version(*other.version_) : NULL);
- old_version_.reset(
- other.old_version_.get() ? new base::Version(*other.old_version_) : NULL);
+ version_.reset(other.version_.get() ? new base::Version(*other.version_)
+ : nullptr);
+ old_version_.reset(other.old_version_.get()
+ ? new base::Version(*other.old_version_)
+ : nullptr);
brand_ = other.brand_;
rename_cmd_ = other.rename_cmd_;
uninstall_command_ = other.uninstall_command_;
@@ -220,55 +217,23 @@ bool ProductState::GetUsageStats(DWORD* usagestats) const {
return true;
}
-InstallationState::InstallationState() {
-}
+InstallationState::InstallationState() {}
-// static
-int InstallationState::IndexFromDistType(BrowserDistribution::Type type) {
- static_assert(BrowserDistribution::CHROME_BROWSER == CHROME_BROWSER_INDEX,
- "unexpected_chrome_browser_distribution_value_");
- static_assert(BrowserDistribution::CHROME_FRAME == CHROME_FRAME_INDEX,
- "unexpected_chrome_frame_distribution_value_");
- static_assert(BrowserDistribution::CHROME_BINARIES == CHROME_BINARIES_INDEX,
- "unexpected_chrome_frame_distribution_value_");
- DCHECK(type == BrowserDistribution::CHROME_BROWSER ||
- type == BrowserDistribution::CHROME_FRAME ||
- type == BrowserDistribution::CHROME_BINARIES);
- return type;
+void InstallationState::Initialize() {
+ user_chrome_.Initialize(false);
+ system_chrome_.Initialize(true);
}
-void InstallationState::Initialize() {
- BrowserDistribution* distribution;
-
- distribution = BrowserDistribution::GetSpecificDistribution(
- BrowserDistribution::CHROME_BROWSER);
- user_products_[CHROME_BROWSER_INDEX].Initialize(false, distribution);
- system_products_[CHROME_BROWSER_INDEX].Initialize(true, distribution);
-
- distribution = BrowserDistribution::GetSpecificDistribution(
- BrowserDistribution::CHROME_FRAME);
- user_products_[CHROME_FRAME_INDEX].Initialize(false, distribution);
- system_products_[CHROME_FRAME_INDEX].Initialize(true, distribution);
-
- distribution = BrowserDistribution::GetSpecificDistribution(
- BrowserDistribution::CHROME_BINARIES);
- user_products_[CHROME_BINARIES_INDEX].Initialize(false, distribution);
- system_products_[CHROME_BINARIES_INDEX].Initialize(true, distribution);
+const ProductState* InstallationState::GetProductState(
+ bool system_install) const {
+ const ProductState* product_state =
+ GetNonVersionedProductState(system_install);
+ return product_state->version_.get() ? product_state : nullptr;
}
const ProductState* InstallationState::GetNonVersionedProductState(
- bool system_install,
- BrowserDistribution::Type type) const {
- const ProductState& product_state = (system_install ? system_products_ :
- user_products_)[IndexFromDistType(type)];
- return &product_state;
+ bool system_install) const {
+ return system_install ? &system_chrome_ : &user_chrome_;
}
-const ProductState* InstallationState::GetProductState(
- bool system_install,
- BrowserDistribution::Type type) const {
- const ProductState* product_state =
- GetNonVersionedProductState(system_install, type);
- return product_state->version_.get() == NULL ? NULL : product_state;
-}
} // namespace installer
« no previous file with comments | « chrome/installer/util/installation_state.h ('k') | chrome/installer/util/product_state_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698