diff options
-rw-r--r-- | chrome/renderer/render_widget.cc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/chrome/renderer/render_widget.cc b/chrome/renderer/render_widget.cc index 395e87b..9d1af7b 100644 --- a/chrome/renderer/render_widget.cc +++ b/chrome/renderer/render_widget.cc @@ -506,8 +506,15 @@ void RenderWidget::DoDeferredUpdate() { params.bitmap_rect = bounds; params.dx = update.scroll_delta.x(); params.dy = update.scroll_delta.y(); - params.scroll_rect = update.scroll_rect; - params.copy_rects.swap(copy_rects); // TODO(darin): clip to bounds? + if (is_gpu_rendering_active_) { + // If painting is done via the gpu process then we clear out all damage + // rects to save the browser process from doing unecessary work. + params.scroll_rect = gfx::Rect(); + params.copy_rects.clear(); + } else { + params.scroll_rect = update.scroll_rect; + params.copy_rects.swap(copy_rects); // TODO(darin): clip to bounds? + } params.view_size = size_; params.plugin_window_moves.swap(plugin_window_moves_); params.flags = next_paint_flags_; |