diff options
Diffstat (limited to 'Source/WebCore/rendering/style/StyleCachedImage.h')
-rw-r--r-- | Source/WebCore/rendering/style/StyleCachedImage.h | 60 |
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) |