summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/style/StyleCachedImage.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/style/StyleCachedImage.h')
-rw-r--r--Source/WebCore/rendering/style/StyleCachedImage.h60
1 files changed, 35 insertions, 25 deletions
diff --git a/Source/WebCore/rendering/style/StyleCachedImage.h b/Source/WebCore/rendering/style/StyleCachedImage.h
index 0ef45d2d6..b8794a3ad 100644
--- a/Source/WebCore/rendering/style/StyleCachedImage.h
+++ b/Source/WebCore/rendering/style/StyleCachedImage.h
@@ -21,8 +21,7 @@
*
*/
-#ifndef StyleCachedImage_h
-#define StyleCachedImage_h
+#pragma once
#include "CachedImageClient.h"
#include "CachedResourceHandle.h"
@@ -30,39 +29,50 @@
namespace WebCore {
+class CSSValue;
class CachedImage;
+class Document;
-class StyleCachedImage final : public StyleImage, private CachedImageClient {
+class StyleCachedImage final : public StyleImage {
WTF_MAKE_FAST_ALLOCATED;
public:
- static PassRefPtr<StyleCachedImage> create(CachedImage* image) { return adoptRef(new StyleCachedImage(image)); }
+ static Ref<StyleCachedImage> create(CSSValue& cssValue) { return adoptRef(*new StyleCachedImage(cssValue)); }
virtual ~StyleCachedImage();
- virtual CachedImage* cachedImage() const override { return m_image.get(); }
+ bool operator==(const StyleImage& other) const override;
-private:
- virtual WrappedImagePtr data() const override { return m_image.get(); }
+ CachedImage* cachedImage() const override;
+
+ WrappedImagePtr data() const override { return m_cachedImage.get(); }
- virtual PassRefPtr<CSSValue> cssValue() const override;
+ Ref<CSSValue> cssValue() const override;
- virtual bool canRender(const RenderObject*, float multiplier) const override;
- virtual bool isLoaded() const override;
- virtual bool errorOccurred() const override;
- virtual LayoutSize imageSize(const RenderElement*, float multiplier) const override;
- virtual bool imageHasRelativeWidth() const override;
- virtual bool imageHasRelativeHeight() const override;
- virtual void computeIntrinsicDimensions(const RenderElement*, Length& intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio) override;
- virtual bool usesImageContainerSize() const override;
- virtual void setContainerSizeForRenderer(const RenderElement*, const IntSize&, float) override;
- virtual void addClient(RenderElement*) override;
- virtual void removeClient(RenderElement*) override;
- virtual PassRefPtr<Image> image(RenderElement*, const IntSize&) const override;
- virtual bool knownToBeOpaque(const RenderElement*) const override;
+ bool canRender(const RenderElement*, float multiplier) const override;
+ bool isPending() const override;
+ void load(CachedResourceLoader&, const ResourceLoaderOptions&) override;
+ bool isLoaded() const override;
+ bool errorOccurred() const override;
+ FloatSize imageSize(const RenderElement*, float multiplier) const override;
+ bool imageHasRelativeWidth() const override;
+ bool imageHasRelativeHeight() const override;
+ void computeIntrinsicDimensions(const RenderElement*, Length& intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio) override;
+ bool usesImageContainerSize() const override;
+ void setContainerSizeForRenderer(const RenderElement*, const FloatSize&, float) override;
+ void addClient(RenderElement*) override;
+ void removeClient(RenderElement*) override;
+ RefPtr<Image> image(RenderElement*, const FloatSize&) const override;
+ float imageScaleFactor() const override;
+ bool knownToBeOpaque(const RenderElement*) const override;
- explicit StyleCachedImage(CachedImage*);
+private:
+ StyleCachedImage(CSSValue&);
- CachedResourceHandle<CachedImage> m_image;
+ Ref<CSSValue> m_cssValue;
+ bool m_isPending { true };
+ mutable float m_scaleFactor { 1 };
+ mutable CachedResourceHandle<CachedImage> m_cachedImage;
};
-}
-#endif
+} // namespace WebCore
+
+SPECIALIZE_TYPE_TRAITS_STYLE_IMAGE(StyleCachedImage, isCachedImage)