Index: android_webview/native/aw_message_port_service_impl.cc |
diff --git a/android_webview/native/aw_message_port_service_impl.cc b/android_webview/native/aw_message_port_service_impl.cc |
index 0a15d9f44ef8ccc1e8bb24b01c2961124d1a7b4a..0caf92cd3afb770682d0379bf00fa9e5b2d77a82 100644 |
--- a/android_webview/native/aw_message_port_service_impl.cc |
+++ b/android_webview/native/aw_message_port_service_impl.cc |
@@ -150,6 +150,15 @@ void AwMessagePortServiceImpl::ClosePort(JNIEnv* env, jobject obj, |
message_port_id)); |
} |
+void AwMessagePortServiceImpl::ReleaseMessages(JNIEnv* env, jobject obj, |
+ int message_port_id) { |
hush (inactive)
2015/03/06 22:32:37
int --> jint
|
+ DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, |
+ FROM_HERE, |
+ base::Bind(&MessagePortProvider::ReleaseMessages, message_port_id)); |
+} |
+ |
void AwMessagePortServiceImpl::RemoveSentPorts( |
const std::vector<int>& sent_ports) { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
@@ -181,6 +190,8 @@ void AwMessagePortServiceImpl::CreateMessageChannelOnIOThread( |
int* portId1, |
int* portId2) { |
MessagePortProvider::CreateMessageChannel(filter.get(), portId1, portId2); |
+ MessagePortProvider::HoldMessages(*portId1); |
+ MessagePortProvider::HoldMessages(*portId2); |
AddPort(*portId1, filter.get()); |
AddPort(*portId2, filter.get()); |
} |