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

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

Issue 2618583005: Remove support for non-browser products from InstallationState and ProductState. (Closed)
Patch Set: fix 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
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..499bf39637001d69e7cb69dc29780aeb68af9000 100644
--- a/chrome/installer/util/installation_state.cc
+++ b/chrome/installer/util/installation_state.cc
@@ -9,6 +9,7 @@
#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"
@@ -28,30 +29,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 +76,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 +96,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 +121,7 @@ bool ProductState::Initialize(bool system_install,
}
}
- return version_.get() != NULL;
+ return version_.get() != nullptr;
}
base::FilePath ProductState::GetSetupPath() const {
@@ -152,16 +129,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 +198,38 @@ bool ProductState::GetUsageStats(DWORD* usagestats) const {
return true;
}
-InstallationState::InstallationState() {
-}
-
+// Initializes |commands| from the "Commands" subkey of |version_key|.
huangs 2017/01/09 09:09:10 Seems this is only called from within the file? M
grt (UTC plus 2) 2017/01/09 10:11:45 Done.
+// Returns false if there is no "Commands" subkey or on error.
// 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;
-}
+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;
-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);
+ if (commands_key.Open(version_key.Handle(), google_update::kRegCommandsKey,
+ kAccess) == ERROR_SUCCESS)
huangs 2017/01/09 09:09:10 NIT: Not sure if we should use {}? I'll leave to y
grt (UTC plus 2) 2017/01/09 10:11:45 I like them there. Thanks.
+ return commands->Initialize(commands_key, KEY_WOW64_32KEY);
+ return false;
}
-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;
+InstallationState::InstallationState() {}
+
+void InstallationState::Initialize() {
+ user_chrome_.Initialize(false);
huangs 2017/01/09 09:09:10 // TODO(grt): Do something with return value, or r
grt (UTC plus 2) 2017/01/09 10:11:45 Return value of ProductState::Initialize isn't use
+ system_chrome_.Initialize(true);
}
const ProductState* InstallationState::GetProductState(
- bool system_install,
- BrowserDistribution::Type type) const {
+ bool system_install) const {
const ProductState* product_state =
- GetNonVersionedProductState(system_install, type);
- return product_state->version_.get() == NULL ? NULL : product_state;
+ GetNonVersionedProductState(system_install);
+ return product_state->version_.get() ? product_state : nullptr;
}
+
+const ProductState* InstallationState::GetNonVersionedProductState(
+ bool system_install) const {
+ return system_install ? &system_chrome_ : &user_chrome_;
+}
+
} // namespace installer

Powered by Google App Engine
This is Rietveld 408576698