Index: android_webview/native/aw_contents.cc |
diff --git a/android_webview/native/aw_contents.cc b/android_webview/native/aw_contents.cc |
index dfd03265d3a4b4b10f571ae05299b3f9299eb23d..2eff4792ee8b5fa81b5ad74e9f345ede439e38ec 100644 |
--- a/android_webview/native/aw_contents.cc |
+++ b/android_webview/native/aw_contents.cc |
@@ -69,6 +69,7 @@ |
#include "content/public/browser/render_view_host.h" |
#include "content/public/browser/ssl_status.h" |
#include "content/public/browser/web_contents.h" |
+#include "content/public/common/message_port.h" |
#include "content/public/common/mhtml_generation_params.h" |
#include "content/public/common/renderer_preferences.h" |
#include "jni/AwContents_jni.h" |
@@ -1233,15 +1234,13 @@ void AwContents::PostMessageToFrame(JNIEnv* env, |
const JavaParamRef<jstring>& frame_name, |
const JavaParamRef<jstring>& message, |
const JavaParamRef<jstring>& target_origin, |
- const JavaParamRef<jintArray>& sent_ports) { |
+ const JavaParamRef<jobjectArray>& ports) { |
// Use an empty source origin for android webview. |
base::string16 source_origin; |
base::string16 j_target_origin(ConvertJavaStringToUTF16(env, target_origin)); |
base::string16 j_message(ConvertJavaStringToUTF16(env, message)); |
- std::vector<int> j_ports; |
- |
- if (sent_ports != nullptr) |
- base::android::JavaIntArrayToIntVector(env, sent_ports, &j_ports); |
+ std::vector<content::MessagePort> j_ports( |
+ content::AppWebMessagePortService::UnwrapJavaArray(env, ports)); |
content::MessagePortProvider::PostMessageToFrame(web_contents_.get(), |
source_origin, |