diff options
author | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-10 14:26:16 +0000 |
---|---|---|
committer | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-10 14:26:16 +0000 |
commit | f8ee26e45e8a04bb75a3e7b0449b8acf3efb04e2 (patch) | |
tree | faf7390df7bc035edbda8458897432329040de04 /chrome/plugin | |
parent | b5e18b1d24c065bdeb874abca3e9c41b42b5192f (diff) | |
download | chromium_src-f8ee26e45e8a04bb75a3e7b0449b8acf3efb04e2.zip chromium_src-f8ee26e45e8a04bb75a3e7b0449b8acf3efb04e2.tar.gz chromium_src-f8ee26e45e8a04bb75a3e7b0449b8acf3efb04e2.tar.bz2 |
Implement the CoreAnimation drawing model for plug-ins, sharing IPC and some rendering code with the GPU Plug-in. The drawing model negotiation is currently disabled so this should have no visible impact to plug-ins.
BUG=32012
TEST=make sure the pepper GPU plug-ins still work.
Review URL: http://codereview.chromium.org/673001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41158 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/plugin')
-rw-r--r-- | chrome/plugin/webplugin_delegate_stub.h | 2 | ||||
-rw-r--r-- | chrome/plugin/webplugin_proxy.cc | 22 | ||||
-rw-r--r-- | chrome/plugin/webplugin_proxy.h | 9 |
3 files changed, 32 insertions, 1 deletions
diff --git a/chrome/plugin/webplugin_delegate_stub.h b/chrome/plugin/webplugin_delegate_stub.h index 1bbd04d..64dea79d 100644 --- a/chrome/plugin/webplugin_delegate_stub.h +++ b/chrome/plugin/webplugin_delegate_stub.h @@ -33,7 +33,7 @@ class WebInputEvent; class WebPluginDelegateImpl; // Converts the IPC messages from WebPluginDelegateProxy into calls to the -// actual WebPluginDelegate object. +// actual WebPluginDelegateImpl object. class WebPluginDelegateStub : public IPC::Channel::Listener, public IPC::Message::Sender, public base::RefCounted<WebPluginDelegateStub> { diff --git a/chrome/plugin/webplugin_proxy.cc b/chrome/plugin/webplugin_proxy.cc index ffda5c1..e7826fd 100644 --- a/chrome/plugin/webplugin_proxy.cc +++ b/chrome/plugin/webplugin_proxy.cc @@ -576,6 +576,28 @@ void WebPluginProxy::SetDeferResourceLoading(unsigned long resource_id, Send(new PluginHostMsg_DeferResourceLoading(route_id_, resource_id, defer)); } +#if defined(OS_MACOSX) +void WebPluginProxy::BindFakePluginWindowHandle() { + Send(new PluginHostMsg_BindFakePluginWindowHandle(route_id_)); +} + +void WebPluginProxy::AcceleratedFrameBuffersDidSwap( + gfx::PluginWindowHandle window) { + // TODO(pinkerton): Rename this message. + Send(new PluginHostMsg_GPUPluginBuffersSwapped(route_id_, window)); +} + +void WebPluginProxy::SetAcceleratedSurface(gfx::PluginWindowHandle window, + int32 width, + int32 height, + uint64 accelerated_surface_identifier) { + // TODO(pinkerton): Rename this message. + Send(new PluginHostMsg_GPUPluginSetIOSurface(route_id_, window, width, + height, + accelerated_surface_identifier)); +} +#endif + void WebPluginProxy::OnPaint(const gfx::Rect& damaged_rect) { child_process_logging::SetActiveURL(page_url_); diff --git a/chrome/plugin/webplugin_proxy.h b/chrome/plugin/webplugin_proxy.h index 0beb9cb..9329d6c 100644 --- a/chrome/plugin/webplugin_proxy.h +++ b/chrome/plugin/webplugin_proxy.h @@ -132,6 +132,15 @@ class WebPluginProxy : public webkit_glue::WebPlugin { webkit_glue::WebPluginResourceClient* resource_client); gfx::NativeViewId containing_window() { return containing_window_; } +#if defined(OS_MACOSX) + virtual void BindFakePluginWindowHandle(); + virtual void AcceleratedFrameBuffersDidSwap(gfx::PluginWindowHandle window); + virtual void SetAcceleratedSurface(gfx::PluginWindowHandle window, + int32 width, + int32 height, + uint64 accelerated_surface_identifier); +#endif + private: bool Send(IPC::Message* msg); |