Remove excessive include directives from WebCore/css
[WebKit-https.git] / Source / WebCore / css / CSSImageSetValue.h
index f088863..23d27f5 100644 (file)
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef CSSImageSetValue_h
-#define CSSImageSetValue_h
-
-#if ENABLE(CSS_IMAGE_SET)
+#pragma once
 
 #include "CSSValueList.h"
+#include "CachedResourceHandle.h"
+#include <wtf/Function.h>
 
 namespace WebCore {
 
+class CachedImage;
 class CachedResourceLoader;
 class Document;
-class StyleCachedImageSet;
-class StyleImage;
 struct ResourceLoaderOptions;
 
-class CSSImageSetValue : public CSSValueList {
+class CSSImageSetValue final : public CSSValueList {
 public:
-
     static Ref<CSSImageSetValue> create()
     {
         return adoptRef(*new CSSImageSetValue());
     }
     ~CSSImageSetValue();
 
-    StyleCachedImageSet* cachedImageSet(CachedResourceLoader&, const ResourceLoaderOptions&);
-
-    // Returns a StyleCachedImageSet if the best fit image has been cached already, otherwise a StylePendingImage.
-    StyleImage* cachedOrPendingImageSet(Document&);
+    std::pair<CachedImage*, float>  loadBestFitImage(CachedResourceLoader&, const ResourceLoaderOptions&);
+    CachedImage* cachedImage() const { return m_cachedImage.get(); }
 
     String customCSSText() const;
 
-    bool isPending() const { return !m_accessedBestFitImage; }
-
     struct ImageWithScale {
         String imageURL;
         float scaleFactor;
     };
 
-    bool traverseSubresources(const std::function<bool (const CachedResource&)>& handler) const;
+    bool traverseSubresources(const WTF::Function<bool (const CachedResource&)>& handler) const;
 
-    PassRefPtr<CSSImageSetValue> cloneForCSSOM() const;
+    void updateDeviceScaleFactor(const Document&);
 
 protected:
     ImageWithScale bestImageForScaleFactor();
 
 private:
     CSSImageSetValue();
-    CSSImageSetValue(const CSSImageSetValue& cloneFrom);
 
-    void detachPendingImage();
     void fillImageSet();
     static inline bool compareByScaleFactor(ImageWithScale first, ImageWithScale second) { return first.scaleFactor < second.scaleFactor; }
 
-    RefPtr<StyleImage> m_imageSet;
-    bool m_accessedBestFitImage;
-
-    // This represents the scale factor that we used to find the best fit image. It does not necessarily
-    // correspond to the scale factor of the best fit image.
-    float m_scaleFactor;
+    CachedResourceHandle<CachedImage> m_cachedImage;
+    bool m_accessedBestFitImage { false };
+    float m_bestFitImageScaleFactor { 1 };
+    float m_deviceScaleFactor { 1 };
 
     Vector<ImageWithScale> m_imagesInSet;
 };
@@ -89,7 +78,3 @@ private:
 } // namespace WebCore
 
 SPECIALIZE_TYPE_TRAITS_CSS_VALUE(CSSImageSetValue, isImageSetValue())
-
-#endif // ENABLE(CSS_IMAGE_SET)
-
-#endif // CSSImageSetValue_h