| Index: chrome/installer/util/work_item.h | 
| diff --git a/chrome/installer/util/work_item.h b/chrome/installer/util/work_item.h | 
| index 30118609f6a48c68ecc822386939133c0e27a49c..b19f5c2254e36674d90408504161b376b9c3fd26 100644 | 
| --- a/chrome/installer/util/work_item.h | 
| +++ b/chrome/installer/util/work_item.h | 
| @@ -18,7 +18,6 @@ | 
| #include "base/callback_forward.h" | 
|  | 
| class CallbackWorkItem; | 
| -class CopyRegKeyWorkItem; | 
| class CopyTreeWorkItem; | 
| class CreateDirWorkItem; | 
| class CreateRegKeyWorkItem; | 
| @@ -38,6 +37,15 @@ class FilePath; | 
| // sequence of actions during install/update/uninstall. | 
| class WorkItem { | 
| public: | 
| +  // All registry operations can be instructed to operate on a specific view | 
| +  // of the registry by specifying a REGSAM value to the wow64_access parameter. | 
| +  // The wow64_access parameter can be one of: | 
| +  // KEY_WOW64_32KEY - Operate on the 32-bit view. | 
| +  // KEY_WOW64_64KEY - Operate on the 64-bit view. | 
| +  // kWow64Default   - Operate on the default view (e.g. 32-bit on 32-bit | 
| +  //                   systems, and 64-bit on 64-bit systems). | 
| +  // See http://msdn.microsoft.com/en-us/library/windows/desktop/aa384129.aspx | 
| +  static const REGSAM kWow64Default = 0; | 
| // Possible states | 
| enum CopyOverWriteOption { | 
| ALWAYS,  // Always overwrite regardless of what existed before. | 
| @@ -67,13 +75,6 @@ class WorkItem { | 
| static CallbackWorkItem* CreateCallbackWorkItem( | 
| base::Callback<bool(const CallbackWorkItem&)> callback); | 
|  | 
| -  // Create a CopyRegKeyWorkItem that recursively copies a given registry key. | 
| -  static CopyRegKeyWorkItem* CreateCopyRegKeyWorkItem( | 
| -      HKEY predefined_root, | 
| -      const std::wstring& source_key_path, | 
| -      const std::wstring& dest_key_path, | 
| -      CopyOverWriteOption overwrite_option); | 
| - | 
| // Create a CopyTreeWorkItem that recursively copies a file system hierarchy | 
| // from source path to destination path. | 
| // * If overwrite_option is ALWAYS, the created CopyTreeWorkItem always | 
| @@ -93,17 +94,22 @@ class WorkItem { | 
| // Create a CreateRegKeyWorkItem that creates a registry key at the given | 
| // path. | 
| static CreateRegKeyWorkItem* CreateCreateRegKeyWorkItem( | 
| -      HKEY predefined_root, const std::wstring& path); | 
| +      HKEY predefined_root, | 
| +      const std::wstring& path, | 
| +      REGSAM wow64_access); | 
|  | 
| // Create a DeleteRegKeyWorkItem that deletes a registry key at the given | 
| // path. | 
| static DeleteRegKeyWorkItem* CreateDeleteRegKeyWorkItem( | 
| -      HKEY predefined_root, const std::wstring& path); | 
| +      HKEY predefined_root, | 
| +      const std::wstring& path, | 
| +      REGSAM wow64_access); | 
|  | 
| // Create a DeleteRegValueWorkItem that deletes a registry value | 
| static DeleteRegValueWorkItem* CreateDeleteRegValueWorkItem( | 
| HKEY predefined_root, | 
| const std::wstring& key_path, | 
| +      REGSAM wow64_access, | 
| const std::wstring& value_name); | 
|  | 
| // Create a DeleteTreeWorkItem that recursively deletes a file system | 
| @@ -127,6 +133,7 @@ class WorkItem { | 
| static SetRegValueWorkItem* CreateSetRegValueWorkItem( | 
| HKEY predefined_root, | 
| const std::wstring& key_path, | 
| +      REGSAM wow64_access, | 
| const std::wstring& value_name, | 
| const std::wstring& value_data, | 
| bool overwrite); | 
| @@ -136,16 +143,20 @@ class WorkItem { | 
| static SetRegValueWorkItem* CreateSetRegValueWorkItem( | 
| HKEY predefined_root, | 
| const std::wstring& key_path, | 
| +      REGSAM wow64_access, | 
| const std::wstring& value_name, | 
| -      DWORD value_data, bool overwrite); | 
| +      DWORD value_data, | 
| +      bool overwrite); | 
|  | 
| // Create a SetRegValueWorkItem that sets a registry value with REG_QWORD type | 
| // at the key with specified path. | 
| static SetRegValueWorkItem* CreateSetRegValueWorkItem( | 
| HKEY predefined_root, | 
| const std::wstring& key_path, | 
| +      REGSAM wow64_access, | 
| const std::wstring& value_name, | 
| -      int64 value_data, bool overwrite); | 
| +      int64 value_data, | 
| +      bool overwrite); | 
|  | 
| // Add a SelfRegWorkItem that registers or unregisters a DLL at the | 
| // specified path. | 
|  |