Index: chrome/installer/util/work_item.cc |
diff --git a/chrome/installer/util/work_item.cc b/chrome/installer/util/work_item.cc |
index e38413d94ef34df56a274cf864eab751493fbb96..f29d7f8d3c42db01f871a8a07102c86abc9f5d62 100644 |
--- a/chrome/installer/util/work_item.cc |
+++ b/chrome/installer/util/work_item.cc |
@@ -19,11 +19,8 @@ |
#include "chrome/installer/util/set_reg_value_work_item.h" |
#include "chrome/installer/util/work_item_list.h" |
-WorkItem::WorkItem() : ignore_failure_(false) { |
-} |
- |
-WorkItem::~WorkItem() { |
-} |
+WorkItem::WorkItem() = default; |
+WorkItem::~WorkItem() = default; |
CallbackWorkItem* WorkItem::CreateCallbackWorkItem( |
base::Callback<bool(const CallbackWorkItem&)> callback) { |
@@ -162,3 +159,17 @@ WorkItemList* WorkItem::CreateNoRollbackWorkItemList() { |
WorkItemList* WorkItem::CreateConditionalWorkItemList(Condition* condition) { |
return new ConditionalWorkItemList(condition); |
} |
+ |
+bool WorkItem::Do() { |
+ DCHECK_EQ(BEFORE_DO, state_); |
+ const bool success = DoImpl(); |
+ state_ = AFTER_DO; |
+ return best_effort() ? true : success; |
+} |
+ |
+void WorkItem::Rollback() { |
+ DCHECK_EQ(AFTER_DO, state_); |
+ if (allow_rollback()) |
+ RollbackImpl(); |
+ state_ = AFTER_ROLLBACK; |
+} |