Index: Source/core/svg/SVGUseElement.cpp |
diff --git a/Source/core/svg/SVGUseElement.cpp b/Source/core/svg/SVGUseElement.cpp |
index 9bdf713ca431656f4cddae0971b08de71e86df00..d06db557efd1aa18c5a7cd458cb1722a9ace7330 100644 |
--- a/Source/core/svg/SVGUseElement.cpp |
+++ b/Source/core/svg/SVGUseElement.cpp |
@@ -167,10 +167,10 @@ Node::InsertionNotificationRequest SVGUseElement::insertedInto(ContainerNode* ro |
if (!m_wasInsertedByParser) { |
buildPendingResource(); |
- m_haveFiredLoadEvent = true; |
- sendSVGLoadEventIfPossibleAsynchronously(); |
+ if (!isStructurallyExternal()) { |
+ sendSVGLoadEventIfPossibleAsynchronously(); |
+ } |
} |
- |
return InsertionDone; |
} |
@@ -943,6 +943,12 @@ void SVGUseElement::notifyFinished(Resource* resource) |
ASSERT(m_haveFiredLoadEvent); |
else if (m_haveFiredLoadEvent) |
return; |
+ if (!isStructurallyExternal()) |
+ return; |
+ |
+ ASSERT(!m_haveFiredLoadEvent); |
+ m_haveFiredLoadEvent = true; |
+ sendSVGLoadEventIfPossible(); |
} |
} |
@@ -969,7 +975,6 @@ bool SVGUseElement::instanceTreeIsLoading(SVGElementInstance* targetElementInsta |
void SVGUseElement::finishParsingChildren() |
{ |
SVGGraphicsElement::finishParsingChildren(); |
- m_haveFiredLoadEvent = true; |
if (m_wasInsertedByParser) { |
buildPendingResource(); |
m_wasInsertedByParser = false; |