Index: chrome/browser/sync/glue/non_frontend_data_type_controller.cc |
diff --git a/chrome/browser/sync/glue/non_frontend_data_type_controller.cc b/chrome/browser/sync/glue/non_frontend_data_type_controller.cc |
index c4f011a6d555a150c9847b352478ff131b0c628d..9217a1fb53f7fe298f22f5ff4ccc7e85a2057e6f 100644 |
--- a/chrome/browser/sync/glue/non_frontend_data_type_controller.cc |
+++ b/chrome/browser/sync/glue/non_frontend_data_type_controller.cc |
@@ -402,6 +402,22 @@ void NonFrontendDataTypeController::RecordStartFailure(StartResult result) { |
#undef PER_DATA_TYPE_MACRO |
} |
+void NonFrontendDataTypeController::RecordUnrecoverableError( |
+ const tracked_objects::Location& from_here, |
+ const std::string& message) { |
+ DVLOG(1) << "Datatype Controller failed for type " |
+ << ModelTypeToString(type()) << " " |
+ << message << " at location " |
+ << from_here.ToString(); |
+ UMA_HISTOGRAM_ENUMERATION("Sync.DataTypeRunFailures", |
+ ModelTypeToHistogramInt(type()), |
+ syncer::MODEL_TYPE_COUNT); |
+ |
+ if (!error_callback_.is_null()) |
+ error_callback_.Run(); |
+} |
+ |
+ |
ProfileSyncComponentsFactory* |
NonFrontendDataTypeController::profile_sync_factory() const { |
return profile_sync_factory_; |