| Index: android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| index 854865b8bb0262dba55dbfe8602be44b5bf4c2b8..3eedfeded1d65cf19ba56c0d8552dbe5ec42e499 100644
|
| --- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| +++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| @@ -1754,6 +1754,35 @@ public class AwContents implements SmartClipProvider {
|
| if (!isDestroyed()) mWebContents.evaluateJavaScript(script, null);
|
| }
|
|
|
| + /**
|
| + * Post a message to a frame.
|
| + * TODO(sgurun) investigate if we should hardcode the source origin to some
|
| + * value instead.
|
| + *
|
| + * @param frameName The name of the frame. If the name is null the message is posted
|
| + * to the main frame.
|
| + * @param message The message
|
| + * @param sourceOrigin The source origin
|
| + * @param targetOrigin The target origin
|
| + * @param msgPorts The sent message ports, if any. Pass null if there is no
|
| + * message ports to pass.
|
| + */
|
| + public void postMessageToFrame(String frameName, String message,
|
| + String sourceOrigin, String targetOrigin, int[] msgPorts) {
|
| + nativePostMessageToFrame(mNativeAwContents, frameName, message, sourceOrigin,
|
| + targetOrigin, msgPorts);
|
| + }
|
| +
|
| + /**
|
| + * Creates a message channel.
|
| + *
|
| + * @param callback The message channel created.
|
| + */
|
| + public void createMessageChannel(ValueCallback<MessageChannel> callback) {
|
| + nativeCreateMessageChannel(mNativeAwContents, callback);
|
| + }
|
| +
|
| +
|
| //--------------------------------------------------------------------------------------------
|
| // View and ViewGroup method implementations
|
| //--------------------------------------------------------------------------------------------
|
| @@ -2166,6 +2195,12 @@ public class AwContents implements SmartClipProvider {
|
| }
|
| }
|
|
|
| + @CalledByNative
|
| + private static void onMessageChannelCreated(int portId1, int portId2,
|
| + ValueCallback<MessageChannel> callback) {
|
| + callback.onReceiveValue(new MessageChannel(portId1, portId2));
|
| + }
|
| +
|
| // -------------------------------------------------------------------------------------------
|
| // Helper methods
|
| // -------------------------------------------------------------------------------------------
|
| @@ -2643,4 +2678,10 @@ public class AwContents implements SmartClipProvider {
|
|
|
| private native void nativePreauthorizePermission(long nativeAwContents, String origin,
|
| long resources);
|
| +
|
| + private native void nativePostMessageToFrame(long nativeAwContents, String frameId,
|
| + String message, String sourceOrigin, String targetOrigin, int[] msgPorts);
|
| +
|
| + private native void nativeCreateMessageChannel(long nativeAwContents,
|
| + ValueCallback<MessageChannel> callback);
|
| }
|
|
|