diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-16 23:04:23 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-16 23:04:23 +0000 |
commit | d7f4595986302dcf131b943152a843d067e53c1e (patch) | |
tree | 7165e6c839aaae33587dab4dbc28df862d1c8428 /chrome/renderer/webplugin_delegate_proxy.cc | |
parent | efb07436b9ba4737247cdf0e8ba0529e27942468 (diff) | |
download | chromium_src-d7f4595986302dcf131b943152a843d067e53c1e.zip chromium_src-d7f4595986302dcf131b943152a843d067e53c1e.tar.gz chromium_src-d7f4595986302dcf131b943152a843d067e53c1e.tar.bz2 |
Improve scrolling performance when there are many windowed plugins in a page.
This works by parenting windowed plugins with an HWND that's hosted in the browser process, so that no synchronous cross process messages are used when scrolling.
BUG=5428
Review URL: http://codereview.chromium.org/18082
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8239 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/webplugin_delegate_proxy.cc')
-rw-r--r-- | chrome/renderer/webplugin_delegate_proxy.cc | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/chrome/renderer/webplugin_delegate_proxy.cc b/chrome/renderer/webplugin_delegate_proxy.cc index f4c61a2..a13053b 100644 --- a/chrome/renderer/webplugin_delegate_proxy.cc +++ b/chrome/renderer/webplugin_delegate_proxy.cc @@ -152,7 +152,6 @@ WebPluginDelegateProxy::WebPluginDelegateProxy(const std::string& mime_type, windowless_(false), npobject_(NULL), send_deferred_update_geometry_(false), - visible_(false), sad_plugin_(NULL), window_script_object_(NULL), transparent_(false), @@ -196,8 +195,6 @@ void WebPluginDelegateProxy::FlushGeometryUpdates() { Send(new PluginMsg_UpdateGeometry(instance_id_, plugin_rect_, deferred_clip_rect_, - deferred_cutout_rects_, - visible_, NULL, NULL)); } @@ -350,14 +347,10 @@ void WebPluginDelegateProxy::OnChannelError() { void WebPluginDelegateProxy::UpdateGeometry( const gfx::Rect& window_rect, - const gfx::Rect& clip_rect, - const std::vector<gfx::Rect>& cutout_rects, - bool visible) { + const gfx::Rect& clip_rect) { plugin_rect_ = window_rect; if (!windowless_) { deferred_clip_rect_ = clip_rect; - deferred_cutout_rects_ = cutout_rects; - visible_ = visible; send_deferred_update_geometry_ = true; return; } @@ -387,7 +380,7 @@ void WebPluginDelegateProxy::UpdateGeometry( } IPC::Message* msg = new PluginMsg_UpdateGeometry( - instance_id_, window_rect, clip_rect, cutout_rects, visible, + instance_id_, window_rect, clip_rect, transport_store_handle, background_store_handle); msg->set_unblock(true); Send(msg); |