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 a9115ae330af0270667770edd7b531bbd2116d44..760c0ba46f86c8d6627dfaf72601aa4fb92c938b 100644 |
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java |
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java |
@@ -1739,6 +1739,35 @@ public class AwContents { |
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 |
//-------------------------------------------------------------------------------------------- |
@@ -2151,6 +2180,12 @@ public class AwContents { |
} |
} |
+ @CalledByNative |
+ private static void onMessageChannelCreated(int portId1, int portId2, |
+ ValueCallback<MessageChannel> callback) { |
+ callback.onReceiveValue(new MessageChannel(portId1, portId2)); |
+ } |
+ |
// ------------------------------------------------------------------------------------------- |
// Helper methods |
// ------------------------------------------------------------------------------------------- |
@@ -2602,4 +2637,10 @@ public class AwContents { |
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); |
} |