Index: android_webview/native/aw_contents.cc |
diff --git a/android_webview/native/aw_contents.cc b/android_webview/native/aw_contents.cc |
index 64cd9a97e2cd90a849c6f7d0039a87ee3764b8d6..86ec1d89f6779c243e92a0c8f2ebfb2bae23dd36 100644 |
--- a/android_webview/native/aw_contents.cc |
+++ b/android_webview/native/aw_contents.cc |
@@ -1066,14 +1066,22 @@ void AwContents::TrimMemory(JNIEnv* env, |
// main frame is supported at this time, see crbug.com/389721) |
void AwContents::PostMessageToFrame(JNIEnv* env, jobject obj, |
jstring frame_name, jstring message, jstring source_origin, |
- jstring target_origin, jintArray msgPorts) { |
+ jstring target_origin, jintArray sent_ports) { |
base::string16 j_source_origin(ConvertJavaStringToUTF16(env, source_origin)); |
base::string16 j_target_origin(ConvertJavaStringToUTF16(env, target_origin)); |
base::string16 j_message(ConvertJavaStringToUTF16(env, message)); |
std::vector<int> j_ports; |
- if (msgPorts != nullptr) |
- base::android::JavaIntArrayToIntVector(env, msgPorts, &j_ports); |
+ |
+ if (sent_ports != nullptr) { |
+ base::android::JavaIntArrayToIntVector(env, sent_ports, &j_ports); |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, |
+ FROM_HERE, |
+ base::Bind(&AwMessagePortServiceImpl::RemoveSentPorts, |
+ base::Unretained(AwMessagePortServiceImpl::GetInstance()), |
+ j_ports)); |
+ } |
content::MessagePortProvider::PostMessageToFrame(web_contents_.get(), |
j_source_origin, |