summaryrefslogtreecommitdiffstats
path: root/content/browser/message_port_provider.cc
diff options
context:
space:
mode:
authorsgurun <sgurun@chromium.org>2015-02-26 10:50:05 -0800
committerCommit bot <commit-bot@chromium.org>2015-02-26 18:52:46 +0000
commit1f47db6eeea87febb755db2c498335fd9bb226b1 (patch)
tree0db5b47a4f754b6cd30903ef58c815a5dca5e04b /content/browser/message_port_provider.cc
parentd74986e2bed72beae3cb8b0bfc5f0fe73062000e (diff)
downloadchromium_src-1f47db6eeea87febb755db2c498335fd9bb226b1.zip
chromium_src-1f47db6eeea87febb755db2c498335fd9bb226b1.tar.gz
chromium_src-1f47db6eeea87febb755db2c498335fd9bb226b1.tar.bz2
Implement the close() API for Message ports
The close API has to consider these cases: 1. A message port can be in a pending state 2. A message could be queued in renderer waiting for conversion Therefore close() immediately closes the port, but it does not cleanup the resources until all the messages are transferred. BUG=393291 Review URL: https://codereview.chromium.org/956763002 Cr-Commit-Position: refs/heads/master@{#318271}
Diffstat (limited to 'content/browser/message_port_provider.cc')
-rw-r--r--content/browser/message_port_provider.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/content/browser/message_port_provider.cc b/content/browser/message_port_provider.cc
index fac53a9..ac329bc 100644
--- a/content/browser/message_port_provider.cc
+++ b/content/browser/message_port_provider.cc
@@ -90,6 +90,13 @@ void MessagePortProvider::PostMessageToPort(
}
// static
+void MessagePortProvider::ClosePort(int message_port_id) {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ MessagePortService* msp = MessagePortService::GetInstance();
+ msp->ClosePort(message_port_id);
+}
+
+// static
void MessagePortProvider::OnMessagePortDelegateClosing(
MessagePortDelegate* delegate) {
MessagePortService::GetInstance()->OnMessagePortDelegateClosing(delegate);