Reviewed by Eric.
Refactor HTMLImageLoader/SVGImageLoader code.
Move html/HTMLImageLoader.* to loader/ImageLoader.*
Let HTMLImageLoader & SVGImageLoader inherit from the new base class.
SVGImageLoader used to inherit from HTMLImageLoader which is awkward.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36712 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/svg/SVGImageElement.cpp b/WebCore/svg/SVGImageElement.cpp
index ff1f644..d7daebc 100644
--- a/WebCore/svg/SVGImageElement.cpp
+++ b/WebCore/svg/SVGImageElement.cpp
@@ -131,9 +131,27 @@
void SVGImageElement::attach()
{
SVGStyledTransformableElement::attach();
- m_imageLoader.updateFromElement();
- if (RenderSVGImage* imageObj = static_cast<RenderSVGImage*>(renderer()))
+
+ if (RenderSVGImage* imageObj = static_cast<RenderSVGImage*>(renderer())) {
+ if (imageObj->hasImage())
+ return;
+
imageObj->setCachedImage(m_imageLoader.image());
+ }
+}
+
+void SVGImageElement::insertedIntoDocument()
+{
+ SVGStyledTransformableElement::insertedIntoDocument();
+
+ // Update image loader, as soon as we're living in the tree.
+ // We can only resolve base URIs properly, after that!
+ m_imageLoader.updateFromElement();
+}
+
+const QualifiedName& SVGImageElement::imageSourceAttributeName() const
+{
+ return XLinkNames::hrefAttr;
}
void SVGImageElement::getSubresourceAttributeStrings(Vector<String>& urls) const