Index: third_party/mojo/src/mojo/public/cpp/bindings/lib/validation_util.cc |
diff --git a/third_party/mojo/src/mojo/public/cpp/bindings/lib/validation_util.cc b/third_party/mojo/src/mojo/public/cpp/bindings/lib/validation_util.cc |
index 5614cca4a25c9227a3d85e966c9d722bbf6e974d..d8a1e681edd6d105c20a6fbfca3d9101d56e1bff 100644 |
--- a/third_party/mojo/src/mojo/public/cpp/bindings/lib/validation_util.cc |
+++ b/third_party/mojo/src/mojo/public/cpp/bindings/lib/validation_util.cc |
@@ -7,6 +7,7 @@ |
#include "mojo/public/cpp/bindings/lib/bindings_serialization.h" |
#include "mojo/public/cpp/bindings/lib/message_internal.h" |
#include "mojo/public/cpp/bindings/lib/validation_errors.h" |
+#include "mojo/public/interfaces/bindings/interface_control_messages.mojom.h" |
namespace mojo { |
namespace internal { |
@@ -70,5 +71,27 @@ bool ValidateMessageIsResponse(const Message* message) { |
return true; |
} |
+bool ValidateControlRequest(const Message* message) { |
+ switch (message->header()->name) { |
+ case kRunMessageId: |
+ return ValidateMessageIsRequestExpectingResponse(message) && |
+ ValidateMessagePayload<RunMessageParams_Data>(message); |
+ case kRunOrClosePipeMessageId: |
+ return ValidateMessageIsRequestWithoutResponse(message) && |
+ ValidateMessagePayload<RunOrClosePipeMessageParams_Data>(message); |
+ } |
+ return false; |
+} |
+ |
+bool ValidateControlResponse(const Message* message) { |
+ if (!ValidateMessageIsResponse(message)) |
+ return false; |
+ switch (message->header()->name) { |
+ case kRunMessageId: |
+ return ValidateMessagePayload<RunResponseMessageParams_Data>(message); |
+ } |
+ return false; |
+} |
+ |
} // namespace internal |
} // namespace mojo |