Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(780)

Unified Diff: Source/core/fetch/ImageResource.cpp

Issue 25627006: Generalize ImageForContainer (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/fetch/ImageResource.cpp
diff --git a/Source/core/fetch/ImageResource.cpp b/Source/core/fetch/ImageResource.cpp
index 201bcc8a880e682d1501637626b71f818ae5e229..af93dc2cca7135b73ecacf115614a908856cf161 100644
--- a/Source/core/fetch/ImageResource.cpp
+++ b/Source/core/fetch/ImageResource.cpp
@@ -93,8 +93,8 @@ void ImageResource::didRemoveClient(ResourceClient* c)
ASSERT(c->resourceClientType() == ImageResourceClient::expectedType());
m_pendingContainerSizeRequests.remove(static_cast<ImageResourceClient*>(c));
- if (m_svgImageCache)
- m_svgImageCache->removeClientFromCache(static_cast<ImageResourceClient*>(c));
+ if (m_imageCache)
+ m_imageCache->removeClientFromCache(static_cast<ImageResourceClient*>(c));
Resource::didRemoveClient(c);
}
@@ -175,7 +175,7 @@ WebCore::Image* ImageResource::imageForRenderer(const RenderObject* renderer)
return WebCore::Image::nullImage();
if (m_image->isSVGImage()) {
- WebCore::Image* image = m_svgImageCache->imageForRenderer(renderer);
+ WebCore::Image* image = m_imageCache->imageForRenderer(renderer);
if (image != WebCore::Image::nullImage())
return image;
}
@@ -193,12 +193,8 @@ void ImageResource::setContainerSizeForRenderer(const ImageResourceClient* rende
m_pendingContainerSizeRequests.set(renderer, SizeAndZoom(containerSize, containerZoom));
return;
}
- if (!m_image->isSVGImage()) {
- m_image->setContainerSize(containerSize);
- return;
- }
- m_svgImageCache->setContainerSizeForRenderer(renderer, containerSize, containerZoom);
+ m_imageCache->setContainerSizeForRenderer(renderer, containerSize, containerZoom);
}
bool ImageResource::usesImageContainerSize() const
@@ -236,8 +232,8 @@ LayoutSize ImageResource::imageSizeForRenderer(const RenderObject* renderer, flo
if (m_image->isBitmapImage() && (renderer && renderer->shouldRespectImageOrientation() == RespectImageOrientation))
imageSize = static_cast<BitmapImage*>(m_image.get())->sizeRespectingOrientation();
- else if (m_image->isSVGImage() && sizeType == NormalSize)
- imageSize = m_svgImageCache->imageSizeForRenderer(renderer);
+ else if (sizeType == NormalSize)
+ imageSize = m_imageCache->imageSizeForRenderer(renderer);
else
imageSize = m_image->size();
@@ -287,13 +283,12 @@ inline void ImageResource::createImage()
if (m_image)
return;
- if (m_response.mimeType() == "image/svg+xml") {
- RefPtr<SVGImage> svgImage = SVGImage::create(this);
- m_svgImageCache = SVGImageCache::create(svgImage.get());
- m_image = svgImage.release();
- } else {
+ if (m_response.mimeType() == "image/svg+xml")
+ m_image = SVGImage::create(this);
+ else
m_image = BitmapImage::create(this);
- }
+
+ m_imageCache = ImageCache::create(m_image.get());
if (m_image) {
// Send queued container size requests.

Powered by Google App Engine
This is Rietveld 408576698