diff options
author | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-10 20:01:35 +0000 |
---|---|---|
committer | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-10 20:01:35 +0000 |
commit | 3d1e89df95d421bcedec406019b3a9dbbf94b8c1 (patch) | |
tree | 2ed165930ca9f7520e94d49911a8245d54502478 /chrome/plugin | |
parent | cb0ce1e02b7d16ab9024da9335ab7c70c493aa4e (diff) | |
download | chromium_src-3d1e89df95d421bcedec406019b3a9dbbf94b8c1.zip chromium_src-3d1e89df95d421bcedec406019b3a9dbbf94b8c1.tar.gz chromium_src-3d1e89df95d421bcedec406019b3a9dbbf94b8c1.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.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41194 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); |