| Index: Source/core/svg/SVGElement.cpp
|
| diff --git a/Source/core/svg/SVGElement.cpp b/Source/core/svg/SVGElement.cpp
|
| index 6d17e44590dc6a7c8efaed8a10da361d0bfed7ec..0c94bd4a4ad5071af6737fc8976cbbf23e51559f 100644
|
| --- a/Source/core/svg/SVGElement.cpp
|
| +++ b/Source/core/svg/SVGElement.cpp
|
| @@ -929,7 +929,8 @@ void SVGElement::sendSVGLoadEventIfPossible(bool sendParentLoadEvents)
|
| RefPtr<Element> parent;
|
| if (sendParentLoadEvents)
|
| parent = currentTarget->parentOrShadowHostElement(); // save the next parent to dispatch too incase dispatching the event changes the tree
|
| - if (hasLoadListener(currentTarget.get()))
|
| + if (hasLoadListener(currentTarget.get())
|
| + && (currentTarget->isStructurallyExternal() || currentTarget->isSVGSVGElement()))
|
| currentTarget->dispatchEvent(Event::create(EventTypeNames::load));
|
| currentTarget = (parent && parent->isSVGElement()) ? static_pointer_cast<SVGElement>(parent) : RefPtr<SVGElement>();
|
| SVGElement* element = currentTarget.get();
|
| @@ -975,7 +976,8 @@ void SVGElement::finishParsingChildren()
|
|
|
| // finishParsingChildren() is called when the close tag is reached for an element (e.g. </svg>)
|
| // we send SVGLoad events here if we can, otherwise they'll be sent when any required loads finish
|
| - sendSVGLoadEventIfPossible();
|
| + if (isSVGSVGElement())
|
| + sendSVGLoadEventIfPossible();
|
| }
|
|
|
| bool SVGElement::childShouldCreateRenderer(const Node& child) const
|
| @@ -1158,7 +1160,6 @@ bool SVGElement::isAnimatableAttribute(const QualifiedName& name) const
|
| animatableAttributes.add(SVGNames::edgeModeAttr);
|
| animatableAttributes.add(SVGNames::elevationAttr);
|
| animatableAttributes.add(SVGNames::exponentAttr);
|
| - animatableAttributes.add(SVGNames::externalResourcesRequiredAttr);
|
| animatableAttributes.add(SVGNames::filterResAttr);
|
| animatableAttributes.add(SVGNames::filterUnitsAttr);
|
| animatableAttributes.add(SVGNames::fxAttr);
|
|
|