summaryrefslogtreecommitdiffstats
path: root/chrome/browser/renderer_host/render_widget_host.cc
diff options
context:
space:
mode:
authorevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-06 20:32:41 +0000
committerevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-06 20:32:41 +0000
commite4c0329c31debaec3b5fe8a1136321c143de7d97 (patch)
tree29609d0333ce7841305b942653085fb413e30b79 /chrome/browser/renderer_host/render_widget_host.cc
parent1ee61486ee0854be7b82d9fca66bb49d563ede4c (diff)
downloadchromium_src-e4c0329c31debaec3b5fe8a1136321c143de7d97.zip
chromium_src-e4c0329c31debaec3b5fe8a1136321c143de7d97.tar.gz
chromium_src-e4c0329c31debaec3b5fe8a1136321c143de7d97.tar.bz2
linux: OOP windowed plugins
There are still a few issues, but that's a start. - only windowed plugins - we can't currently create the gtksocket in background tabs, because their gtkwidgets are not yet in the hierarchy, so they can't be realized (that's what gives the XID). - the plugin process talks to the browser process through the renderer process to create/destroy the gtksockets, because the plugin doesn't know which renderer it's talking to. We need a bit more plumbing to be able to have direct IPC. - some code is duplicated between chrome and test_shell. We should probably factor it, but I'm not sure where the common part should live. Review URL: http://codereview.chromium.org/146078 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19983 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host/render_widget_host.cc')
-rw-r--r--chrome/browser/renderer_host/render_widget_host.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/chrome/browser/renderer_host/render_widget_host.cc b/chrome/browser/renderer_host/render_widget_host.cc
index 5dec932..88c8c51 100644
--- a/chrome/browser/renderer_host/render_widget_host.cc
+++ b/chrome/browser/renderer_host/render_widget_host.cc
@@ -120,6 +120,12 @@ IPC_DEFINE_MESSAGE_MAP(RenderWidgetHost)
IPC_MESSAGE_HANDLER(ViewHostMsg_SetCursor, OnMsgSetCursor)
IPC_MESSAGE_HANDLER(ViewHostMsg_ImeUpdateStatus, OnMsgImeUpdateStatus)
IPC_MESSAGE_HANDLER_GENERIC(ViewHostMsg_ShowPopup, OnMsgShowPopup(msg))
+#if defined(OS_LINUX)
+ IPC_MESSAGE_HANDLER(ViewHostMsg_CreatePluginContainer,
+ OnMsgCreatePluginContainer)
+ IPC_MESSAGE_HANDLER(ViewHostMsg_DestroyPluginContainer,
+ OnMsgDestroyPluginContainer)
+#endif
IPC_MESSAGE_UNHANDLED_ERROR()
IPC_END_MESSAGE_MAP()
@@ -748,6 +754,18 @@ void RenderWidgetHost::OnMsgShowPopup(const IPC::Message& message) {
#endif
}
+#if defined(OS_LINUX)
+void RenderWidgetHost::OnMsgCreatePluginContainer(
+ gfx::PluginWindowHandle *container) {
+ *container = view_->CreatePluginContainer();
+}
+
+void RenderWidgetHost::OnMsgDestroyPluginContainer(
+ gfx::PluginWindowHandle container) {
+ view_->DestroyPluginContainer(container);
+}
+#endif
+
void RenderWidgetHost::PaintBackingStoreRect(TransportDIB* bitmap,
const gfx::Rect& bitmap_rect,
const gfx::Size& view_size) {