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 4d80be73e6d07d234a2cfeef69823b3e5675638d..70393519e174d7507f13a9d30555188818b5e2fb 100644 |
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java |
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java |
@@ -1790,9 +1790,16 @@ public class AwContents implements SmartClipProvider { |
* message ports to pass. |
*/ |
public void postMessageToFrame(String frameName, String message, |
- String sourceOrigin, String targetOrigin, int[] msgPorts) { |
+ String sourceOrigin, String targetOrigin, MessagePort[] msgPorts) { |
+ if (isDestroyed()) return; |
+ int[] portIds = null; |
+ if (msgPorts != null) { |
+ portIds = new int[msgPorts.length]; |
+ for (int i = 0; i < msgPorts.length; i++) |
+ portIds[i] = msgPorts[i].portId(); |
+ } |
nativePostMessageToFrame(mNativeAwContents, frameName, message, sourceOrigin, |
- targetOrigin, msgPorts); |
+ targetOrigin, portIds); |
} |
/** |
@@ -1801,10 +1808,12 @@ public class AwContents implements SmartClipProvider { |
* @param callback The message channel created. |
*/ |
public void createMessageChannel(ValueCallback<MessageChannel> callback) { |
+ if (isDestroyed()) return; |
+ // Make sure the message port service is created. |
+ mBrowserContext.createMessagePortService(); |
nativeCreateMessageChannel(mNativeAwContents, callback); |
} |
- |
//-------------------------------------------------------------------------------------------- |
// View and ViewGroup method implementations |
//-------------------------------------------------------------------------------------------- |
@@ -2217,12 +2226,6 @@ 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 |
// ------------------------------------------------------------------------------------------- |