summaryrefslogtreecommitdiffstats
path: root/chrome/plugin
diff options
context:
space:
mode:
authorpinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-10 20:01:35 +0000
committerpinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-10 20:01:35 +0000
commit3d1e89df95d421bcedec406019b3a9dbbf94b8c1 (patch)
tree2ed165930ca9f7520e94d49911a8245d54502478 /chrome/plugin
parentcb0ce1e02b7d16ab9024da9335ab7c70c493aa4e (diff)
downloadchromium_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.h2
-rw-r--r--chrome/plugin/webplugin_proxy.cc22
-rw-r--r--chrome/plugin/webplugin_proxy.h9
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);