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

Unified Diff: third_party/mojo/src/mojo/public/go/bindings/message.go

Issue 1101303002: Update mojo sdk to rev e7270700d671fa8e458b4d8c9e47f7bcfb65da0b (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Actualy provide a default TaskTracker impl Created 5 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: third_party/mojo/src/mojo/public/go/bindings/message.go
diff --git a/third_party/mojo/src/mojo/public/go/bindings/message.go b/third_party/mojo/src/mojo/public/go/bindings/message.go
index 8455cd4b1e1323c4a11fc7a9120de09dfde2337d..f2dce2a59e370416f13970717eaddbd4028c21e7 100644
--- a/third_party/mojo/src/mojo/public/go/bindings/message.go
+++ b/third_party/mojo/src/mojo/public/go/bindings/message.go
@@ -31,6 +31,31 @@ func init() {
mapHeader = DataHeader{24, 2}
}
+const (
+ DifferentSizedArraysInMap = "VALIDATION_ERROR_DIFFERENT_SIZED_ARRAYS_IN_MAP"
+ IllegalHandle = "VALIDATION_ERROR_ILLEGAL_HANDLE"
+ IllegalMemoryRange = "VALIDATION_ERROR_ILLEGAL_MEMORY_RANGE"
+ IllegalPointer = "VALIDATION_ERROR_ILLEGAL_POINTER"
+ MessageHeaderInvalidFlags = "VALIDATION_ERROR_MESSAGE_HEADER_INVALID_FLAGS"
+ MessageHeaderMissingRequestId = "VALIDATION_ERROR_MESSAGE_HEADER_MISSING_REQUEST_ID"
+ MessageHeaderUnknownMethod = "VALIDATION_ERROR_MESSAGE_HEADER_UNKNOWN_METHOD"
+ MisalignedObject = "VALIDATION_ERROR_MISALIGNED_OBJECT"
+ UnexpectedArrayHeader = "VALIDATION_ERROR_UNEXPECTED_ARRAY_HEADER"
+ UnexpectedInvalidHandle = "VALIDATION_ERROR_UNEXPECTED_INVALID_HANDLE"
+ UnexpectedNullPointer = "VALIDATION_ERROR_UNEXPECTED_NULL_POINTER"
+ UnexpectedStructHeader = "VALIDATION_ERROR_UNEXPECTED_STRUCT_HEADER"
+)
+
+// ValidationError is an error that can happen during message validation.
+type ValidationError struct {
+ ErrorCode string
+ Message string
+}
+
+func (e *ValidationError) Error() string {
+ return e.Message
+}
+
// Payload is an interface implemented by a mojo struct that can encode/decode
// itself into mojo archive format.
type Payload interface {
@@ -74,8 +99,20 @@ func (h *MessageHeader) Decode(decoder *Decoder) error {
}
numFields := header.ElementsOrVersion
if numFields < 2 || numFields > 3 {
- return fmt.Errorf("Invalid message header: it should have 2 or 3 fileds, but has %d", numFields)
+ return &ValidationError{UnexpectedStructHeader,
+ fmt.Sprintf("invalid message header: it should have 2 or 3 fileds, but has %d", numFields),
+ }
+ }
+ expectedSize := uint32(dataHeaderSize + 2*4)
+ if numFields == 3 {
+ expectedSize += 8
}
+ if expectedSize != header.Size {
+ return &ValidationError{UnexpectedStructHeader,
+ fmt.Sprintf("unexpected struct header size: expected %d, but got %d", expectedSize, header.Size),
+ }
+ }
+
if h.Type, err = decoder.ReadUint32(); err != nil {
return err
}
@@ -84,14 +121,16 @@ func (h *MessageHeader) Decode(decoder *Decoder) error {
}
if numFields == 3 {
if h.Flags != MessageExpectsResponseFlag && h.Flags != MessageIsResponseFlag {
- return fmt.Errorf("Message header flags(%v) should be MessageExpectsResponseFlag or MessageIsResponseFlag", h.Flags)
+ return &ValidationError{MessageHeaderInvalidFlags,
+ fmt.Sprintf("message header flags(%v) should be MessageExpectsResponseFlag or MessageIsResponseFlag", h.Flags),
+ }
}
if h.RequestId, err = decoder.ReadUint64(); err != nil {
return err
}
} else {
if h.Flags != MessageNoFlag {
- return fmt.Errorf("Message header flags(%v) should be MessageNoFlag", h.Flags)
+ return &ValidationError{MessageHeaderMissingRequestId, "missing request ID in message header"}
}
}
return decoder.Finish()
« no previous file with comments | « third_party/mojo/src/mojo/public/go/bindings/decoder.go ('k') | third_party/mojo/src/mojo/public/go/system/core.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698