Index: Source/core/svg/SVGForeignObjectElement.cpp |
diff --git a/Source/core/svg/SVGForeignObjectElement.cpp b/Source/core/svg/SVGForeignObjectElement.cpp |
index ce576e8d3c9a3db58f9018a9b3705feda78dcff8..5181ab89732b0890701b978f6dfba9f05e3898d6 100644 |
--- a/Source/core/svg/SVGForeignObjectElement.cpp |
+++ b/Source/core/svg/SVGForeignObjectElement.cpp |
@@ -55,18 +55,6 @@ DEFINE_TRACE(SVGForeignObjectElement) |
DEFINE_NODE_FACTORY(SVGForeignObjectElement) |
-bool SVGForeignObjectElement::isSupportedAttribute(const QualifiedName& attrName) |
-{ |
- DEFINE_STATIC_LOCAL(HashSet<QualifiedName>, supportedAttributes, ()); |
- if (supportedAttributes.isEmpty()) { |
- supportedAttributes.add(SVGNames::xAttr); |
- supportedAttributes.add(SVGNames::yAttr); |
- supportedAttributes.add(SVGNames::widthAttr); |
- supportedAttributes.add(SVGNames::heightAttr); |
- } |
- return supportedAttributes.contains<SVGAttributeHashTranslator>(attrName); |
-} |
- |
bool SVGForeignObjectElement::isPresentationAttribute(const QualifiedName& name) const |
{ |
if (name == SVGNames::xAttr || name == SVGNames::yAttr |
@@ -100,18 +88,13 @@ void SVGForeignObjectElement::collectStyleForPresentationAttribute(const Qualifi |
void SVGForeignObjectElement::svgAttributeChanged(const QualifiedName& attrName) |
{ |
- if (!isSupportedAttribute(attrName)) { |
- SVGGraphicsElement::svgAttributeChanged(attrName); |
- return; |
- } |
- |
- SVGElement::InvalidationGuard invalidationGuard(this); |
- |
bool isWidthHeightAttribute = attrName == SVGNames::widthAttr |
|| attrName == SVGNames::heightAttr; |
bool isXYAttribute = attrName == SVGNames::xAttr || attrName == SVGNames::yAttr; |
if (isXYAttribute || isWidthHeightAttribute) { |
+ SVGElement::InvalidationGuard invalidationGuard(this); |
+ |
invalidateSVGPresentationAttributeStyle(); |
setNeedsStyleRecalc(LocalStyleChange, |
isWidthHeightAttribute ? StyleChangeReasonForTracing::create(StyleChangeReason::SVGContainerSizeChange) : StyleChangeReasonForTracing::fromAttribute(attrName)); |
@@ -119,7 +102,11 @@ void SVGForeignObjectElement::svgAttributeChanged(const QualifiedName& attrName) |
updateRelativeLengthsInformation(); |
if (LayoutObject* renderer = this->layoutObject()) |
markForLayoutAndParentResourceInvalidation(renderer); |
+ |
+ return; |
} |
+ |
+ SVGGraphicsElement::svgAttributeChanged(attrName); |
} |
LayoutObject* SVGForeignObjectElement::createLayoutObject(const ComputedStyle&) |