Index: chrome/browser/sync/engine/syncer_types.h |
diff --git a/chrome/browser/sync/engine/syncer_types.h b/chrome/browser/sync/engine/syncer_types.h |
index 54d4b3e2974d295d9c50e17bd5db956f11a6bcf8..9563c1182272cb812bf846c446f3cfd851b2177e 100644 |
--- a/chrome/browser/sync/engine/syncer_types.h |
+++ b/chrome/browser/sync/engine/syncer_types.h |
@@ -10,7 +10,9 @@ |
#include <string> |
#include <vector> |
+#include "base/location.h" |
#include "base/observer_list.h" |
+#include "chrome/browser/sync/sessions/unrecoverable_error_info.h" |
#include "chrome/browser/sync/syncable/model_type.h" |
namespace syncable { |
@@ -39,7 +41,10 @@ enum UpdateAttemptResponse { |
// forward progress on this node, but because the passphrase may not arrive |
// until later we don't want to get the syncer stuck. See UpdateApplicator |
// for how this is handled. |
- CONFLICT_ENCRYPTION |
+ CONFLICT_ENCRYPTION, |
+ |
+ // Failed to apply the update because of an error. |
+ FAILED_UPDATE |
}; |
enum ServerUpdateProcessingResult { |
@@ -109,13 +114,24 @@ struct SyncEngineEvent { |
// This event is sent when we receive an actionable error. It is upto |
// the listeners to figure out the action to take using the snapshot sent. |
ACTIONABLE_ERROR, |
+ |
+ // This event is sent when syncer receives an unrecoverable error. |
+ UNRECOVERABLE_ERROR, |
}; |
explicit SyncEngineEvent(EventCause cause); |
+ |
+ // Use this constructor in case of unrecoverable error. |
+ SyncEngineEvent( |
+ const tracked_objects::Location& unrecoverable_error_location, |
+ const std::string& message); |
~SyncEngineEvent(); |
EventCause what_happened; |
+ // Bookkeeping for unrecoverable errors. |
+ sessions::UnrecoverableErrorInfo unrecoverable_error_info; |
+ |
// The last session used for syncing. |
const sessions::SyncSessionSnapshot* snapshot; |