diff options
author | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-30 17:14:59 +0000 |
---|---|---|
committer | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-30 17:14:59 +0000 |
commit | 6f23fd79add82e8b9d32a502a04c081f3525b5e6 (patch) | |
tree | 44b38348c2a9083c661f0a3c1160583f109f7d10 /webkit/glue/webplugin.h | |
parent | 0b39289a3fd93eeb219fddb924e01210ac0baa1e (diff) | |
download | chromium_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.h | 7 |
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, |