OLD | NEW |
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" | 10 #include "chrome/installer/util/copy_reg_key_work_item.h" |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 base::Callback<bool(const CallbackWorkItem&)> callback) { | 78 base::Callback<bool(const CallbackWorkItem&)> callback) { |
79 WorkItem* item = WorkItem::CreateCallbackWorkItem(callback); | 79 WorkItem* item = WorkItem::CreateCallbackWorkItem(callback); |
80 AddWorkItem(item); | 80 AddWorkItem(item); |
81 return item; | 81 return item; |
82 } | 82 } |
83 | 83 |
84 WorkItem* WorkItemList::AddCopyRegKeyWorkItem( | 84 WorkItem* WorkItemList::AddCopyRegKeyWorkItem( |
85 HKEY predefined_root, | 85 HKEY predefined_root, |
86 const std::wstring& source_key_path, | 86 const std::wstring& source_key_path, |
87 const std::wstring& dest_key_path, | 87 const std::wstring& dest_key_path, |
88 CopyOverWriteOption overwrite_option) { | 88 CopyOverWriteOption overwrite_option, |
| 89 RegWow64ViewOption reg_wow64_option) { |
89 WorkItem* item = WorkItem::CreateCopyRegKeyWorkItem( | 90 WorkItem* item = WorkItem::CreateCopyRegKeyWorkItem( |
90 predefined_root, source_key_path, dest_key_path, overwrite_option); | 91 predefined_root, |
| 92 source_key_path, |
| 93 dest_key_path, |
| 94 overwrite_option, |
| 95 reg_wow64_option); |
91 AddWorkItem(item); | 96 AddWorkItem(item); |
92 return item; | 97 return item; |
93 } | 98 } |
94 | 99 |
95 WorkItem* WorkItemList::AddCopyTreeWorkItem( | 100 WorkItem* WorkItemList::AddCopyTreeWorkItem( |
96 const std::wstring& source_path, | 101 const std::wstring& source_path, |
97 const std::wstring& dest_path, | 102 const std::wstring& dest_path, |
98 const std::wstring& temp_dir, | 103 const std::wstring& temp_dir, |
99 CopyOverWriteOption overwrite_option, | 104 CopyOverWriteOption overwrite_option, |
100 const std::wstring& alternative_path) { | 105 const std::wstring& alternative_path) { |
101 WorkItem* item = WorkItem::CreateCopyTreeWorkItem( | 106 WorkItem* item = WorkItem::CreateCopyTreeWorkItem( |
102 base::FilePath(source_path), | 107 base::FilePath(source_path), |
103 base::FilePath(dest_path), | 108 base::FilePath(dest_path), |
104 base::FilePath(temp_dir), | 109 base::FilePath(temp_dir), |
105 overwrite_option, | 110 overwrite_option, |
106 base::FilePath(alternative_path)); | 111 base::FilePath(alternative_path)); |
107 AddWorkItem(item); | 112 AddWorkItem(item); |
108 return item; | 113 return item; |
109 } | 114 } |
110 | 115 |
111 WorkItem* WorkItemList::AddCreateDirWorkItem(const base::FilePath& path) { | 116 WorkItem* WorkItemList::AddCreateDirWorkItem(const base::FilePath& path) { |
112 WorkItem* item = WorkItem::CreateCreateDirWorkItem(path); | 117 WorkItem* item = WorkItem::CreateCreateDirWorkItem(path); |
113 AddWorkItem(item); | 118 AddWorkItem(item); |
114 return item; | 119 return item; |
115 } | 120 } |
116 | 121 |
117 WorkItem* WorkItemList::AddCreateRegKeyWorkItem(HKEY predefined_root, | 122 WorkItem* WorkItemList::AddCreateRegKeyWorkItem( |
118 const std::wstring& path) { | 123 HKEY predefined_root, |
119 WorkItem* item = WorkItem::CreateCreateRegKeyWorkItem(predefined_root, path); | 124 const std::wstring& path, |
| 125 RegWow64ViewOption reg_wow64_option) { |
| 126 WorkItem* item = WorkItem::CreateCreateRegKeyWorkItem( |
| 127 predefined_root, |
| 128 path, |
| 129 reg_wow64_option); |
120 AddWorkItem(item); | 130 AddWorkItem(item); |
121 return item; | 131 return item; |
122 } | 132 } |
123 | 133 |
124 WorkItem* WorkItemList::AddDeleteRegKeyWorkItem(HKEY predefined_root, | 134 WorkItem* WorkItemList::AddDeleteRegKeyWorkItem( |
125 const std::wstring& path) { | 135 HKEY predefined_root, |
126 WorkItem* item = WorkItem::CreateDeleteRegKeyWorkItem(predefined_root, path); | 136 const std::wstring& path, |
| 137 RegWow64ViewOption reg_wow64_option) { |
| 138 WorkItem* item = WorkItem::CreateDeleteRegKeyWorkItem( |
| 139 predefined_root, |
| 140 path, |
| 141 reg_wow64_option); |
127 AddWorkItem(item); | 142 AddWorkItem(item); |
128 return item; | 143 return item; |
129 } | 144 } |
130 | 145 |
131 WorkItem* WorkItemList::AddDeleteRegValueWorkItem( | 146 WorkItem* WorkItemList::AddDeleteRegValueWorkItem( |
132 HKEY predefined_root, | 147 HKEY predefined_root, |
133 const std::wstring& key_path, | 148 const std::wstring& key_path, |
134 const std::wstring& value_name) { | 149 const std::wstring& value_name, |
135 WorkItem* item = WorkItem::CreateDeleteRegValueWorkItem(predefined_root, | 150 RegWow64ViewOption reg_wow64_option) { |
136 key_path, value_name); | 151 WorkItem* item = WorkItem::CreateDeleteRegValueWorkItem( |
| 152 predefined_root, |
| 153 key_path, |
| 154 value_name, |
| 155 reg_wow64_option); |
137 AddWorkItem(item); | 156 AddWorkItem(item); |
138 return item; | 157 return item; |
139 } | 158 } |
140 | 159 |
141 WorkItem* WorkItemList::AddDeleteTreeWorkItem( | 160 WorkItem* WorkItemList::AddDeleteTreeWorkItem( |
142 const base::FilePath& root_path, | 161 const base::FilePath& root_path, |
143 const base::FilePath& temp_path, | 162 const base::FilePath& temp_path, |
144 const std::vector<base::FilePath>& key_paths) { | 163 const std::vector<base::FilePath>& key_paths) { |
145 WorkItem* item = WorkItem::CreateDeleteTreeWorkItem(root_path, temp_path, | 164 WorkItem* item = WorkItem::CreateDeleteTreeWorkItem(root_path, temp_path, |
146 key_paths); | 165 key_paths); |
(...skipping 17 matching lines...) Expand all Loading... |
164 duplicate_option); | 183 duplicate_option); |
165 AddWorkItem(item); | 184 AddWorkItem(item); |
166 return item; | 185 return item; |
167 } | 186 } |
168 | 187 |
169 WorkItem* WorkItemList::AddSetRegValueWorkItem( | 188 WorkItem* WorkItemList::AddSetRegValueWorkItem( |
170 HKEY predefined_root, | 189 HKEY predefined_root, |
171 const std::wstring& key_path, | 190 const std::wstring& key_path, |
172 const std::wstring& value_name, | 191 const std::wstring& value_name, |
173 const std::wstring& value_data, | 192 const std::wstring& value_data, |
174 bool overwrite) { | 193 bool overwrite, |
| 194 RegWow64ViewOption reg_wow64_option) { |
175 WorkItem* item = WorkItem::CreateSetRegValueWorkItem(predefined_root, | 195 WorkItem* item = WorkItem::CreateSetRegValueWorkItem(predefined_root, |
176 key_path, | 196 key_path, |
177 value_name, | 197 value_name, |
178 value_data, | 198 value_data, |
179 overwrite); | 199 overwrite, |
| 200 reg_wow64_option); |
180 AddWorkItem(item); | 201 AddWorkItem(item); |
181 return item; | 202 return item; |
182 } | 203 } |
183 | 204 |
184 WorkItem* WorkItemList::AddSetRegValueWorkItem(HKEY predefined_root, | 205 WorkItem* WorkItemList::AddSetRegValueWorkItem( |
185 const std::wstring& key_path, | 206 HKEY predefined_root, |
186 const std::wstring& value_name, | 207 const std::wstring& key_path, |
187 DWORD value_data, | 208 const std::wstring& value_name, |
188 bool overwrite) { | 209 DWORD value_data, |
| 210 bool overwrite, |
| 211 RegWow64ViewOption reg_wow64_option) { |
189 WorkItem* item = WorkItem::CreateSetRegValueWorkItem(predefined_root, | 212 WorkItem* item = WorkItem::CreateSetRegValueWorkItem(predefined_root, |
190 key_path, | 213 key_path, |
191 value_name, | 214 value_name, |
192 value_data, | 215 value_data, |
193 overwrite); | 216 overwrite, |
| 217 reg_wow64_option); |
194 AddWorkItem(item); | 218 AddWorkItem(item); |
195 return item; | 219 return item; |
196 } | 220 } |
197 | 221 |
198 WorkItem* WorkItemList::AddSetRegValueWorkItem(HKEY predefined_root, | 222 WorkItem* WorkItemList::AddSetRegValueWorkItem( |
199 const std::wstring& key_path, | 223 HKEY predefined_root, |
200 const std::wstring& value_name, | 224 const std::wstring& key_path, |
201 int64 value_data, | 225 const std::wstring& value_name, |
202 bool overwrite) { | 226 int64 value_data, |
| 227 bool overwrite, |
| 228 RegWow64ViewOption reg_wow64_option) { |
203 WorkItem* item = reinterpret_cast<WorkItem*>( | 229 WorkItem* item = reinterpret_cast<WorkItem*>( |
204 WorkItem::CreateSetRegValueWorkItem(predefined_root, key_path, value_name, | 230 WorkItem::CreateSetRegValueWorkItem( |
205 value_data, overwrite)); | 231 predefined_root, key_path, value_name, |
| 232 value_data, overwrite, reg_wow64_option)); |
206 AddWorkItem(item); | 233 AddWorkItem(item); |
207 return item; | 234 return item; |
208 } | 235 } |
209 | 236 |
210 WorkItem* WorkItemList::AddSelfRegWorkItem(const std::wstring& dll_path, | 237 WorkItem* WorkItemList::AddSelfRegWorkItem(const std::wstring& dll_path, |
211 bool do_register, | 238 bool do_register, |
212 bool user_level_registration) { | 239 bool user_level_registration) { |
213 WorkItem* item = WorkItem::CreateSelfRegWorkItem(dll_path, do_register, | 240 WorkItem* item = WorkItem::CreateSelfRegWorkItem(dll_path, do_register, |
214 user_level_registration); | 241 user_level_registration); |
215 AddWorkItem(item); | 242 AddWorkItem(item); |
(...skipping 24 matching lines...) Expand all Loading... |
240 if (result) | 267 if (result) |
241 VLOG(1) << "NoRollbackWorkItemList: list execution succeeded"; | 268 VLOG(1) << "NoRollbackWorkItemList: list execution succeeded"; |
242 | 269 |
243 status_ = LIST_EXECUTED; | 270 status_ = LIST_EXECUTED; |
244 return result; | 271 return result; |
245 } | 272 } |
246 | 273 |
247 void NoRollbackWorkItemList::Rollback() { | 274 void NoRollbackWorkItemList::Rollback() { |
248 // Ignore rollback. | 275 // Ignore rollback. |
249 } | 276 } |
OLD | NEW |