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

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

Issue 282363003: Add WOW64 support to the installer registry work items (Closed) Base URL: https://chromium.googlesource.com/chromium/src
Patch Set: nits. fix call to DeleteRegistryKey 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/delete_reg_value_work_item.cc
diff --git a/chrome/installer/util/delete_reg_value_work_item.cc b/chrome/installer/util/delete_reg_value_work_item.cc
index 2d2da41d8b6d022bc91f57e1c88dcf5eda094d27..5c859cc3c446c0cc1a3899015a2a665a448b2602 100644
--- a/chrome/installer/util/delete_reg_value_work_item.cc
+++ b/chrome/installer/util/delete_reg_value_work_item.cc
@@ -13,12 +13,17 @@ using base::win::RegKey;
DeleteRegValueWorkItem::DeleteRegValueWorkItem(HKEY predefined_root,
const std::wstring& key_path,
+ REGSAM wow64_access,
const std::wstring& value_name)
: predefined_root_(predefined_root),
key_path_(key_path),
value_name_(value_name),
+ wow64_access_(wow64_access),
previous_type_(0),
status_(DELETE_VALUE) {
+ DCHECK(wow64_access == 0 ||
+ wow64_access == KEY_WOW64_32KEY ||
+ wow64_access == KEY_WOW64_64KEY);
}
DeleteRegValueWorkItem::~DeleteRegValueWorkItem() {
@@ -36,8 +41,9 @@ bool DeleteRegValueWorkItem::Do() {
RegKey key;
DWORD type = 0;
DWORD size = 0;
- LONG result = key.Open(predefined_root_, key_path_.c_str(),
- KEY_READ | KEY_WRITE);
+ LONG result = key.Open(predefined_root_,
+ key_path_.c_str(),
+ KEY_READ | KEY_WRITE | wow64_access_);
if (result == ERROR_SUCCESS)
result = key.ReadValue(value_name_.c_str(), NULL, &size, &type);
@@ -83,8 +89,9 @@ void DeleteRegValueWorkItem::Rollback() {
// At this point only possible state is VALUE_DELETED.
RegKey key;
- LONG result = key.Open(predefined_root_, key_path_.c_str(),
- KEY_READ | KEY_WRITE);
+ LONG result = key.Open(predefined_root_,
+ key_path_.c_str(),
+ KEY_READ | KEY_WRITE | wow64_access_);
if (result == ERROR_SUCCESS) {
// try to restore the previous value
DWORD previous_size = static_cast<DWORD>(previous_value_.size());
« no previous file with comments | « chrome/installer/util/delete_reg_value_work_item.h ('k') | chrome/installer/util/delete_reg_value_work_item_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698