bool isEmbeddedThroughSVGImage() const;
bool isEmbeddedThroughFrameContainingSVGDocument() const;
- virtual void computeIntrinsicRatioInformation(FloatSize& intrinsicSize, double& intrinsicRatio, bool& isPercentageIntrinsicSize) const OVERRIDE;
+ virtual void computeIntrinsicRatioInformation(FloatSize& intrinsicSize, double& intrinsicRatio) const OVERRIDE;
RenderObject* firstChild() const { ASSERT(children() == virtualChildren()); return children()->firstChild(); }
RenderObject* lastChild() const { ASSERT(children() == virtualChildren()); return children()->lastChild(); }
virtual void setNeedsTransformUpdate() OVERRIDE { m_needsBoundariesOrTransformUpdate = true; }
IntSize containerSize() const { return m_containerSize; }
- void setContainerSize(const IntSize& containerSize) { m_containerSize = containerSize; }
-
- virtual bool hasRelativeIntrinsicLogicalWidth() const OVERRIDE;
- virtual bool hasRelativeLogicalHeight() const OVERRIDE;
+ void setContainerSize(const IntSize& containerSize)
+ {
+ // SVGImage::draw() does a view layout prior to painting,
+ // and we need that layout to know of the new size otherwise
+ // the rendering may be incorrectly using the old size.
+ if (m_containerSize != containerSize)
+ setNeedsLayout();
+ m_containerSize = containerSize;
+ }
// localToBorderBoxTransform maps local SVG viewport coordinates to local CSS box coordinates.
const AffineTransform& localToBorderBoxTransform() const { return m_localToBorderBoxTransform; }
virtual bool canBeSelectionLeaf() const OVERRIDE { return false; }
virtual bool canHaveChildren() const OVERRIDE { return true; }
+ bool shouldApplyViewportClip() const;
void updateCachedBoundaries();
void buildLocalToBorderBoxTransform();
AffineTransform m_localToBorderBoxTransform;
bool m_isLayoutSizeChanged : 1;
bool m_needsBoundariesOrTransformUpdate : 1;
+ bool m_hasBoxDecorations : 1;
};
DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderSVGRoot, isSVGRoot());