diff options
author | japhet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-18 22:29:33 +0000 |
---|---|---|
committer | japhet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-18 22:29:33 +0000 |
commit | 8275d865da70a68992560db2a5d65bf1b9fa8f56 (patch) | |
tree | 7326a9c416ba2f0a0e3a50ce6ad58693e7ba7c46 /chrome/renderer/plugin_channel_host.cc | |
parent | 91fce0c025e0ff1516d1a8ea762bc4eab326b8de (diff) | |
download | chromium_src-8275d865da70a68992560db2a5d65bf1b9fa8f56.zip chromium_src-8275d865da70a68992560db2a5d65bf1b9fa8f56.tar.gz chromium_src-8275d865da70a68992560db2a5d65bf1b9fa8f56.tar.bz2 |
If an NP_* function is called on an out of process plugin, save enough info to send an NPN_SetException back to the correct renderer if necessary. BUG=26764 TEST=none
Review URL: http://codereview.chromium.org/375005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32419 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/plugin_channel_host.cc')
-rw-r--r-- | chrome/renderer/plugin_channel_host.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/chrome/renderer/plugin_channel_host.cc b/chrome/renderer/plugin_channel_host.cc index e010c56..aa409ce 100644 --- a/chrome/renderer/plugin_channel_host.cc +++ b/chrome/renderer/plugin_channel_host.cc @@ -6,6 +6,8 @@ #include "chrome/common/plugin_messages.h" +#include "third_party/WebKit/WebKit/chromium/public/WebBindings.h" + // A simple MessageFilter that will ignore all messages and respond to sync // messages with an error when is_listening_ is false. class IsListeningFilter : public IPC::ChannelProxy::MessageFilter { @@ -107,6 +109,17 @@ void PluginChannelHost::RemoveRoute(int route_id) { PluginChannelBase::RemoveRoute(route_id); } +void PluginChannelHost::OnControlMessageReceived(const IPC::Message& message) { + IPC_BEGIN_MESSAGE_MAP(PluginChannelHost, message) + IPC_MESSAGE_HANDLER(PluginHostMsg_SetException, OnSetException) + IPC_MESSAGE_UNHANDLED_ERROR() + IPC_END_MESSAGE_MAP() +} + +void PluginChannelHost::OnSetException(const std::string& message) { + WebKit::WebBindings::setException(NULL, message.c_str()); +} + void PluginChannelHost::OnChannelError() { PluginChannelBase::OnChannelError(); |