Use modern for-loops in WebCore/svg.
[WebKit-https.git] / Source / WebCore / svg / graphics / SVGImageCache.cpp
index e3a89fd..98e50f6 100644 (file)
 #include "config.h"
 #include "SVGImageCache.h"
 
-#if ENABLE(SVG)
 #include "FrameView.h"
 #include "GraphicsContext.h"
+#include "HTMLImageElement.h"
 #include "ImageBuffer.h"
+#include "LayoutSize.h"
 #include "Page.h"
 #include "RenderSVGRoot.h"
 #include "SVGImage.h"
@@ -50,7 +51,7 @@ void SVGImageCache::removeClientFromCache(const CachedImageClient* client)
     m_imageForContainerMap.remove(client);
 }
 
-void SVGImageCache::setContainerSizeForRenderer(const CachedImageClient* client, const IntSize& containerSize, float containerZoom)
+void SVGImageCache::setContainerSizeForRenderer(const CachedImageClient* client, const LayoutSize& containerSize, float containerZoom)
 {
     ASSERT(client);
     ASSERT(!containerSize.isEmpty());
@@ -62,9 +63,9 @@ void SVGImageCache::setContainerSizeForRenderer(const CachedImageClient* client,
     m_imageForContainerMap.set(client, SVGImageForContainer::create(m_svgImage, containerSizeWithoutZoom, containerZoom));
 }
 
-IntSize SVGImageCache::imageSizeForRenderer(const RenderObject* renderer) const
+FloatSize SVGImageCache::imageSizeForRenderer(const RenderObject* renderer) const
 {
-    IntSize imageSize = m_svgImage->size();
+    FloatSize imageSize = m_svgImage->size();
     if (!renderer)
         return imageSize;
 
@@ -89,10 +90,16 @@ Image* SVGImageCache::imageForRenderer(const RenderObject* renderer)
         return Image::nullImage();
 
     RefPtr<SVGImageForContainer> imageForContainer = it->value;
+    
+    Node* node = renderer->node();
+    if (is<HTMLImageElement>(node)) {
+        const AtomicString& urlString = downcast<HTMLImageElement>(*node).imageSourceURL();
+        URL url = node->document().completeURL(urlString);
+        imageForContainer->setURL(url);
+    }
+        
     ASSERT(!imageForContainer->size().isEmpty());
     return imageForContainer.get();
 }
 
 } // namespace WebCore
-
-#endif // ENABLE(SVG)