diff options
author | piman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-30 19:26:52 +0000 |
---|---|---|
committer | piman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-30 19:26:52 +0000 |
commit | 2f5b1a172cf64e40d9e7ae97ef9ecb5ecd5fa865 (patch) | |
tree | 1b5660cd5010281a9fd1ce4d6f9892ec8d5b0534 /chrome/plugin/webplugin_proxy.h | |
parent | 70cc766c4b3e34140ceb3b534a60393a3ba12731 (diff) | |
download | chromium_src-2f5b1a172cf64e40d9e7ae97ef9ecb5ecd5fa865.zip chromium_src-2f5b1a172cf64e40d9e7ae97ef9ecb5ecd5fa865.tar.gz chromium_src-2f5b1a172cf64e40d9e7ae97ef9ecb5ecd5fa865.tar.bz2 |
linux: add a GtkPlug / GtkSocket pair in the plugin process
Some plugins assume that the GtkSocket container is in the same process as the plugin, so we give them one.
This fixes bug 16928 and the gdk_window_get_origin issue.
BUG=16928
Review URL: http://codereview.chromium.org/160380
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22083 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/plugin/webplugin_proxy.h')
-rw-r--r-- | chrome/plugin/webplugin_proxy.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/chrome/plugin/webplugin_proxy.h b/chrome/plugin/webplugin_proxy.h index 9454d28..38a3879 100644 --- a/chrome/plugin/webplugin_proxy.h +++ b/chrome/plugin/webplugin_proxy.h @@ -190,6 +190,14 @@ class WebPluginProxy : public WebPlugin { scoped_ptr<TransportDIB> background_dib_; scoped_ptr<skia::PlatformCanvas> windowless_canvas_; scoped_ptr<skia::PlatformCanvas> background_canvas_; + + // On Linux some plugins assume that the GtkSocket container is in the same + // process. So we create a GtkPlug to plug into the browser's container, and + // a GtkSocket to hold the plugin. container_ is the original container XID + // coming from the browser. + gfx::PluginWindowHandle container_; + GtkWidget *plug_; + GtkWidget *socket_; #endif ScopedRunnableMethodFactory<WebPluginProxy> runnable_method_factory_; |