summaryrefslogtreecommitdiffstats
path: root/chrome/plugin/plugin_channel.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/plugin/plugin_channel.h')
-rw-r--r--chrome/plugin/plugin_channel.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/chrome/plugin/plugin_channel.h b/chrome/plugin/plugin_channel.h
index 5e512f3..35c0799 100644
--- a/chrome/plugin/plugin_channel.h
+++ b/chrome/plugin/plugin_channel.h
@@ -6,11 +6,16 @@
#define CHROME_PLUGIN_PLUGIN_CHANNEL_H_
#include <vector>
+#include "base/ref_counted.h"
#include "base/scoped_handle.h"
#include "build/build_config.h"
#include "chrome/plugin/plugin_channel_base.h"
#include "chrome/plugin/webplugin_delegate_stub.h"
+namespace base {
+class WaitableEvent;
+}
+
// Encapsulates an IPC channel between the plugin process and one renderer
// process. On the renderer side there's a corresponding PluginChannelHost.
class PluginChannel : public PluginChannelBase {
@@ -34,6 +39,10 @@ class PluginChannel : public PluginChannelBase {
int GenerateRouteID();
+ // Returns the event that's set when a call to the renderer causes a modal
+ // dialog to come up.
+ base::WaitableEvent* GetModalDialogEvent(gfx::NativeViewId containing_window);
+
#if defined(OS_POSIX)
// When first created, the PluginChannel gets assigned the file descriptor
// for the renderer.
@@ -62,6 +71,8 @@ class PluginChannel : public PluginChannelBase {
virtual bool Init(MessageLoop* ipc_message_loop, bool create_pipe_now);
private:
+ class MessageFilter;
+
// Called on the plugin thread
PluginChannel();
@@ -90,6 +101,7 @@ class PluginChannel : public PluginChannelBase {
int in_send_; // Tracks if we're in a Send call.
bool log_messages_; // True if we should log sent and received messages.
bool off_the_record_; // True if the renderer is in off the record mode.
+ scoped_refptr<MessageFilter> filter_; // Handles the modal dialog events.
DISALLOW_EVIL_CONSTRUCTORS(PluginChannel);
};