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-29 23:57:54 +0000
committerevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-29 23:57:54 +0000
commit9fa82bb8872a34275f3e0832f33339a4d07fa33b (patch)
treec5bafa8a9d5f0cf931834ad750f909b17e4c9534 /webkit/glue/webplugin.h
parent893a5ccce13082aa85686ad142c0d8be0fb5cd70 (diff)
downloadchromium_src-9fa82bb8872a34275f3e0832f33339a4d07fa33b.zip
chromium_src-9fa82bb8872a34275f3e0832f33339a4d07fa33b.tar.gz
chromium_src-9fa82bb8872a34275f3e0832f33339a4d07fa33b.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@19560 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,