summaryrefslogtreecommitdiffstats
path: root/webkit/plugins/npapi/webplugin_impl.h
diff options
context:
space:
mode:
authorkbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-30 04:42:21 +0000
committerkbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-30 04:42:21 +0000
commitdc51d1ccc18135493f01464e38ed462825ae8e35 (patch)
tree2da87df4b40a6b8d413c7c94af91b1900952b9e0 /webkit/plugins/npapi/webplugin_impl.h
parent11a7c5374fc1a712ca52d012fffc26fc10dd3d93 (diff)
downloadchromium_src-dc51d1ccc18135493f01464e38ed462825ae8e35.zip
chromium_src-dc51d1ccc18135493f01464e38ed462825ae8e35.tar.gz
chromium_src-dc51d1ccc18135493f01464e38ed462825ae8e35.tar.bz2
Render Core Animation plugins through WebKit's compositor rather than
directly to the screen in the browser process. The new composited code path is now the default, though the old code path has been left in place under a command line flag while we gain confidence. Issue 105344 has been filed about removing the old code path. The new code path does not currently support 10.5. The consequence is that plugins using the InvalidatingCoreAnimation rendering model will not work on this version of Mac OS. Pepper 3D is not affected; it now uses a different rendering path. Changed the type of IOSurfaces' IDs from uint64 to uint32 in a few places throughout the code to match the IOSurfaceID typedef in the system header. This was necessary in order to simplify integration with Chrome's OpenGL code. There is a known problem in the new code path with garbage occasionally being drawn to the plugin's area during live resizing of Core Animation plugins. Issue 105346 has been filed to track this. It is unclear whether the additional complexity of the fix that is likely needed is worth it. Tested manually with the following content, with and without the --disable-composited-core-animation-plugins flag: - YouTube (does not trigger this code path) - Google+ Hangouts - http://unity3d.com/gallery/demos/live-demos (Unity 3D) - http://www.erain.com/labs/molehill/ (Stage 3D in Flash 11) - http://www.nissan-stagejuk3d.com/ (Stage 3D in Flash 11, live resizing; web site is flaky, sometimes fails to start) BUG=38967 TEST=manual testing with above test cases Review URL: http://codereview.chromium.org/8678037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112126 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/plugins/npapi/webplugin_impl.h')
-rw-r--r--webkit/plugins/npapi/webplugin_impl.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/webkit/plugins/npapi/webplugin_impl.h b/webkit/plugins/npapi/webplugin_impl.h
index c9c798c..ec0f30f 100644
--- a/webkit/plugins/npapi/webplugin_impl.h
+++ b/webkit/plugins/npapi/webplugin_impl.h
@@ -109,6 +109,13 @@ class WebPluginImpl : public WebPlugin,
virtual std::string GetCookies(const GURL& url,
const GURL& first_party_for_cookies) OVERRIDE;
virtual void URLRedirectResponse(bool allow, int resource_id) OVERRIDE;
+#if defined(OS_MACOSX)
+ virtual void AcceleratedPluginEnabledRendering() OVERRIDE;
+ virtual void AcceleratedPluginAllocatedIOSurface(int32 width,
+ int32 height,
+ uint32 surface_id) OVERRIDE;
+ virtual void AcceleratedPluginSwappedIOSurface() OVERRIDE;
+#endif
// Given a (maybe partial) url, completes using the base url.
GURL CompleteURL(const char* url);
@@ -255,6 +262,12 @@ class WebPluginImpl : public WebPlugin,
bool windowless_;
gfx::PluginWindowHandle window_;
+#if defined(OS_MACOSX)
+ bool next_io_surface_allocated_;
+ int32 next_io_surface_width_;
+ int32 next_io_surface_height_;
+ uint32 next_io_surface_id_;
+#endif
bool accepts_input_events_;
base::WeakPtr<WebPluginPageDelegate> page_delegate_;
WebKit::WebFrame* webframe_;