Index: chrome/browser/sync/sessions/sync_session.cc |
diff --git a/chrome/browser/sync/sessions/sync_session.cc b/chrome/browser/sync/sessions/sync_session.cc |
index 064fef6744e9d753fbb4b2e58975646e16ab9190..79d576f3cdaeb5caa893058a42c1c4a45f1725eb 100644 |
--- a/chrome/browser/sync/sessions/sync_session.cc |
+++ b/chrome/browser/sync/sessions/sync_session.cc |
@@ -233,6 +233,26 @@ std::set<ModelSafeGroup> |
return enabled_groups_with_verified_updates; |
} |
+namespace { |
+// Return true if the command in question was attempted and did not complete |
+// successfully. |
+// |
+bool IsError(SyncerError error) { |
+ return error != UNSET && error != SYNCER_OK; |
+} |
+} // namespace |
+ |
+bool SyncSession::Succeeded() const { |
+ const bool download_updates_error = |
+ IsError(status_controller_->error().last_download_updates_result); |
+ const bool post_commit_error = |
+ IsError(status_controller_->error().last_post_commit_result); |
+ const bool process_commit_response_error = |
+ IsError(status_controller_->error().last_process_commit_response_result); |
+ return !download_updates_error |
+ && !post_commit_error |
+ && !process_commit_response_error; |
+} |
} // namespace sessions |
} // namespace browser_sync |