diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-01 03:47:11 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-01 03:47:11 +0000 |
commit | 51780eba10f8100475f0983e7b465b6b0211b1d9 (patch) | |
tree | 793cacb92a887bb44b673482bd4de35cd58ebd81 /chrome/renderer/webplugin_delegate_proxy.h | |
parent | 3abd6bbdfb0a6d8367a2c56d4846e3d70d9da660 (diff) | |
download | chromium_src-51780eba10f8100475f0983e7b465b6b0211b1d9.zip chromium_src-51780eba10f8100475f0983e7b465b6b0211b1d9.tar.gz chromium_src-51780eba10f8100475f0983e7b465b6b0211b1d9.tar.bz2 |
Fix the painting problem with Stree View and Flash 10. After the size of the plugin changes, we generate a new backing store. Flash 9 invalidates the rectangle, but Flash 10 doesn't. As a result we paint from a blank backing store.
The fix is to keep track of which part of the backing store has been painted into by the plugin, and if the renderer tries to paint an area that falls outside of it, do a synchronous paint.
Also get rid of first_paint_, as it was introduced during a failed attempt to make plugin loading asynchronous.
Review URL: http://codereview.chromium.org/10792
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6128 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/webplugin_delegate_proxy.h')
-rw-r--r-- | chrome/renderer/webplugin_delegate_proxy.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/chrome/renderer/webplugin_delegate_proxy.h b/chrome/renderer/webplugin_delegate_proxy.h index a11d083..392682c 100644 --- a/chrome/renderer/webplugin_delegate_proxy.h +++ b/chrome/renderer/webplugin_delegate_proxy.h @@ -150,7 +150,6 @@ class WebPluginDelegateProxy : public WebPluginDelegate, RenderView* render_view_; WebPlugin* plugin_; bool windowless_; - bool first_paint_; scoped_refptr<PluginChannelHost> channel_host_; std::string mime_type_; std::string clsid_; @@ -188,6 +187,8 @@ class WebPluginDelegateProxy : public WebPluginDelegate, scoped_ptr<gfx::PlatformCanvasWin> transport_store_canvas_; scoped_ptr<base::SharedMemory> background_store_; scoped_ptr<gfx::PlatformCanvasWin> background_store_canvas_; + // This lets us know which portion of the backing store has been painted into. + gfx::Rect backing_store_painted_; DISALLOW_EVIL_CONSTRUCTORS(WebPluginDelegateProxy); }; |