| Index: content/renderer/render_widget.cc
|
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
|
| index f58b8a069a769ad30b793dc27dbc1e4523bc2e6a..01f908955aed598166fcc4a8db28f2bc9d1d0050 100644
|
| --- a/content/renderer/render_widget.cc
|
| +++ b/content/renderer/render_widget.cc
|
| @@ -1871,16 +1871,20 @@ bool RenderWidget::OnSnapshotHelper(const gfx::Rect& src_subrect,
|
| return true;
|
| }
|
|
|
| -void RenderWidget::OnRepaint(const gfx::Size& size_to_paint) {
|
| +void RenderWidget::OnRepaint(gfx::Size size_to_paint) {
|
| // During shutdown we can just ignore this message.
|
| if (!webwidget_)
|
| return;
|
|
|
| + // Even if the browser provides an empty damage rect, it's still expecting to
|
| + // receive a repaint ack so just damage the entire widget bounds.
|
| + if (size_to_paint.IsEmpty()) {
|
| + size_to_paint = size_;
|
| + }
|
| +
|
| set_next_paint_is_repaint_ack();
|
| - if (is_accelerated_compositing_active_) {
|
| - if (compositor_)
|
| - compositor_->setNeedsRedraw();
|
| - scheduleComposite();
|
| + if (is_accelerated_compositing_active_ && compositor_) {
|
| + compositor_->SetNeedsRedrawRect(gfx::Rect(size_to_paint));
|
| } else {
|
| gfx::Rect repaint_rect(size_to_paint.width(), size_to_paint.height());
|
| didInvalidateRect(repaint_rect);
|
|
|