Index: Source/core/layout/svg/LayoutSVGImage.cpp |
diff --git a/Source/core/layout/svg/LayoutSVGImage.cpp b/Source/core/layout/svg/LayoutSVGImage.cpp |
index 1a7140412d0bddf002c2895a4377e1d317dcb52e..61bcf090db125b503a43ba4331a1d475fa55374e 100644 |
--- a/Source/core/layout/svg/LayoutSVGImage.cpp |
+++ b/Source/core/layout/svg/LayoutSVGImage.cpp |
@@ -92,14 +92,18 @@ bool LayoutSVGImage::updateImageViewport() |
FloatRect oldBoundaries = m_objectBoundingBox; |
SVGLengthContext lengthContext(image); |
- m_objectBoundingBox = FloatRect(image->x()->currentValue()->value(lengthContext), image->y()->currentValue()->value(lengthContext), image->width()->currentValue()->value(lengthContext), image->height()->currentValue()->value(lengthContext)); |
+ m_objectBoundingBox = FloatRect( |
+ lengthContext.valueForLength(styleRef().svgStyle().x(), styleRef(), SVGLengthMode::Width), |
+ lengthContext.valueForLength(styleRef().svgStyle().y(), styleRef(), SVGLengthMode::Height), |
+ lengthContext.valueForLength(styleRef().width(), styleRef(), SVGLengthMode::Width), |
+ lengthContext.valueForLength(styleRef().height(), styleRef(), SVGLengthMode::Height)); |
bool boundsChanged = oldBoundaries != m_objectBoundingBox; |
bool updatedViewport = false; |
ImageResource* cachedImage = m_imageResource->cachedImage(); |
if (cachedImage && cachedImage->usesImageContainerSize()) { |
FloatSize imageViewportSize = computeImageViewportSize(*cachedImage); |
- if (LayoutSize(imageViewportSize) != m_imageResource->imageSize(style()->effectiveZoom()) |
+ if (LayoutSize(imageViewportSize) != m_imageResource->imageSize(styleRef().effectiveZoom()) |
|| !containerSizeIsSetForRenderer(*cachedImage, this)) { |
m_imageResource->setContainerSizeForRenderer(roundedIntSize(imageViewportSize)); |
updatedViewport = true; |