diff options
author | kbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-30 04:42:21 +0000 |
---|---|---|
committer | kbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-30 04:42:21 +0000 |
commit | dc51d1ccc18135493f01464e38ed462825ae8e35 (patch) | |
tree | 2da87df4b40a6b8d413c7c94af91b1900952b9e0 /webkit/plugins/npapi/webplugin_impl.h | |
parent | 11a7c5374fc1a712ca52d012fffc26fc10dd3d93 (diff) | |
download | chromium_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.h | 13 |
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_; |