Index: third_party/mojo/src/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Interface.java |
diff --git a/third_party/mojo/src/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Interface.java b/third_party/mojo/src/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Interface.java |
index 93fde9fa4cf5dc774f1e96742e2dbfe1eca6a970..c2bbc8ebddb4127bef1020b75395dd673b8ad691 100644 |
--- a/third_party/mojo/src/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Interface.java |
+++ b/third_party/mojo/src/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Interface.java |
@@ -42,6 +42,12 @@ public interface Interface extends ConnectionErrorHandler, Closeable { |
public void setErrorHandler(ConnectionErrorHandler errorHandler); |
/** |
+ * Unbinds the proxy and passes the handle. Can return null if the proxy is not bound or |
+ * if the proxy is not over a message pipe. |
+ */ |
+ public MessagePipeHandle passHandle(); |
+ |
+ /** |
* Returns the version number of the interface that the remote side supports. |
*/ |
public int getVersion(); |
@@ -156,6 +162,17 @@ public interface Interface extends ConnectionErrorHandler, Closeable { |
} |
/** |
+ * @see Interface.Proxy.Handler#passHandle() |
+ */ |
+ @Override |
+ public MessagePipeHandle passHandle() { |
+ @SuppressWarnings("unchecked") |
+ HandleOwner<MessagePipeHandle> handleOwner = |
+ (HandleOwner<MessagePipeHandle>) mMessageReceiver; |
+ return handleOwner.passHandle(); |
+ } |
+ |
+ /** |
* @see Handler#getVersion() |
*/ |
@Override |
@@ -173,8 +190,8 @@ public interface Interface extends ConnectionErrorHandler, Closeable { |
message.reserved1 = 0; |
message.queryVersion = new QueryVersion(); |
- InterfaceControlMessagesHelper.sendRunMessage(getCore(), getMessageReceiver(), |
- message, new Callback1<RunResponseMessageParams>() { |
+ InterfaceControlMessagesHelper.sendRunMessage(getCore(), mMessageReceiver, message, |
+ new Callback1<RunResponseMessageParams>() { |
@Override |
public void call(RunResponseMessageParams response) { |
mVersion = response.queryVersionResult.version; |
@@ -198,7 +215,7 @@ public interface Interface extends ConnectionErrorHandler, Closeable { |
message.requireVersion = new RequireVersion(); |
message.requireVersion.version = version; |
InterfaceControlMessagesHelper.sendRunOrClosePipeMessage( |
- getCore(), getMessageReceiver(), message); |
+ getCore(), mMessageReceiver, message); |
} |
} |
@@ -354,6 +371,10 @@ public interface Interface extends ConnectionErrorHandler, Closeable { |
return Pair.create(proxy, new InterfaceRequest<I>(handles.second)); |
} |
+ public final InterfaceRequest<I> asInterfaceRequest(MessagePipeHandle handle) { |
+ return new InterfaceRequest<I>(handle); |
+ } |
+ |
/** |
* Binds the implementation to the given |router|. |
*/ |