| Index: android_webview/browser/aw_message_port_message_filter.cc
|
| diff --git a/android_webview/browser/aw_message_port_message_filter.cc b/android_webview/browser/aw_message_port_message_filter.cc
|
| index 60b143ed5c1659a5d14a402506ceb3e6302f79d2..6105c784624bc8bf799c0109f25e6d8b13fb7dd2 100644
|
| --- a/android_webview/browser/aw_message_port_message_filter.cc
|
| +++ b/android_webview/browser/aw_message_port_message_filter.cc
|
| @@ -43,9 +43,16 @@ bool AwMessagePortMessageFilter::OnMessageReceived(
|
| void AwMessagePortMessageFilter::OnConvertedAppToWebMessage(
|
| int msg_port_id,
|
| const base::string16& message,
|
| - const std::vector<int>& sent_message_port_ids) {
|
| - MessagePortProvider::PostMessageToPort(msg_port_id, message,
|
| - sent_message_port_ids);
|
| + const std::vector<int>& sent_message_port_ids,
|
| + bool close_port) {
|
| + if (close_port) {
|
| + MessagePortProvider::ClosePort(msg_port_id);
|
| + AwBrowserContext::GetDefault()->GetMessagePortService()->
|
| + CleanupPort(msg_port_id);
|
| + } else {
|
| + MessagePortProvider::PostMessageToPort(msg_port_id, message,
|
| + sent_message_port_ids);
|
| + }
|
| }
|
|
|
| void AwMessagePortMessageFilter::OnDestruct() const {
|
| @@ -55,11 +62,12 @@ void AwMessagePortMessageFilter::OnDestruct() const {
|
| void AwMessagePortMessageFilter::SendAppToWebMessage(
|
| int msg_port_route_id,
|
| const base::string16& message,
|
| - const std::vector<int>& sent_message_port_ids) {
|
| + const std::vector<int>& sent_message_port_ids,
|
| + bool close_port) {
|
| Send(new AwMessagePortMsg_AppToWebMessage(
|
| route_id_,
|
| msg_port_route_id, // same as the port id
|
| - message, sent_message_port_ids));
|
| + message, sent_message_port_ids, close_port));
|
| }
|
|
|
| void AwMessagePortMessageFilter::SendMessage(
|
|
|