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

Unified Diff: chrome/installer/util/work_item.cc

Issue 1882923003: Add best-effort/allow rollback flags on WorkItem. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@simple_list_tests
Patch Set: Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
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;
+}

Powered by Google App Engine
This is Rietveld 408576698