summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderImageResource.cpp
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/rendering/RenderImageResource.cpp
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/WebCore/rendering/RenderImageResource.cpp')
-rw-r--r--Source/WebCore/rendering/RenderImageResource.cpp27
1 files changed, 20 insertions, 7 deletions
diff --git a/Source/WebCore/rendering/RenderImageResource.cpp b/Source/WebCore/rendering/RenderImageResource.cpp
index e6a1dc459..bd1e55e40 100644
--- a/Source/WebCore/rendering/RenderImageResource.cpp
+++ b/Source/WebCore/rendering/RenderImageResource.cpp
@@ -31,6 +31,7 @@
#include "CachedImage.h"
#include "Image.h"
#include "RenderElement.h"
+#include "RenderImage.h"
#include "RenderImageResourceStyleImage.h"
namespace WebCore {
@@ -55,8 +56,10 @@ void RenderImageResource::shutdown()
{
ASSERT(m_renderer);
- if (m_cachedImage)
- m_cachedImage->removeClient(m_renderer);
+ if (m_cachedImage) {
+ image()->stopAnimation();
+ m_cachedImage->removeClient(*m_renderer);
+ }
}
void RenderImageResource::setCachedImage(CachedImage* newImage)
@@ -67,10 +70,10 @@ void RenderImageResource::setCachedImage(CachedImage* newImage)
return;
if (m_cachedImage)
- m_cachedImage->removeClient(m_renderer);
+ m_cachedImage->removeClient(*m_renderer);
m_cachedImage = newImage;
if (m_cachedImage) {
- m_cachedImage->addClient(m_renderer);
+ m_cachedImage->addClient(*m_renderer);
if (m_cachedImage->errorOccurred())
m_renderer->imageChanged(m_cachedImage.get());
}
@@ -89,7 +92,7 @@ void RenderImageResource::resetAnimation()
m_renderer->repaint();
}
-PassRefPtr<Image> RenderImageResource::image(int, int) const
+RefPtr<Image> RenderImageResource::image(const IntSize&) const
{
return m_cachedImage ? m_cachedImage->imageForRenderer(m_renderer) : Image::nullImage();
}
@@ -118,12 +121,22 @@ bool RenderImageResource::imageHasRelativeHeight() const
LayoutSize RenderImageResource::imageSize(float multiplier) const
{
- return m_cachedImage ? m_cachedImage->imageSizeForRenderer(m_renderer, multiplier) : LayoutSize();
+ return getImageSize(multiplier, CachedImage::UsedSize);
}
LayoutSize RenderImageResource::intrinsicSize(float multiplier) const
{
- return m_cachedImage ? m_cachedImage->imageSizeForRenderer(m_renderer, multiplier, CachedImage::IntrinsicSize) : LayoutSize();
+ return getImageSize(multiplier, CachedImage::IntrinsicSize);
+}
+
+LayoutSize RenderImageResource::getImageSize(float multiplier, CachedImage::SizeType type) const
+{
+ if (!m_cachedImage)
+ return LayoutSize();
+ LayoutSize size = m_cachedImage->imageSizeForRenderer(m_renderer, multiplier, type);
+ if (is<RenderImage>(m_renderer))
+ size.scale(downcast<RenderImage>(*m_renderer).imageDevicePixelRatio());
+ return size;
}
} // namespace WebCore