Index: third_party/WebKit/Source/core/svg/SVGUseElement.cpp |
diff --git a/third_party/WebKit/Source/core/svg/SVGUseElement.cpp b/third_party/WebKit/Source/core/svg/SVGUseElement.cpp |
index ca7d9571a75eccc6cc91bcecf7002f44c747269f..fe8395d9c685a788366f03faa7439430b2ec6fff 100644 |
--- a/third_party/WebKit/Source/core/svg/SVGUseElement.cpp |
+++ b/third_party/WebKit/Source/core/svg/SVGUseElement.cpp |
@@ -184,16 +184,21 @@ void SVGUseElement::collectStyleForPresentationAttribute(const QualifiedName& na |
SVGGraphicsElement::collectStyleForPresentationAttribute(name, value, style); |
} |
+bool SVGUseElement::isStructurallyExternal() const |
+{ |
+ return !m_elementIdentifierIsLocal; |
+} |
+ |
void SVGUseElement::updateTargetReference() |
{ |
- KURL resolvedUrl = document().completeURL(hrefString()); |
- m_elementIdentifier = AtomicString(resolvedUrl.fragmentIdentifier()); |
- m_elementIdentifierIsLocal = resolvedUrl.isNull() |
- || equalIgnoringFragmentIdentifier(resolvedUrl, document().url()); |
+ SVGURLReferenceResolver resolver(hrefString(), document()); |
+ m_elementIdentifier = resolver.fragmentIdentifier(); |
+ m_elementIdentifierIsLocal = resolver.isLocal(); |
if (m_elementIdentifierIsLocal) { |
setDocumentResource(nullptr); |
return; |
} |
+ KURL resolvedUrl = resolver.absoluteUrl(); |
if (m_elementIdentifier.isEmpty() |
|| (m_resource && equalIgnoringFragmentIdentifier(resolvedUrl, m_resource->url()))) |
return; |