| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_VALIDATION_ERRORS_H_ | 5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_VALIDATION_ERRORS_H_ |
| 6 #define MOJO_PUBLIC_CPP_BINDINGS_LIB_VALIDATION_ERRORS_H_ | 6 #define MOJO_PUBLIC_CPP_BINDINGS_LIB_VALIDATION_ERRORS_H_ |
| 7 | 7 |
| 8 #include "base/callback.h" | 8 #include "base/callback.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 // Two parallel arrays which are supposed to represent a map have different | 63 // Two parallel arrays which are supposed to represent a map have different |
| 64 // lengths. | 64 // lengths. |
| 65 VALIDATION_ERROR_DIFFERENT_SIZED_ARRAYS_IN_MAP, | 65 VALIDATION_ERROR_DIFFERENT_SIZED_ARRAYS_IN_MAP, |
| 66 // Attempted to deserialize a tagged union with an unknown tag. | 66 // Attempted to deserialize a tagged union with an unknown tag. |
| 67 VALIDATION_ERROR_UNKNOWN_UNION_TAG, | 67 VALIDATION_ERROR_UNKNOWN_UNION_TAG, |
| 68 // A value of a non-extensible enum type is unknown. | 68 // A value of a non-extensible enum type is unknown. |
| 69 VALIDATION_ERROR_UNKNOWN_ENUM_VALUE, | 69 VALIDATION_ERROR_UNKNOWN_ENUM_VALUE, |
| 70 // Message deserialization failure, for example due to rejection by custom | 70 // Message deserialization failure, for example due to rejection by custom |
| 71 // validation logic. | 71 // validation logic. |
| 72 VALIDATION_ERROR_DESERIALIZATION_FAILED, | 72 VALIDATION_ERROR_DESERIALIZATION_FAILED, |
| 73 // The message contains a too deeply nested value, for example a recursively |
| 74 // defined field which runtime value is too large. |
| 75 VALIDATION_ERROR_MAX_RECURSION_DEPTH, |
| 73 }; | 76 }; |
| 74 | 77 |
| 75 const char* ValidationErrorToString(ValidationError error); | 78 const char* ValidationErrorToString(ValidationError error); |
| 76 | 79 |
| 77 void ReportValidationError(ValidationContext* context, | 80 void ReportValidationError(ValidationContext* context, |
| 78 ValidationError error, | 81 ValidationError error, |
| 79 const char* description = nullptr); | 82 const char* description = nullptr); |
| 80 | 83 |
| 81 void ReportValidationErrorForMessage( | 84 void ReportValidationErrorForMessage( |
| 82 mojo::Message* message, | 85 mojo::Message* message, |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 // | 141 // |
| 139 // In non-debug build, does nothing (not even compiling |condition|). | 142 // In non-debug build, does nothing (not even compiling |condition|). |
| 140 #define MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING(condition, error, \ | 143 #define MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING(condition, error, \ |
| 141 description) \ | 144 description) \ |
| 142 DLOG_IF(FATAL, (condition) && !ReportSerializationWarning(error)) \ | 145 DLOG_IF(FATAL, (condition) && !ReportSerializationWarning(error)) \ |
| 143 << "The outgoing message will trigger " \ | 146 << "The outgoing message will trigger " \ |
| 144 << ValidationErrorToString(error) << " at the receiving side (" \ | 147 << ValidationErrorToString(error) << " at the receiving side (" \ |
| 145 << description << ")."; | 148 << description << ")."; |
| 146 | 149 |
| 147 #endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_VALIDATION_ERRORS_H_ | 150 #endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_VALIDATION_ERRORS_H_ |
| OLD | NEW |