Index: third_party/WebKit/Source/core/svg/graphics/SVGImage.h |
diff --git a/third_party/WebKit/Source/core/svg/graphics/SVGImage.h b/third_party/WebKit/Source/core/svg/graphics/SVGImage.h |
index c2009f217fc06e7d7a7b924d8382471624aad106..721bd236c05729fccdded4fc2cbdc97192813be2 100644 |
--- a/third_party/WebKit/Source/core/svg/graphics/SVGImage.h |
+++ b/third_party/WebKit/Source/core/svg/graphics/SVGImage.h |
@@ -55,7 +55,7 @@ public: |
bool isSVGImage() const override { return true; } |
bool isTextureBacked() override { return false; } |
- IntSize size() const override { return m_intrinsicSize; } |
+ IntSize size() const override { return m_concreteObjectSize; } |
bool currentFrameHasSingleSecurityOrigin() const override; |
@@ -90,6 +90,7 @@ private: |
String filenameExtension() const override; |
+ FloatSize calculateConcreteObjectSize(const FloatSize&) const; |
IntSize containerSize() const; |
bool usesContainerSize() const override { return true; } |
void computeIntrinsicDimensions(Length& intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio) override; |
@@ -114,7 +115,19 @@ private: |
OwnPtrWillBePersistent<SVGImageChromeClient> m_chromeClient; |
OwnPtrWillBePersistent<Page> m_page; |
- IntSize m_intrinsicSize; |
+ |
+ // "The concrete object size is the result of combining an |
+ // object’s intrinsic dimensions and specified size with the |
+ // default object size of the context it’s used in, producing a |
+ // rectangle with a definite width and height." |
+ // |
+ // https://drafts.csswg.org/css-images-3/#concrete-object-size |
+ // |
+ // Note: For SVGImage there are no specified size |
+ // constraints. Such constraints are handled by the layout |
+ // machinery in LayoutReplaced. An image has only intrinsic size, |
+ // aspect ratio and default object size to consider. |
+ IntSize m_concreteObjectSize; |
}; |
DEFINE_IMAGE_TYPE_CASTS(SVGImage); |