void SVGScriptElement::svgAttributeChanged(const QualifiedName& attrName) { InstanceInvalidationGuard guard(*this); if (SVGURIReference::isKnownAttribute(attrName)) { handleSourceAttribute(href()); return; } SVGExternalResourcesRequired::handleAttributeChange(this, attrName); SVGElement::svgAttributeChanged(attrName); }
void SVGScriptElement::svgAttributeChanged(const QualifiedName& attrName) { SVGElement::svgAttributeChanged(attrName); if (SVGURIReference::isKnownAttribute(attrName)) handleSourceAttribute(m_data, href()); else if (SVGExternalResourcesRequired::isKnownAttribute(attrName)) { // Handle dynamic updates of the 'externalResourcesRequired' attribute. Only possible case: changing from 'true' to 'false' // causes an immediate dispatch of the SVGLoad event. If the attribute value was 'false' before inserting the script element // in the document, the SVGLoad event has already been dispatched. if (!externalResourcesRequiredBaseValue() && !m_data.haveFiredLoadEvent() && !m_data.createdByParser()) { m_data.setHaveFiredLoadEvent(true); ASSERT(haveLoadedRequiredResources()); sendSVGLoadEventIfPossible(); } } }
void SVGScriptElement::svgAttributeChanged(const QualifiedName& attrName) { if (!isSupportedAttribute(attrName)) { SVGElement::svgAttributeChanged(attrName); return; } InstanceInvalidationGuard guard(*this); if (attrName == SVGNames::typeAttr || attrName == HTMLNames::onerrorAttr) return; if (SVGURIReference::isKnownAttribute(attrName)) { handleSourceAttribute(href()); return; } if (SVGExternalResourcesRequired::handleAttributeChange(this, attrName)) return; ASSERT_NOT_REACHED(); }