summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/extensions
diff options
context:
space:
mode:
authorjstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-28 18:13:58 +0000
committerjstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-28 18:13:58 +0000
commit85e55fa9e0f48705d5a5af283a59a46d02670d6f (patch)
tree717e66c971ff0a2ac785ed9e160397e61baa1e50 /chrome/renderer/extensions
parent788259ac805787a104098d3483642271f06c8a0a (diff)
downloadchromium_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.cc8
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();