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

Side by Side Diff: chrome/installer/util/work_item_list.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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/installer/util/work_item_list.h" 5 #include "chrome/installer/util/work_item_list.h"
6 6
7 #include "base/files/file_path.h" 7 #include "base/files/file_path.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "chrome/installer/util/callback_work_item.h" 9 #include "chrome/installer/util/callback_work_item.h"
10 #include "chrome/installer/util/copy_reg_key_work_item.h"
11 #include "chrome/installer/util/copy_tree_work_item.h" 10 #include "chrome/installer/util/copy_tree_work_item.h"
12 #include "chrome/installer/util/create_dir_work_item.h" 11 #include "chrome/installer/util/create_dir_work_item.h"
13 #include "chrome/installer/util/create_reg_key_work_item.h" 12 #include "chrome/installer/util/create_reg_key_work_item.h"
14 #include "chrome/installer/util/delete_reg_key_work_item.h" 13 #include "chrome/installer/util/delete_reg_key_work_item.h"
15 #include "chrome/installer/util/delete_reg_value_work_item.h" 14 #include "chrome/installer/util/delete_reg_value_work_item.h"
16 #include "chrome/installer/util/delete_tree_work_item.h" 15 #include "chrome/installer/util/delete_tree_work_item.h"
17 #include "chrome/installer/util/logging_installer.h" 16 #include "chrome/installer/util/logging_installer.h"
18 #include "chrome/installer/util/move_tree_work_item.h" 17 #include "chrome/installer/util/move_tree_work_item.h"
19 #include "chrome/installer/util/self_reg_work_item.h" 18 #include "chrome/installer/util/self_reg_work_item.h"
20 #include "chrome/installer/util/set_reg_value_work_item.h" 19 #include "chrome/installer/util/set_reg_value_work_item.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 list_.push_back(work_item); 73 list_.push_back(work_item);
75 } 74 }
76 75
77 WorkItem* WorkItemList::AddCallbackWorkItem( 76 WorkItem* WorkItemList::AddCallbackWorkItem(
78 base::Callback<bool(const CallbackWorkItem&)> callback) { 77 base::Callback<bool(const CallbackWorkItem&)> callback) {
79 WorkItem* item = WorkItem::CreateCallbackWorkItem(callback); 78 WorkItem* item = WorkItem::CreateCallbackWorkItem(callback);
80 AddWorkItem(item); 79 AddWorkItem(item);
81 return item; 80 return item;
82 } 81 }
83 82
84 WorkItem* WorkItemList::AddCopyRegKeyWorkItem(
85 HKEY predefined_root,
86 const std::wstring& source_key_path,
87 const std::wstring& dest_key_path,
88 CopyOverWriteOption overwrite_option) {
89 WorkItem* item = WorkItem::CreateCopyRegKeyWorkItem(
90 predefined_root, source_key_path, dest_key_path, overwrite_option);
91 AddWorkItem(item);
92 return item;
93 }
94
95 WorkItem* WorkItemList::AddCopyTreeWorkItem( 83 WorkItem* WorkItemList::AddCopyTreeWorkItem(
96 const std::wstring& source_path, 84 const std::wstring& source_path,
97 const std::wstring& dest_path, 85 const std::wstring& dest_path,
98 const std::wstring& temp_dir, 86 const std::wstring& temp_dir,
99 CopyOverWriteOption overwrite_option, 87 CopyOverWriteOption overwrite_option,
100 const std::wstring& alternative_path) { 88 const std::wstring& alternative_path) {
101 WorkItem* item = WorkItem::CreateCopyTreeWorkItem( 89 WorkItem* item = WorkItem::CreateCopyTreeWorkItem(
102 base::FilePath(source_path), 90 base::FilePath(source_path),
103 base::FilePath(dest_path), 91 base::FilePath(dest_path),
104 base::FilePath(temp_dir), 92 base::FilePath(temp_dir),
105 overwrite_option, 93 overwrite_option,
106 base::FilePath(alternative_path)); 94 base::FilePath(alternative_path));
107 AddWorkItem(item); 95 AddWorkItem(item);
108 return item; 96 return item;
109 } 97 }
110 98
111 WorkItem* WorkItemList::AddCreateDirWorkItem(const base::FilePath& path) { 99 WorkItem* WorkItemList::AddCreateDirWorkItem(const base::FilePath& path) {
112 WorkItem* item = WorkItem::CreateCreateDirWorkItem(path); 100 WorkItem* item = WorkItem::CreateCreateDirWorkItem(path);
113 AddWorkItem(item); 101 AddWorkItem(item);
114 return item; 102 return item;
115 } 103 }
116 104
117 WorkItem* WorkItemList::AddCreateRegKeyWorkItem(HKEY predefined_root, 105 WorkItem* WorkItemList::AddCreateRegKeyWorkItem(HKEY predefined_root,
118 const std::wstring& path) { 106 const std::wstring& path,
119 WorkItem* item = WorkItem::CreateCreateRegKeyWorkItem(predefined_root, path); 107 REGSAM wow64_access) {
108 WorkItem* item =
109 WorkItem::CreateCreateRegKeyWorkItem(predefined_root, path, wow64_access);
120 AddWorkItem(item); 110 AddWorkItem(item);
121 return item; 111 return item;
122 } 112 }
123 113
124 WorkItem* WorkItemList::AddDeleteRegKeyWorkItem(HKEY predefined_root, 114 WorkItem* WorkItemList::AddDeleteRegKeyWorkItem(HKEY predefined_root,
125 const std::wstring& path) { 115 const std::wstring& path,
126 WorkItem* item = WorkItem::CreateDeleteRegKeyWorkItem(predefined_root, path); 116 REGSAM wow64_access) {
117 WorkItem* item =
118 WorkItem::CreateDeleteRegKeyWorkItem(predefined_root, path, wow64_access);
127 AddWorkItem(item); 119 AddWorkItem(item);
128 return item; 120 return item;
129 } 121 }
130 122
131 WorkItem* WorkItemList::AddDeleteRegValueWorkItem( 123 WorkItem* WorkItemList::AddDeleteRegValueWorkItem(
132 HKEY predefined_root, 124 HKEY predefined_root,
133 const std::wstring& key_path, 125 const std::wstring& key_path,
126 REGSAM wow64_access,
134 const std::wstring& value_name) { 127 const std::wstring& value_name) {
135 WorkItem* item = WorkItem::CreateDeleteRegValueWorkItem(predefined_root, 128 WorkItem* item = WorkItem::CreateDeleteRegValueWorkItem(
136 key_path, value_name); 129 predefined_root, key_path, wow64_access, value_name);
137 AddWorkItem(item); 130 AddWorkItem(item);
138 return item; 131 return item;
139 } 132 }
140 133
141 WorkItem* WorkItemList::AddDeleteTreeWorkItem( 134 WorkItem* WorkItemList::AddDeleteTreeWorkItem(
142 const base::FilePath& root_path, 135 const base::FilePath& root_path,
143 const base::FilePath& temp_path, 136 const base::FilePath& temp_path,
144 const std::vector<base::FilePath>& key_paths) { 137 const std::vector<base::FilePath>& key_paths) {
145 WorkItem* item = WorkItem::CreateDeleteTreeWorkItem(root_path, temp_path, 138 WorkItem* item = WorkItem::CreateDeleteTreeWorkItem(root_path, temp_path,
146 key_paths); 139 key_paths);
(...skipping 12 matching lines...) Expand all
159 const std::wstring& temp_dir, 152 const std::wstring& temp_dir,
160 MoveTreeOption duplicate_option) { 153 MoveTreeOption duplicate_option) {
161 WorkItem* item = WorkItem::CreateMoveTreeWorkItem(base::FilePath(source_path), 154 WorkItem* item = WorkItem::CreateMoveTreeWorkItem(base::FilePath(source_path),
162 base::FilePath(dest_path), 155 base::FilePath(dest_path),
163 base::FilePath(temp_dir), 156 base::FilePath(temp_dir),
164 duplicate_option); 157 duplicate_option);
165 AddWorkItem(item); 158 AddWorkItem(item);
166 return item; 159 return item;
167 } 160 }
168 161
169 WorkItem* WorkItemList::AddSetRegValueWorkItem( 162 WorkItem* WorkItemList::AddSetRegValueWorkItem(HKEY predefined_root,
170 HKEY predefined_root, 163 const std::wstring& key_path,
171 const std::wstring& key_path, 164 REGSAM wow64_access,
172 const std::wstring& value_name, 165 const std::wstring& value_name,
173 const std::wstring& value_data, 166 const std::wstring& value_data,
174 bool overwrite) { 167 bool overwrite) {
175 WorkItem* item = WorkItem::CreateSetRegValueWorkItem(predefined_root, 168 WorkItem* item = WorkItem::CreateSetRegValueWorkItem(predefined_root,
176 key_path, 169 key_path,
170 wow64_access,
177 value_name, 171 value_name,
178 value_data, 172 value_data,
179 overwrite); 173 overwrite);
180 AddWorkItem(item); 174 AddWorkItem(item);
181 return item; 175 return item;
182 } 176 }
183 177
184 WorkItem* WorkItemList::AddSetRegValueWorkItem(HKEY predefined_root, 178 WorkItem* WorkItemList::AddSetRegValueWorkItem(HKEY predefined_root,
185 const std::wstring& key_path, 179 const std::wstring& key_path,
180 REGSAM wow64_access,
186 const std::wstring& value_name, 181 const std::wstring& value_name,
187 DWORD value_data, 182 DWORD value_data,
188 bool overwrite) { 183 bool overwrite) {
189 WorkItem* item = WorkItem::CreateSetRegValueWorkItem(predefined_root, 184 WorkItem* item = WorkItem::CreateSetRegValueWorkItem(predefined_root,
190 key_path, 185 key_path,
186 wow64_access,
191 value_name, 187 value_name,
192 value_data, 188 value_data,
193 overwrite); 189 overwrite);
194 AddWorkItem(item); 190 AddWorkItem(item);
195 return item; 191 return item;
196 } 192 }
197 193
198 WorkItem* WorkItemList::AddSetRegValueWorkItem(HKEY predefined_root, 194 WorkItem* WorkItemList::AddSetRegValueWorkItem(HKEY predefined_root,
199 const std::wstring& key_path, 195 const std::wstring& key_path,
196 REGSAM wow64_access,
200 const std::wstring& value_name, 197 const std::wstring& value_name,
201 int64 value_data, 198 int64 value_data,
202 bool overwrite) { 199 bool overwrite) {
203 WorkItem* item = reinterpret_cast<WorkItem*>( 200 WorkItem* item = reinterpret_cast<WorkItem*>(
204 WorkItem::CreateSetRegValueWorkItem(predefined_root, key_path, value_name, 201 WorkItem::CreateSetRegValueWorkItem(predefined_root,
205 value_data, overwrite)); 202 key_path,
203 wow64_access,
204 value_name,
205 value_data,
206 overwrite));
206 AddWorkItem(item); 207 AddWorkItem(item);
207 return item; 208 return item;
208 } 209 }
209 210
210 WorkItem* WorkItemList::AddSelfRegWorkItem(const std::wstring& dll_path, 211 WorkItem* WorkItemList::AddSelfRegWorkItem(const std::wstring& dll_path,
211 bool do_register, 212 bool do_register,
212 bool user_level_registration) { 213 bool user_level_registration) {
213 WorkItem* item = WorkItem::CreateSelfRegWorkItem(dll_path, do_register, 214 WorkItem* item = WorkItem::CreateSelfRegWorkItem(dll_path, do_register,
214 user_level_registration); 215 user_level_registration);
215 AddWorkItem(item); 216 AddWorkItem(item);
(...skipping 24 matching lines...) Expand all
240 if (result) 241 if (result)
241 VLOG(1) << "NoRollbackWorkItemList: list execution succeeded"; 242 VLOG(1) << "NoRollbackWorkItemList: list execution succeeded";
242 243
243 status_ = LIST_EXECUTED; 244 status_ = LIST_EXECUTED;
244 return result; 245 return result;
245 } 246 }
246 247
247 void NoRollbackWorkItemList::Rollback() { 248 void NoRollbackWorkItemList::Rollback() {
248 // Ignore rollback. 249 // Ignore rollback.
249 } 250 }
OLDNEW
« no previous file with comments | « chrome/installer/util/work_item_list.h ('k') | chrome/installer/util/work_item_list_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698