Index: ui/compositor/layer.cc |
diff --git a/ui/compositor/layer.cc b/ui/compositor/layer.cc |
index a3ae747b8059df56d146b13ef77b935cfb073fc3..6c30d52b8a4d5367c1310326fec0796b1b6a0588 100644 |
--- a/ui/compositor/layer.cc |
+++ b/ui/compositor/layer.cc |
@@ -488,11 +488,19 @@ void Layer::paintContents(WebKit::WebCanvas* web_canvas, |
WebKit::WebRect& opaque) { |
#endif |
TRACE_EVENT0("ui", "Layer::paintContents"); |
- gfx::Canvas canvas(web_canvas, |
- ui::GetScaleFactorFromScale(device_scale_factor_), scale_content_); |
+ scoped_ptr<gfx::Canvas> canvas(gfx::Canvas::CreateCanvasWithoutScaling( |
+ web_canvas, ui::GetScaleFactorFromScale(device_scale_factor_))); |
+ |
+ if (scale_content_) { |
+ canvas->Save(); |
+ canvas->sk_canvas()->scale(SkFloatToScalar(device_scale_factor_), |
+ SkFloatToScalar(device_scale_factor_)); |
+ } |
if (delegate_) |
- delegate_->OnPaintLayer(&canvas); |
+ delegate_->OnPaintLayer(canvas.get()); |
+ if (scale_content_) |
+ canvas->Restore(); |
} |
unsigned Layer::prepareTexture(WebKit::WebTextureUpdater& /* updater */) { |