diff options
author | jstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-28 18:13:58 +0000 |
---|---|---|
committer | jstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-28 18:13:58 +0000 |
commit | 85e55fa9e0f48705d5a5af283a59a46d02670d6f (patch) | |
tree | 717e66c971ff0a2ac785ed9e160397e61baa1e50 /chrome/renderer/extensions | |
parent | 788259ac805787a104098d3483642271f06c8a0a (diff) | |
download | chromium_src-85e55fa9e0f48705d5a5af283a59a46d02670d6f.zip chromium_src-85e55fa9e0f48705d5a5af283a59a46d02670d6f.tar.gz chromium_src-85e55fa9e0f48705d5a5af283a59a46d02670d6f.tar.bz2 |
1. Fires port.onDisconnect if tabs.connect fails.
2. Throws an error in port.postMessage if the port has already been disconnected.
3. Sets lastError when tabs.sendRequest can't connect to the tab.
BUG=27565, 32899
TEST=ExtensionApiTest
Review URL: http://codereview.chromium.org/3676008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64277 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/extensions')
-rw-r--r-- | chrome/renderer/extensions/renderer_extension_bindings.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/chrome/renderer/extensions/renderer_extension_bindings.cc b/chrome/renderer/extensions/renderer_extension_bindings.cc index b109390..d8fc4db 100644 --- a/chrome/renderer/extensions/renderer_extension_bindings.cc +++ b/chrome/renderer/extensions/renderer_extension_bindings.cc @@ -130,14 +130,16 @@ class ExtensionImpl : public ExtensionBase { // Forcefully disconnects a port. static v8::Handle<v8::Value> CloseChannel(const v8::Arguments& args) { - if (args.Length() >= 1 && args[0]->IsInt32()) { + if (args.Length() >= 2 && args[0]->IsInt32() && args[1]->IsBoolean()) { int port_id = args[0]->Int32Value(); if (!HasPortData(port_id)) { return v8::Undefined(); } // Send via the RenderThread because the RenderView might be closing. - EventBindings::GetRenderThread()->Send( - new ViewHostMsg_ExtensionCloseChannel(port_id)); + bool notify_browser = args[1]->BooleanValue(); + if (notify_browser) + EventBindings::GetRenderThread()->Send( + new ViewHostMsg_ExtensionCloseChannel(port_id)); ClearPortData(port_id); } return v8::Undefined(); |