diff options
author | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-27 19:18:41 +0000 |
---|---|---|
committer | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-27 19:18:41 +0000 |
commit | cc661e5f76c24a8640dbe818a1091e0fe60e1529 (patch) | |
tree | 09a8c5c6c76a4c5c990eb1a3fe862373d9536ebe /chrome/renderer/resources | |
parent | 1a16364587d4fe3592b78d04ac13b5abfbd6360e (diff) | |
download | chromium_src-cc661e5f76c24a8640dbe818a1091e0fe60e1529.zip chromium_src-cc661e5f76c24a8640dbe818a1091e0fe60e1529.tar.gz chromium_src-cc661e5f76c24a8640dbe818a1091e0fe60e1529.tar.bz2 |
Fix port disconnect so that it's refcounted. This fixes a bug where a channel
would close if any one listener on the channel called "disconnect()".
BUG=16644
TEST=no
Review URL: http://codereview.chromium.org/155476
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21678 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/resources')
-rw-r--r-- | chrome/renderer/resources/renderer_extension_bindings.js | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/chrome/renderer/resources/renderer_extension_bindings.js b/chrome/renderer/resources/renderer_extension_bindings.js index d8b5a4b..cf53de9 100644 --- a/chrome/renderer/resources/renderer_extension_bindings.js +++ b/chrome/renderer/resources/renderer_extension_bindings.js @@ -18,6 +18,8 @@ var chrome = chrome || {}; (function () { native function OpenChannelToExtension(id); native function CloseChannel(portId); + native function PortAddRef(portId); + native function PortRelease(portId); native function PostMessage(portId, msg); native function GetChromeHidden(); @@ -46,8 +48,9 @@ var chrome = chrome || {}; var port = new chrome.Port(portId, opt_name); ports[portId] = port; chromeHidden.onUnload.addListener(function() { - port.disconnect(); + PortRelease(portId); }); + PortAddRef(portId); return port; } |