| Index: content/renderer/render_widget.cc
|
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
|
| index 960fa49933998665f336e8b1172c1682d9403995..ce7b54e1802ea83a32bf17e003c2645a427a83f7 100644
|
| --- a/content/renderer/render_widget.cc
|
| +++ b/content/renderer/render_widget.cc
|
| @@ -534,8 +534,19 @@ void RenderWidget::PaintRect(const gfx::Rect& rect,
|
| SkShader::kRepeat_TileMode,
|
| SkShader::kRepeat_TileMode);
|
| paint.setShader(shader)->unref();
|
| - paint.setXfermodeMode(SkXfermode::kSrcOver_Mode);
|
| +
|
| + // Use kSrc_Mode to handle background_ transparency properly.
|
| + paint.setXfermodeMode(SkXfermode::kSrc_Mode);
|
| +
|
| + // Canvas could contain multiple update rects. Clip to given rect so that
|
| + // we don't accidentally clear other update rects.
|
| + canvas->save();
|
| + SkRect clip;
|
| + clip.set(SkIntToScalar(rect.x()), SkIntToScalar(rect.y()),
|
| + SkIntToScalar(rect.right()), SkIntToScalar(rect.bottom()));
|
| + canvas->clipRect(clip);
|
| canvas->drawPaint(paint);
|
| + canvas->restore();
|
| }
|
|
|
| // First see if this rect is a plugin that can paint itself faster.
|
|
|