| 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.h" | 5 #include "chrome/installer/util/work_item.h" |
| 6 | 6 |
| 7 #include <windows.h> |
| 8 |
| 7 #include "chrome/installer/util/callback_work_item.h" | 9 #include "chrome/installer/util/callback_work_item.h" |
| 8 #include "chrome/installer/util/conditional_work_item_list.h" | 10 #include "chrome/installer/util/conditional_work_item_list.h" |
| 9 #include "chrome/installer/util/copy_reg_key_work_item.h" | |
| 10 #include "chrome/installer/util/copy_tree_work_item.h" | 11 #include "chrome/installer/util/copy_tree_work_item.h" |
| 11 #include "chrome/installer/util/create_dir_work_item.h" | 12 #include "chrome/installer/util/create_dir_work_item.h" |
| 12 #include "chrome/installer/util/create_reg_key_work_item.h" | 13 #include "chrome/installer/util/create_reg_key_work_item.h" |
| 13 #include "chrome/installer/util/delete_tree_work_item.h" | 14 #include "chrome/installer/util/delete_tree_work_item.h" |
| 14 #include "chrome/installer/util/delete_reg_key_work_item.h" | 15 #include "chrome/installer/util/delete_reg_key_work_item.h" |
| 15 #include "chrome/installer/util/delete_reg_value_work_item.h" | 16 #include "chrome/installer/util/delete_reg_value_work_item.h" |
| 16 #include "chrome/installer/util/move_tree_work_item.h" | 17 #include "chrome/installer/util/move_tree_work_item.h" |
| 17 #include "chrome/installer/util/self_reg_work_item.h" | 18 #include "chrome/installer/util/self_reg_work_item.h" |
| 18 #include "chrome/installer/util/set_reg_value_work_item.h" | 19 #include "chrome/installer/util/set_reg_value_work_item.h" |
| 19 #include "chrome/installer/util/work_item_list.h" | 20 #include "chrome/installer/util/work_item_list.h" |
| 20 | 21 |
| 21 WorkItem::WorkItem() : ignore_failure_(false) { | 22 WorkItem::WorkItem() : ignore_failure_(false) { |
| 22 } | 23 } |
| 23 | 24 |
| 24 WorkItem::~WorkItem() { | 25 WorkItem::~WorkItem() { |
| 25 } | 26 } |
| 26 | 27 |
| 27 CallbackWorkItem* WorkItem::CreateCallbackWorkItem( | 28 CallbackWorkItem* WorkItem::CreateCallbackWorkItem( |
| 28 base::Callback<bool(const CallbackWorkItem&)> callback) { | 29 base::Callback<bool(const CallbackWorkItem&)> callback) { |
| 29 return new CallbackWorkItem(callback); | 30 return new CallbackWorkItem(callback); |
| 30 } | 31 } |
| 31 | 32 |
| 32 CopyRegKeyWorkItem* WorkItem::CreateCopyRegKeyWorkItem( | |
| 33 HKEY predefined_root, | |
| 34 const std::wstring& source_key_path, | |
| 35 const std::wstring& dest_key_path, | |
| 36 CopyOverWriteOption overwrite_option) { | |
| 37 return new CopyRegKeyWorkItem(predefined_root, source_key_path, | |
| 38 dest_key_path, overwrite_option); | |
| 39 } | |
| 40 | |
| 41 CopyTreeWorkItem* WorkItem::CreateCopyTreeWorkItem( | 33 CopyTreeWorkItem* WorkItem::CreateCopyTreeWorkItem( |
| 42 const base::FilePath& source_path, | 34 const base::FilePath& source_path, |
| 43 const base::FilePath& dest_path, | 35 const base::FilePath& dest_path, |
| 44 const base::FilePath& temp_dir, | 36 const base::FilePath& temp_dir, |
| 45 CopyOverWriteOption overwrite_option, | 37 CopyOverWriteOption overwrite_option, |
| 46 const base::FilePath& alternative_path) { | 38 const base::FilePath& alternative_path) { |
| 47 return new CopyTreeWorkItem(source_path, dest_path, temp_dir, | 39 return new CopyTreeWorkItem(source_path, dest_path, temp_dir, |
| 48 overwrite_option, alternative_path); | 40 overwrite_option, alternative_path); |
| 49 } | 41 } |
| 50 | 42 |
| 51 CreateDirWorkItem* WorkItem::CreateCreateDirWorkItem( | 43 CreateDirWorkItem* WorkItem::CreateCreateDirWorkItem( |
| 52 const base::FilePath& path) { | 44 const base::FilePath& path) { |
| 53 return new CreateDirWorkItem(path); | 45 return new CreateDirWorkItem(path); |
| 54 } | 46 } |
| 55 | 47 |
| 56 CreateRegKeyWorkItem* WorkItem::CreateCreateRegKeyWorkItem( | 48 CreateRegKeyWorkItem* WorkItem::CreateCreateRegKeyWorkItem( |
| 57 HKEY predefined_root, const std::wstring& path) { | 49 HKEY predefined_root, |
| 58 return new CreateRegKeyWorkItem(predefined_root, path); | 50 const std::wstring& path, |
| 51 REGSAM wow64_access) { |
| 52 return new CreateRegKeyWorkItem(predefined_root, path, wow64_access); |
| 59 } | 53 } |
| 60 | 54 |
| 61 DeleteRegKeyWorkItem* WorkItem::CreateDeleteRegKeyWorkItem( | 55 DeleteRegKeyWorkItem* WorkItem::CreateDeleteRegKeyWorkItem( |
| 62 HKEY predefined_root, const std::wstring& path) { | 56 HKEY predefined_root, |
| 63 return new DeleteRegKeyWorkItem(predefined_root, path); | 57 const std::wstring& path, |
| 58 REGSAM wow64_access) { |
| 59 return new DeleteRegKeyWorkItem(predefined_root, path, wow64_access); |
| 64 } | 60 } |
| 65 | 61 |
| 66 DeleteRegValueWorkItem* WorkItem::CreateDeleteRegValueWorkItem( | 62 DeleteRegValueWorkItem* WorkItem::CreateDeleteRegValueWorkItem( |
| 67 HKEY predefined_root, | 63 HKEY predefined_root, |
| 68 const std::wstring& key_path, | 64 const std::wstring& key_path, |
| 69 const std::wstring& value_name) { | 65 const std::wstring& value_name, |
| 70 return new DeleteRegValueWorkItem(predefined_root, key_path, value_name); | 66 REGSAM wow64_access) { |
| 67 return new DeleteRegValueWorkItem( |
| 68 predefined_root, key_path, value_name, wow64_access); |
| 71 } | 69 } |
| 72 | 70 |
| 73 DeleteTreeWorkItem* WorkItem::CreateDeleteTreeWorkItem( | 71 DeleteTreeWorkItem* WorkItem::CreateDeleteTreeWorkItem( |
| 74 const base::FilePath& root_path, | 72 const base::FilePath& root_path, |
| 75 const base::FilePath& temp_path, | 73 const base::FilePath& temp_path, |
| 76 const std::vector<base::FilePath>& key_paths) { | 74 const std::vector<base::FilePath>& key_paths) { |
| 77 return new DeleteTreeWorkItem(root_path, temp_path, key_paths); | 75 return new DeleteTreeWorkItem(root_path, temp_path, key_paths); |
| 78 } | 76 } |
| 79 | 77 |
| 80 MoveTreeWorkItem* WorkItem::CreateMoveTreeWorkItem( | 78 MoveTreeWorkItem* WorkItem::CreateMoveTreeWorkItem( |
| 81 const base::FilePath& source_path, | 79 const base::FilePath& source_path, |
| 82 const base::FilePath& dest_path, | 80 const base::FilePath& dest_path, |
| 83 const base::FilePath& temp_dir, | 81 const base::FilePath& temp_dir, |
| 84 MoveTreeOption duplicate_option) { | 82 MoveTreeOption duplicate_option) { |
| 85 return new MoveTreeWorkItem(source_path, | 83 return new MoveTreeWorkItem(source_path, |
| 86 dest_path, | 84 dest_path, |
| 87 temp_dir, | 85 temp_dir, |
| 88 duplicate_option); | 86 duplicate_option); |
| 89 } | 87 } |
| 90 | 88 |
| 91 SetRegValueWorkItem* WorkItem::CreateSetRegValueWorkItem( | 89 SetRegValueWorkItem* WorkItem::CreateSetRegValueWorkItem( |
| 92 HKEY predefined_root, | 90 HKEY predefined_root, |
| 93 const std::wstring& key_path, | 91 const std::wstring& key_path, |
| 94 const std::wstring& value_name, | 92 const std::wstring& value_name, |
| 95 const std::wstring& value_data, | 93 const std::wstring& value_data, |
| 96 bool overwrite) { | 94 bool overwrite, |
| 97 return new SetRegValueWorkItem(predefined_root, key_path, | 95 REGSAM wow64_access) { |
| 98 value_name, value_data, overwrite); | 96 return new SetRegValueWorkItem(predefined_root, |
| 97 key_path, |
| 98 value_name, |
| 99 value_data, |
| 100 overwrite, |
| 101 wow64_access); |
| 99 } | 102 } |
| 100 | 103 |
| 101 SetRegValueWorkItem* WorkItem::CreateSetRegValueWorkItem( | 104 SetRegValueWorkItem* WorkItem::CreateSetRegValueWorkItem( |
| 102 HKEY predefined_root, | 105 HKEY predefined_root, |
| 103 const std::wstring& key_path, | 106 const std::wstring& key_path, |
| 104 const std::wstring& value_name, | 107 const std::wstring& value_name, |
| 105 DWORD value_data, | 108 DWORD value_data, |
| 106 bool overwrite) { | 109 bool overwrite, |
| 107 return new SetRegValueWorkItem(predefined_root, key_path, | 110 REGSAM wow64_access) { |
| 108 value_name, value_data, overwrite); | 111 return new SetRegValueWorkItem(predefined_root, |
| 112 key_path, |
| 113 value_name, |
| 114 value_data, |
| 115 overwrite, |
| 116 wow64_access); |
| 109 } | 117 } |
| 110 | 118 |
| 111 SetRegValueWorkItem* WorkItem::CreateSetRegValueWorkItem( | 119 SetRegValueWorkItem* WorkItem::CreateSetRegValueWorkItem( |
| 112 HKEY predefined_root, | 120 HKEY predefined_root, |
| 113 const std::wstring& key_path, | 121 const std::wstring& key_path, |
| 114 const std::wstring& value_name, | 122 const std::wstring& value_name, |
| 115 int64 value_data, | 123 int64 value_data, |
| 116 bool overwrite) { | 124 bool overwrite, |
| 117 return new SetRegValueWorkItem(predefined_root, key_path, | 125 REGSAM wow64_access) { |
| 118 value_name, value_data, overwrite); | 126 return new SetRegValueWorkItem(predefined_root, |
| 127 key_path, |
| 128 value_name, |
| 129 value_data, |
| 130 overwrite, |
| 131 wow64_access); |
| 119 } | 132 } |
| 120 | 133 |
| 121 SelfRegWorkItem* WorkItem::CreateSelfRegWorkItem(const std::wstring& dll_path, | 134 SelfRegWorkItem* WorkItem::CreateSelfRegWorkItem(const std::wstring& dll_path, |
| 122 bool do_register, | 135 bool do_register, |
| 123 bool user_level_registration) { | 136 bool user_level_registration) { |
| 124 return new SelfRegWorkItem(dll_path, do_register, user_level_registration); | 137 return new SelfRegWorkItem(dll_path, do_register, user_level_registration); |
| 125 } | 138 } |
| 126 | 139 |
| 127 WorkItemList* WorkItem::CreateWorkItemList() { | 140 WorkItemList* WorkItem::CreateWorkItemList() { |
| 128 return new WorkItemList(); | 141 return new WorkItemList(); |
| 129 } | 142 } |
| 130 | 143 |
| 131 // static | 144 // static |
| 132 WorkItemList* WorkItem::CreateNoRollbackWorkItemList() { | 145 WorkItemList* WorkItem::CreateNoRollbackWorkItemList() { |
| 133 return new NoRollbackWorkItemList(); | 146 return new NoRollbackWorkItemList(); |
| 134 } | 147 } |
| 135 | 148 |
| 136 WorkItemList* WorkItem::CreateConditionalWorkItemList(Condition* condition) { | 149 WorkItemList* WorkItem::CreateConditionalWorkItemList(Condition* condition) { |
| 137 return new ConditionalWorkItemList(condition); | 150 return new ConditionalWorkItemList(condition); |
| 138 } | 151 } |
| OLD | NEW |