Index: third_party/WebKit/Source/core/paint/NinePieceImagePainter.cpp |
diff --git a/third_party/WebKit/Source/core/paint/NinePieceImagePainter.cpp b/third_party/WebKit/Source/core/paint/NinePieceImagePainter.cpp |
index 65189174ef44689f96e5610c7e8e73e0672e32bc..bbc4941315410f7f29badc45edb018381dca59bf 100644 |
--- a/third_party/WebKit/Source/core/paint/NinePieceImagePainter.cpp |
+++ b/third_party/WebKit/Source/core/paint/NinePieceImagePainter.cpp |
@@ -49,8 +49,7 @@ bool NinePieceImagePainter::paint(GraphicsContext& graphicsContext, const Layout |
rectWithOutsets.expand(style.imageOutsets(ninePieceImage)); |
LayoutRect borderImageRect = rectWithOutsets; |
- IntSize imageSize = roundedIntSize(m_layoutObject.calculateImageIntrinsicDimensions(styleImage, borderImageRect.size(), |
- LayoutBoxModelObject::DoNotScaleByEffectiveZoom)); |
+ IntSize imageSize = roundedIntSize(styleImage->imageSize(&m_layoutObject, 1, borderImageRect.size())); |
IntRectOutsets borderWidths(style.borderTopWidth(), style.borderRightWidth(), |
style.borderBottomWidth(), style.borderLeftWidth()); |
@@ -68,6 +67,10 @@ bool NinePieceImagePainter::paint(GraphicsContext& graphicsContext, const Layout |
for (NinePiece piece = MinPiece; piece < MaxPiece; ++piece) { |
NinePieceImageGrid::NinePieceDrawInfo drawInfo = grid.getNinePieceDrawInfo(piece); |
+ // The nine piece grid is computed in unscaled image coordinates but must be drawn using |
+ // scaled image coordinates. |
+ drawInfo.source.scale(styleImage->imageScaleFactor()); |
+ |
if (drawInfo.isDrawable) { |
if (drawInfo.isCornerPiece) { |
graphicsContext.drawImage(image.get(), drawInfo.destination, drawInfo.source, op); |