/**@class android.webkit.WebMessagePort @extends java.lang.Object The Java representation of the <a href="https://html.spec.whatwg.org/multipage/comms.html#messageport"> HTML5 message ports.</a> A Message port represents one endpoint of a Message Channel. In Android webview, there is no separate Message Channel object. When a message channel is created, both ports are tangled to each other and started, and then returned in a MessagePort array, see {@link android.webkit.WebView#createWebMessageChannel} for creating a message channel. When a message port is first created or received via transfer, it does not have a WebMessageCallback to receive web messages. The messages are queued until a WebMessageCallback is set. A message port should be closed when it is not used by the embedder application anymore. A closed port cannot be transferred or cannot be reopened to send messages. Close can be called multiple times. When a port is transferred to JS, it cannot be used to send or receive messages at the Java side anymore. Different from HTML5 Spec, a port cannot be transferred if one of these has ever happened: i. a message callback was set, ii. a message was posted on it. A transferred port cannot be closed by the application, since the ownership is also transferred. It is possible to transfer both ports of a channel to JS, for example for communication between subframes. */ var WebMessagePort = { /**Post a WebMessage to the entangled port. @param {Object {WebMessage}} message the message from Java to JS. @throws IllegalStateException If message port is already transferred or closed. */ postMessage : function( ) {}, /**Close the message port and free any resources associated with it. */ close : function( ) {}, /**Sets a callback to receive message events on the main thread. @param {Object {WebMessagePort.WebMessageCallback}} callback the message callback. */ setWebMessageCallback : function( ) {}, /**Sets a callback to receive message events on the handler that is provided by the application. @param {Object {WebMessagePort.WebMessageCallback}} callback the message callback. @param {Object {Handler}} handler the handler to receive the message messages. */ setWebMessageCallback : function( ) {}, };