Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(462)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java

Issue 2422793002: HTML MessagePort as mojo::MessagePipeHandle (Closed)
Patch Set: Add metrics and support for non-ASCII text messages to Java endpoints Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
index cc33b2dac09e8da12217a110430cce8147bc3c13..8c5d159b1002dc067eb2b40435cb00f6b30b95ea 100644
--- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
@@ -24,6 +24,7 @@ import org.chromium.content_public.browser.AccessibilitySnapshotNode;
import org.chromium.content_public.browser.ContentBitmapCallback;
import org.chromium.content_public.browser.ImageDownloadCallback;
import org.chromium.content_public.browser.JavaScriptCallback;
+import org.chromium.content_public.browser.MessagePort;
import org.chromium.content_public.browser.MessagePortService;
import org.chromium.content_public.browser.NavigationController;
import org.chromium.content_public.browser.WebContents;
@@ -337,9 +338,19 @@ import java.util.UUID;
@Override
public void postMessageToFrame(
- String frameName, String message, String targetOrigin, int[] sentPortIds) {
+ String frameName, String message, String targetOrigin, MessagePort[] ports) {
+ if (ports != null) {
+ for (MessagePort port : ports) {
+ if (port.isClosed() || port.isTransferred()) {
+ throw new IllegalStateException("Port is already closed or transferred");
+ }
+ if (port.isStarted()) {
+ throw new IllegalStateException("Port is already started");
+ }
+ }
+ }
nativePostMessageToFrame(
- mNativeWebContentsAndroid, frameName, message, targetOrigin, sentPortIds);
+ mNativeWebContentsAndroid, frameName, message, targetOrigin, ports);
}
@Override
@@ -531,7 +542,7 @@ import java.util.UUID;
private native void nativeAddMessageToDevToolsConsole(
long nativeWebContentsAndroid, int level, String message);
private native void nativePostMessageToFrame(long nativeWebContentsAndroid, String frameName,
- String message, String targetOrigin, int[] sentPortIds);
+ String message, String targetOrigin, MessagePort[] ports);
private native void nativeCreateMessageChannel(
long nativeWebContentsAndroid, AppWebMessagePort[] ports);
private native boolean nativeHasAccessedInitialDocument(

Powered by Google App Engine
This is Rietveld 408576698