summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webplugin.h
diff options
context:
space:
mode:
authorevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-30 17:14:59 +0000
committerevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-30 17:14:59 +0000
commit6f23fd79add82e8b9d32a502a04c081f3525b5e6 (patch)
tree44b38348c2a9083c661f0a3c1160583f109f7d10 /webkit/glue/webplugin.h
parent0b39289a3fd93eeb219fddb924e01210ac0baa1e (diff)
downloadchromium_src-6f23fd79add82e8b9d32a502a04c081f3525b5e6.zip
chromium_src-6f23fd79add82e8b9d32a502a04c081f3525b5e6.tar.gz
chromium_src-6f23fd79add82e8b9d32a502a04c081f3525b5e6.tar.bz2
linux: only create browser-side plugin container after plugin requests it
On Windows, windowed plugins are parented in a two-stage process: initially, the plugin is parented to the render view, then later it's reparented to a special per-plugin window. On Linux, plugin embedding always needs a special per-plugin window before it can be initialized. So there's no way to do the two-stage initialization process, and we only want to construct the browser-side plugin container for windowed plugins after the plugin requests it. Plumbing this through the WebPlugin interface will also allow us to side-route this request for window creation out to the browser process in the multi-process case. BUG=15421 TEST=plugins still work in test_shell Review URL: http://codereview.chromium.org/150034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19602 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webplugin.h')
-rw-r--r--webkit/glue/webplugin.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/webkit/glue/webplugin.h b/webkit/glue/webplugin.h
index 2debf9a..07d2470 100644
--- a/webkit/glue/webplugin.h
+++ b/webkit/glue/webplugin.h
@@ -52,6 +52,13 @@ class WebPlugin {
WebPlugin() { }
virtual ~WebPlugin() { }
+#if defined(OS_LINUX)
+ // Called by the plugin delegate to request a container for a new
+ // windowed plugin. This handle will later get destroyed with
+ // WillDestroyWindow.
+ virtual gfx::PluginWindowHandle CreatePluginContainer() = 0;
+#endif
+
// Called by the plugin delegate to let the WebPlugin know if the plugin is
// windowed (i.e. handle is not NULL) or windowless (handle is NULL). This
// tells the WebPlugin to send mouse/keyboard events to the plugin delegate,