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

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

Issue 282363003: Add WOW64 support to the installer registry work items (Closed) Base URL: https://chromium.googlesource.com/chromium/src
Patch Set: add wow64 logic to installer_util. mini_installer tests. Created 6 years, 7 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/shell_util.cc
diff --git a/chrome/installer/util/shell_util.cc b/chrome/installer/util/shell_util.cc
index 9e705cce2f70c808caed8aa1ab39e7c08c42f621..0969b87e6e1daac96393a2be248627a4490086b0 100644
--- a/chrome/installer/util/shell_util.cc
+++ b/chrome/installer/util/shell_util.cc
@@ -48,6 +48,7 @@
#include "chrome/installer/util/master_preferences.h"
#include "chrome/installer/util/master_preferences_constants.h"
#include "chrome/installer/util/util_constants.h"
+#include "chrome/installer/util/work_item.h"
#include "installer_util_strings.h" // NOLINT
@@ -531,11 +532,13 @@ class RegistryEntry {
// Generate work_item tasks required to create current registry entry and
// add them to the given work item list.
void AddToWorkItemList(HKEY root, WorkItemList *items) const {
- items->AddCreateRegKeyWorkItem(root, key_path_);
+ items->AddCreateRegKeyWorkItem(root, key_path_, wow64_access_);
if (is_string_) {
- items->AddSetRegValueWorkItem(root, key_path_, name_, value_, true);
+ items->AddSetRegValueWorkItem(
+ root, key_path_, name_, value_, true, wow64_access_);
} else {
- items->AddSetRegValueWorkItem(root, key_path_, name_, int_value_, true);
+ items->AddSetRegValueWorkItem(
+ root, key_path_, name_, int_value_, true, wow64_access_);
}
}
@@ -575,26 +578,39 @@ class RegistryEntry {
// Create a object that represent default value of a key
RegistryEntry(const base::string16& key_path, const base::string16& value)
- : key_path_(key_path), name_(),
- is_string_(true), value_(value), int_value_(0) {
- }
+ : key_path_(key_path),
+ name_(),
+ wow64_access_(0), // TODO(wfh): Add support for WOW64 registry view.
grt (UTC plus 2) 2014/05/21 16:41:05 i don't know that this class will ever need to ove
Will Harris 2014/05/21 23:23:16 Done. I think 64-bit installers will have to remo
grt (UTC plus 2) 2014/05/22 01:37:44 Ah, good point. I'd forgotten about deleting the o
+ is_string_(true),
+ value_(value),
+ int_value_(0) {}
// Create a object that represent a key of type REG_SZ
- RegistryEntry(const base::string16& key_path, const base::string16& name,
+ RegistryEntry(const base::string16& key_path,
+ const base::string16& name,
const base::string16& value)
- : key_path_(key_path), name_(name),
- is_string_(true), value_(value), int_value_(0) {
- }
+ : key_path_(key_path),
+ name_(name),
+ wow64_access_(0),
+ is_string_(true),
+ value_(value),
+ int_value_(0) {}
// Create a object that represent a key of integer type
- RegistryEntry(const base::string16& key_path, const base::string16& name,
+ RegistryEntry(const base::string16& key_path,
+ const base::string16& name,
DWORD value)
- : key_path_(key_path), name_(name),
- is_string_(false), value_(), int_value_(value) {
- }
+ : key_path_(key_path),
+ name_(name),
+ wow64_access_(0),
+ is_string_(false),
+ value_(),
+ int_value_(value) {}
base::string16 key_path_; // key path for the registry entry
base::string16 name_; // name of the registry entry
+ // Which view of the registry to use.
+ REGSAM wow64_access_;
bool is_string_; // true if current registry entry is of type REG_SZ
base::string16 value_; // string value (useful if is_string_ = true)
DWORD int_value_; // integer value (useful if is_string_ = false)
@@ -1020,7 +1036,8 @@ void RemoveRunVerbOnWindows8(BrowserDistribution* dist,
run_verb_key.append(ShellUtil::kRegShellPath);
run_verb_key.push_back(base::FilePath::kSeparators[0]);
run_verb_key.append(ShellUtil::kRegVerbRun);
- InstallUtil::DeleteRegistryKey(root_key, run_verb_key);
+ InstallUtil::DeleteRegistryKey(root_key, run_verb_key,
+ WorkItem::kWow64Default);
}
}

Powered by Google App Engine
This is Rietveld 408576698