Index: chrome/installer/util/delete_reg_key_work_item.h |
=================================================================== |
--- chrome/installer/util/delete_reg_key_work_item.h (revision 76372) |
+++ chrome/installer/util/delete_reg_key_work_item.h (working copy) |
@@ -11,9 +11,12 @@ |
#include <string> |
#include "base/basictypes.h" |
+#include "base/scoped_ptr.h" |
#include "chrome/installer/util/work_item.h" |
-// A WorkItem subclass that deletes a registry key at the given path. |
+// A WorkItem subclass that deletes a registry key at the given path. Be aware |
+// that in the event of rollback the key's values and subkeys are restored but |
+// the key and its subkeys take on their default security descriptors. |
class DeleteRegKeyWorkItem : public WorkItem { |
public: |
virtual ~DeleteRegKeyWorkItem(); |
@@ -23,6 +26,7 @@ |
virtual void Rollback(); |
private: |
+ class RegKeyBackup; |
friend class WorkItem; |
DeleteRegKeyWorkItem(HKEY predefined_root, const std::wstring& path); |
@@ -34,10 +38,9 @@ |
// Path of the key to be deleted. |
std::wstring path_; |
- // Path in the registry that the key is backed up to. |
- std::wstring backup_path_; |
+ // Backup of the deleted key. |
+ scoped_ptr<RegKeyBackup> backup_; |
- private: |
DISALLOW_COPY_AND_ASSIGN(DeleteRegKeyWorkItem); |
}; |