Index: mojo/public/java/bindings/src/org/chromium/mojo/bindings/InterfaceControlMessagesHelper.java |
diff --git a/mojo/public/java/bindings/src/org/chromium/mojo/bindings/InterfaceControlMessagesHelper.java b/mojo/public/java/bindings/src/org/chromium/mojo/bindings/InterfaceControlMessagesHelper.java |
index 939fb93988a2df36618aa4a4de62e7ac8b6f6319..51f543d567eda8288fb140541b865ea9473771fa 100644 |
--- a/mojo/public/java/bindings/src/org/chromium/mojo/bindings/InterfaceControlMessagesHelper.java |
+++ b/mojo/public/java/bindings/src/org/chromium/mojo/bindings/InterfaceControlMessagesHelper.java |
@@ -7,6 +7,14 @@ package org.chromium.mojo.bindings; |
import org.chromium.mojo.bindings.Callbacks.Callback1; |
import org.chromium.mojo.bindings.Interface.Manager; |
import org.chromium.mojo.bindings.Interface.Proxy; |
+import org.chromium.mojo.bindings.interfacecontrol.InterfaceControlMessagesConstants; |
+import org.chromium.mojo.bindings.interfacecontrol.QueryVersionResult; |
+import org.chromium.mojo.bindings.interfacecontrol.RunInput; |
+import org.chromium.mojo.bindings.interfacecontrol.RunMessageParams; |
+import org.chromium.mojo.bindings.interfacecontrol.RunOrClosePipeInput; |
+import org.chromium.mojo.bindings.interfacecontrol.RunOrClosePipeMessageParams; |
+import org.chromium.mojo.bindings.interfacecontrol.RunOutput; |
+import org.chromium.mojo.bindings.interfacecontrol.RunResponseMessageParams; |
import org.chromium.mojo.system.Core; |
/** |
@@ -64,11 +72,16 @@ public class InterfaceControlMessagesHelper { |
*/ |
public static <I extends Interface, P extends Proxy> boolean handleRun( |
Core core, Manager<I, P> manager, ServiceMessage message, MessageReceiver responder) { |
+ Message payload = message.getPayload(); |
+ RunMessageParams query = RunMessageParams.deserialize(payload); |
RunResponseMessageParams response = new RunResponseMessageParams(); |
- response.reserved0 = 16; |
- response.reserved1 = 0; |
- response.queryVersionResult = new QueryVersionResult(); |
- response.queryVersionResult.version = manager.getVersion(); |
+ response.output = new RunOutput(); |
+ if (query.input.which() == RunInput.Tag.QueryVersion) { |
+ response.output.setQueryVersionResult(new QueryVersionResult()); |
+ response.output.getQueryVersionResult().version = manager.getVersion(); |
+ } else { |
+ response.output = null; |
+ } |
return responder.accept(response.serializeWithHeader( |
core, new MessageHeader(InterfaceControlMessagesConstants.RUN_MESSAGE_ID, |
@@ -84,6 +97,9 @@ public class InterfaceControlMessagesHelper { |
Manager<I, P> manager, ServiceMessage message) { |
Message payload = message.getPayload(); |
RunOrClosePipeMessageParams query = RunOrClosePipeMessageParams.deserialize(payload); |
- return query.requireVersion.version <= manager.getVersion(); |
+ if (query.input.which() == RunOrClosePipeInput.Tag.RequireVersion) { |
+ return query.input.getRequireVersion().version <= manager.getVersion(); |
+ } |
+ return false; |
} |
} |