Title: [204560] trunk/Source/WebCore
Revision
204560
Author
[email protected]
Date
2016-08-17 09:37:45 -0700 (Wed, 17 Aug 2016)

Log Message

Remove StyleCachedImageSet
https://bugs.webkit.org/show_bug.cgi?id=160941

Reviewed by Simon Fraser.

It is almost the same as StyleCachedImage. Just use that.

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::cachedImage):
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::detachPendingImage):
(WebCore::CSSImageSetValue::~CSSImageSetValue):
(WebCore::CSSImageSetValue::fillImageSet):
(WebCore::CSSImageSetValue::bestImageForScaleFactor):
(WebCore::CSSImageSetValue::bestFitImage):
(WebCore::CSSImageSetValue::cachedOrPendingImageSet):
(WebCore::CSSImageSetValue::customCSSText):
(WebCore::CSSImageSetValue::traverseSubresources):
(WebCore::CSSImageSetValue::cachedImageSet): Deleted.
* css/CSSImageSetValue.h:
(WebCore::CSSImageSetValue::create):
(WebCore::CSSImageSetValue::compareByScaleFactor):
* css/StyleResolver.cpp:
* page/EventHandler.cpp:
* rendering/style/ShapeValue.cpp:
(WebCore::ShapeValue::isImageValid):
* rendering/style/StyleAllInOne.cpp:
* rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::StyleCachedImage):

    Add scale factor and CSSImageSetValue backpointer, the only additional features of StyleCachedImageSet.

(WebCore::StyleCachedImage::cssValue):
(WebCore::StyleCachedImage::imageSize):
(WebCore::StyleCachedImage::imageHasRelativeWidth):
* rendering/style/StyleCachedImage.h:
* rendering/style/StyleCachedImageSet.cpp: Removed.
* rendering/style/StyleCachedImageSet.h: Removed.
* rendering/style/StyleImage.h:
(WebCore::StyleImage::isCachedImage):
(WebCore::StyleImage::isPendingImage):
(WebCore::StyleImage::isGeneratedImage):
(WebCore::StyleImage::StyleImage):
(WebCore::StyleImage::isCachedImageSet): Deleted.
* style/StylePendingResources.cpp:
(WebCore::Style::loadPendingImage):

Modified Paths

Removed Paths

Diff

Modified: trunk/Source/WebCore/CMakeLists.txt (204559 => 204560)


--- trunk/Source/WebCore/CMakeLists.txt	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/CMakeLists.txt	2016-08-17 16:37:45 UTC (rev 204560)
@@ -2578,7 +2578,6 @@
     rendering/style/StyleBackgroundData.cpp
     rendering/style/StyleBoxData.cpp
     rendering/style/StyleCachedImage.cpp
-    rendering/style/StyleCachedImageSet.cpp
     rendering/style/StyleDeprecatedFlexibleBoxData.cpp
     rendering/style/StyleFilterData.cpp
     rendering/style/StyleFlexibleBoxData.cpp

Modified: trunk/Source/WebCore/ChangeLog (204559 => 204560)


--- trunk/Source/WebCore/ChangeLog	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/ChangeLog	2016-08-17 16:37:45 UTC (rev 204560)
@@ -1,3 +1,54 @@
+2016-08-17  Antti Koivisto  <[email protected]>
+
+        Remove StyleCachedImageSet
+        https://bugs.webkit.org/show_bug.cgi?id=160941
+
+        Reviewed by Simon Fraser.
+
+        It is almost the same as StyleCachedImage. Just use that.
+
+        * CMakeLists.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * css/CSSCursorImageValue.cpp:
+        (WebCore::CSSCursorImageValue::cachedImage):
+        * css/CSSImageSetValue.cpp:
+        (WebCore::CSSImageSetValue::detachPendingImage):
+        (WebCore::CSSImageSetValue::~CSSImageSetValue):
+        (WebCore::CSSImageSetValue::fillImageSet):
+        (WebCore::CSSImageSetValue::bestImageForScaleFactor):
+        (WebCore::CSSImageSetValue::bestFitImage):
+        (WebCore::CSSImageSetValue::cachedOrPendingImageSet):
+        (WebCore::CSSImageSetValue::customCSSText):
+        (WebCore::CSSImageSetValue::traverseSubresources):
+        (WebCore::CSSImageSetValue::cachedImageSet): Deleted.
+        * css/CSSImageSetValue.h:
+        (WebCore::CSSImageSetValue::create):
+        (WebCore::CSSImageSetValue::compareByScaleFactor):
+        * css/StyleResolver.cpp:
+        * page/EventHandler.cpp:
+        * rendering/style/ShapeValue.cpp:
+        (WebCore::ShapeValue::isImageValid):
+        * rendering/style/StyleAllInOne.cpp:
+        * rendering/style/StyleCachedImage.cpp:
+        (WebCore::StyleCachedImage::StyleCachedImage):
+
+            Add scale factor and CSSImageSetValue backpointer, the only additional features of StyleCachedImageSet.
+
+        (WebCore::StyleCachedImage::cssValue):
+        (WebCore::StyleCachedImage::imageSize):
+        (WebCore::StyleCachedImage::imageHasRelativeWidth):
+        * rendering/style/StyleCachedImage.h:
+        * rendering/style/StyleCachedImageSet.cpp: Removed.
+        * rendering/style/StyleCachedImageSet.h: Removed.
+        * rendering/style/StyleImage.h:
+        (WebCore::StyleImage::isCachedImage):
+        (WebCore::StyleImage::isPendingImage):
+        (WebCore::StyleImage::isGeneratedImage):
+        (WebCore::StyleImage::StyleImage):
+        (WebCore::StyleImage::isCachedImageSet): Deleted.
+        * style/StylePendingResources.cpp:
+        (WebCore::Style::loadPendingImage):
+
 2016-08-17  Per Arne Vollan  <[email protected]>
 
         [Win] Add tests for linked fonts.

Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (204559 => 204560)


--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2016-08-17 16:37:45 UTC (rev 204560)
@@ -3577,8 +3577,6 @@
 		9392F1500AD1862300691BD4 /* CounterNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9392F14F0AD1862300691BD4 /* CounterNode.cpp */; };
 		9393E5FF151A99F200066F06 /* CSSImageSetValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9393E5FD151A99F200066F06 /* CSSImageSetValue.cpp */; };
 		9393E600151A99F200066F06 /* CSSImageSetValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 9393E5FE151A99F200066F06 /* CSSImageSetValue.h */; settings = {ATTRIBUTES = (Private, ); }; };
-		9393E604151A9A1800066F06 /* StyleCachedImageSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9393E602151A9A1800066F06 /* StyleCachedImageSet.cpp */; };
-		9393E605151A9A1800066F06 /* StyleCachedImageSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 9393E603151A9A1800066F06 /* StyleCachedImageSet.h */; };
 		939885C308B7E3D100E707C4 /* EventNames.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 939885C108B7E3D100E707C4 /* EventNames.cpp */; };
 		939885C408B7E3D100E707C4 /* EventNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 939885C208B7E3D100E707C4 /* EventNames.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		939B02EE0EA2DBC400C54570 /* WidthIterator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 939B02EC0EA2DBC400C54570 /* WidthIterator.cpp */; };
@@ -11091,8 +11089,6 @@
 		9392F14F0AD1862300691BD4 /* CounterNode.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CounterNode.cpp; sourceTree = "<group>"; };
 		9393E5FD151A99F200066F06 /* CSSImageSetValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CSSImageSetValue.cpp; sourceTree = "<group>"; };
 		9393E5FE151A99F200066F06 /* CSSImageSetValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSSImageSetValue.h; sourceTree = "<group>"; };
-		9393E602151A9A1800066F06 /* StyleCachedImageSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleCachedImageSet.cpp; sourceTree = "<group>"; };
-		9393E603151A9A1800066F06 /* StyleCachedImageSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleCachedImageSet.h; sourceTree = "<group>"; };
 		93955A4103D72932008635CE /* RenderTreeAsText.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = RenderTreeAsText.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
 		93955A4203D72932008635CE /* RenderTreeAsText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTreeAsText.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
 		939885C108B7E3D100E707C4 /* EventNames.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EventNames.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
@@ -22277,8 +22273,6 @@
 				BC5EB67A0E81D3BE00B25965 /* StyleBoxData.h */,
 				BCEF44790E6747D0001C1287 /* StyleCachedImage.cpp */,
 				BCEF444C0E674628001C1287 /* StyleCachedImage.h */,
-				9393E602151A9A1800066F06 /* StyleCachedImageSet.cpp */,
-				9393E603151A9A1800066F06 /* StyleCachedImageSet.h */,
 				9DAC7C561AF2CB6400437C44 /* StyleContentAlignmentData.h */,
 				BC779E151BB226A200CAA8BF /* StyleCustomPropertyData.h */,
 				BC5EB67E0E81D4A700B25965 /* StyleDashboardRegion.h */,
@@ -27651,7 +27645,6 @@
 				83B9687B19F8AB83004EF7AF /* StyleBuilderConverter.h in Headers */,
 				835D363719FF6193004C93AB /* StyleBuilderCustom.h in Headers */,
 				BCEF444D0E674628001C1287 /* StyleCachedImage.h in Headers */,
-				9393E605151A9A1800066F06 /* StyleCachedImageSet.h in Headers */,
 				E401E0A41C3C0B8300F34D10 /* StyleChange.h in Headers */,
 				9DAC7C571AF2CB6400437C44 /* StyleContentAlignmentData.h in Headers */,
 				BC779E171BB227CA00CAA8BF /* StyleCustomPropertyData.h in Headers */,
@@ -31278,7 +31271,6 @@
 				BC5EB67D0E81D42000B25965 /* StyleBoxData.cpp in Sources */,
 				8386A97019F61E4F00E1EC4A /* StyleBuilder.cpp in Sources */,
 				BCEF447A0E6747D0001C1287 /* StyleCachedImage.cpp in Sources */,
-				9393E604151A9A1800066F06 /* StyleCachedImageSet.cpp in Sources */,
 				E401E0A61C3C0CF700F34D10 /* StyleChange.cpp in Sources */,
 				A8C4A7FE09D563270003AC8D /* StyledElement.cpp in Sources */,
 				BC5EB8B80E8201BD00B25965 /* StyleDeprecatedFlexibleBoxData.cpp in Sources */,

Modified: trunk/Source/WebCore/css/CSSCursorImageValue.cpp (204559 => 204560)


--- trunk/Source/WebCore/css/CSSCursorImageValue.cpp	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/css/CSSCursorImageValue.cpp	2016-08-17 16:37:45 UTC (rev 204560)
@@ -22,6 +22,7 @@
 #include "config.h"
 #include "CSSCursorImageValue.h"
 
+#include "CSSImageSetValue.h"
 #include "CSSImageValue.h"
 #include "CachedImage.h"
 #include "CachedResourceLoader.h"
@@ -39,7 +40,6 @@
 
 #if ENABLE(CSS_IMAGE_SET)
 #include "CSSImageSetValue.h"
-#include "StyleCachedImageSet.h"
 #endif
 
 namespace WebCore {
@@ -120,7 +120,7 @@
 {
 #if ENABLE(CSS_IMAGE_SET)
     if (is<CSSImageSetValue>(m_imageValue.get()))
-        return downcast<CSSImageSetValue>(m_imageValue.get()).cachedImageSet(loader, options);
+        return downcast<CSSImageSetValue>(m_imageValue.get()).bestFitImage(loader, options);
 #endif
 
     auto* cursorElement = loader.document() ? updateCursorElement(*loader.document()) : nullptr;

Modified: trunk/Source/WebCore/css/CSSImageSetValue.cpp (204559 => 204560)


--- trunk/Source/WebCore/css/CSSImageSetValue.cpp	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/css/CSSImageSetValue.cpp	2016-08-17 16:37:45 UTC (rev 204560)
@@ -37,7 +37,7 @@
 #include "CrossOriginAccessControl.h"
 #include "Document.h"
 #include "Page.h"
-#include "StyleCachedImageSet.h"
+#include "StyleCachedImage.h"
 #include "StylePendingImage.h"
 #include <wtf/text/StringBuilder.h>
 
@@ -52,8 +52,8 @@
 
 inline void CSSImageSetValue::detachPendingImage()
 {
-    if (is<StylePendingImage>(m_imageSet.get()))
-        downcast<StylePendingImage>(*m_imageSet).detachFromCSSValue();
+    if (is<StylePendingImage>(m_image.get()))
+        downcast<StylePendingImage>(*m_image).detachFromCSSValue();
 }
 
 CSSImageSetValue::~CSSImageSetValue()
@@ -60,8 +60,8 @@
 {
     detachPendingImage();
 
-    if (is<StyleCachedImageSet>(m_imageSet.get()))
-        downcast<StyleCachedImageSet>(*m_imageSet).clearImageSetValue();
+    if (is<StyleCachedImage>(m_image.get()))
+        downcast<StyleCachedImage>(*m_image).detachFromCSSValue();
 }
 
 void CSSImageSetValue::fillImageSet()
@@ -100,7 +100,7 @@
     return image;
 }
 
-StyleCachedImageSet* CSSImageSetValue::cachedImageSet(CachedResourceLoader& loader, const ResourceLoaderOptions& options)
+StyleCachedImage* CSSImageSetValue::bestFitImage(CachedResourceLoader& loader, const ResourceLoaderOptions& options)
 {
     Document* document = loader.document();
     if (Page* page = document->page())
@@ -124,19 +124,19 @@
         }
         if (CachedResourceHandle<CachedImage> cachedImage = loader.requestImage(request)) {
             detachPendingImage();
-            m_imageSet = StyleCachedImageSet::create(cachedImage.get(), image.scaleFactor, this);
+            m_image = StyleCachedImage::createForImageSet(cachedImage.get(), image.scaleFactor, *this);
             m_accessedBestFitImage = true;
         }
     }
 
-    return is<StyleCachedImageSet>(m_imageSet.get()) ? downcast<StyleCachedImageSet>(m_imageSet.get()) : nullptr;
+    return is<StyleCachedImage>(m_image.get()) ? downcast<StyleCachedImage>(m_image.get()) : nullptr;
 }
 
 StyleImage* CSSImageSetValue::cachedOrPendingImageSet(const Document& document)
 {
-    if (!m_imageSet)
-        m_imageSet = StylePendingImage::create(this);
-    else if (!m_imageSet->isPendingImage()) {
+    if (!m_image)
+        m_image = StylePendingImage::create(this);
+    else if (!m_image->isPendingImage()) {
         float deviceScaleFactor = 1;
         if (Page* page = document.page())
             deviceScaleFactor = page->deviceScaleFactor();
@@ -144,11 +144,11 @@
         // If the deviceScaleFactor has changed, we may not have the best image loaded, so we have to re-assess.
         if (deviceScaleFactor != m_scaleFactor) {
             m_accessedBestFitImage = false;
-            m_imageSet = StylePendingImage::create(this);
+            m_image = StylePendingImage::create(this);
         }
     }
 
-    return m_imageSet.get();
+    return m_image.get();
 }
 
 String CSSImageSetValue::customCSSText() const
@@ -183,9 +183,9 @@
 
 bool CSSImageSetValue::traverseSubresources(const std::function<bool (const CachedResource&)>& handler) const
 {
-    if (!is<StyleCachedImageSet>(m_imageSet.get()))
+    if (!is<StyleCachedImage>(m_image.get()))
         return false;
-    CachedImage* cachedResource = downcast<StyleCachedImageSet>(*m_imageSet).cachedImage();
+    CachedImage* cachedResource = downcast<StyleCachedImage>(*m_image).cachedImage();
     ASSERT(cachedResource);
     return handler(*cachedResource);
 }

Modified: trunk/Source/WebCore/css/CSSImageSetValue.h (204559 => 204560)


--- trunk/Source/WebCore/css/CSSImageSetValue.h	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/css/CSSImageSetValue.h	2016-08-17 16:37:45 UTC (rev 204560)
@@ -34,7 +34,7 @@
 
 class CachedResourceLoader;
 class Document;
-class StyleCachedImageSet;
+class StyleCachedImage;
 class StyleImage;
 struct ResourceLoaderOptions;
 
@@ -47,9 +47,9 @@
     }
     ~CSSImageSetValue();
 
-    StyleCachedImageSet* cachedImageSet(CachedResourceLoader&, const ResourceLoaderOptions&);
+    StyleCachedImage* bestFitImage(CachedResourceLoader&, const ResourceLoaderOptions&);
 
-    // Returns a StyleCachedImageSet if the best fit image has been cached already, otherwise a StylePendingImage.
+    // Returns a StyleCachedImage if the best fit image has been cached already, otherwise a StylePendingImage.
     StyleImage* cachedOrPendingImageSet(const Document&);
 
     String customCSSText() const;
@@ -76,7 +76,7 @@
     void fillImageSet();
     static inline bool compareByScaleFactor(ImageWithScale first, ImageWithScale second) { return first.scaleFactor < second.scaleFactor; }
 
-    RefPtr<StyleImage> m_imageSet;
+    RefPtr<StyleImage> m_image;
     bool m_accessedBestFitImage;
 
     // This represents the scale factor that we used to find the best fit image. It does not necessarily

Modified: trunk/Source/WebCore/css/StyleResolver.cpp (204559 => 204560)


--- trunk/Source/WebCore/css/StyleResolver.cpp	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/css/StyleResolver.cpp	2016-08-17 16:37:45 UTC (rev 204560)
@@ -154,7 +154,6 @@
 
 #if ENABLE(CSS_IMAGE_SET)
 #include "CSSImageSetValue.h"
-#include "StyleCachedImageSet.h"
 #endif
 
 #if ENABLE(DASHBOARD_SUPPORT)

Modified: trunk/Source/WebCore/page/EventHandler.cpp (204559 => 204560)


--- trunk/Source/WebCore/page/EventHandler.cpp	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/page/EventHandler.cpp	2016-08-17 16:37:45 UTC (rev 204560)
@@ -102,10 +102,6 @@
 #include <wtf/StdLibExtras.h>
 #include <wtf/WeakPtr.h>
 
-#if ENABLE(CSS_IMAGE_SET)
-#include "StyleCachedImageSet.h"
-#endif
-
 #if ENABLE(IOS_TOUCH_EVENTS)
 #include "PlatformTouchEventIOS.h"
 #endif

Modified: trunk/Source/WebCore/rendering/style/ShapeValue.cpp (204559 => 204560)


--- trunk/Source/WebCore/rendering/style/ShapeValue.cpp	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/rendering/style/ShapeValue.cpp	2016-08-17 16:37:45 UTC (rev 204560)
@@ -36,7 +36,7 @@
 {
     if (!image())
         return false;
-    if (image()->isCachedImage() || image()->isCachedImageSet())
+    if (image()->isCachedImage())
         return image()->cachedImage() && image()->cachedImage()->hasImage();
     return image()->isGeneratedImage();
 }

Modified: trunk/Source/WebCore/rendering/style/StyleAllInOne.cpp (204559 => 204560)


--- trunk/Source/WebCore/rendering/style/StyleAllInOne.cpp	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/rendering/style/StyleAllInOne.cpp	2016-08-17 16:37:45 UTC (rev 204560)
@@ -41,7 +41,6 @@
 #include "StyleBackgroundData.cpp"
 #include "StyleBoxData.cpp"
 #include "StyleCachedImage.cpp"
-#include "StyleCachedImageSet.cpp"
 #include "StyleDeprecatedFlexibleBoxData.cpp"
 #include "StyleFilterData.cpp"
 #include "StyleFlexibleBoxData.cpp"

Modified: trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp (204559 => 204560)


--- trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp	2016-08-17 16:37:45 UTC (rev 204560)
@@ -24,13 +24,16 @@
 #include "config.h"
 #include "StyleCachedImage.h"
 
+#include "CSSImageSetValue.h"
 #include "CachedImage.h"
 #include "RenderElement.h"
 
 namespace WebCore {
 
-StyleCachedImage::StyleCachedImage(CachedImage* image)
+StyleCachedImage::StyleCachedImage(CachedImage* image, float scaleFactor, CSSImageSetValue* cssValue)
     : m_image(image)
+    , m_scaleFactor(scaleFactor)
+    , m_cssImageSetValue(cssValue)
 {
     m_isCachedImage = true;
     m_image->addClient(this);
@@ -43,6 +46,8 @@
 
 PassRefPtr<CSSValue> StyleCachedImage::cssValue() const
 {
+    if (m_cssImageSetValue)
+        return const_cast<CSSImageSetValue*>(m_cssImageSetValue);
     return CSSPrimitiveValue::create(m_image->url(), CSSPrimitiveValue::CSS_URI);
 }
 
@@ -63,7 +68,9 @@
 
 FloatSize StyleCachedImage::imageSize(const RenderElement* renderer, float multiplier) const
 {
-    return m_image->imageSizeForRenderer(renderer, multiplier);
+    FloatSize size = m_image->imageSizeForRenderer(renderer, multiplier);
+    size.scale(1 / m_scaleFactor);
+    return size;
 }
 
 bool StyleCachedImage::imageHasRelativeWidth() const
@@ -106,6 +113,11 @@
     return m_image->imageForRenderer(renderer);
 }
 
+float StyleCachedImage::imageScaleFactor() const
+{
+    return m_scaleFactor;
+}
+
 bool StyleCachedImage::knownToBeOpaque(const RenderElement* renderer) const
 {
     return m_image->currentFrameKnownToBeOpaque(renderer);

Modified: trunk/Source/WebCore/rendering/style/StyleCachedImage.h (204559 => 204560)


--- trunk/Source/WebCore/rendering/style/StyleCachedImage.h	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImage.h	2016-08-17 16:37:45 UTC (rev 204560)
@@ -30,16 +30,20 @@
 
 namespace WebCore {
 
+class CSSImageSetValue;
 class CachedImage;
 
 class StyleCachedImage final : public StyleImage, private CachedImageClient {
     WTF_MAKE_FAST_ALLOCATED;
 public:
-    static Ref<StyleCachedImage> create(CachedImage* image) { return adoptRef(*new StyleCachedImage(image)); }
+    static Ref<StyleCachedImage> create(CachedImage* image) { return adoptRef(*new StyleCachedImage(image, 1, nullptr)); }
+    static Ref<StyleCachedImage> createForImageSet(CachedImage* image, float scaleFactor, CSSImageSetValue& cssValue) { return adoptRef(*new StyleCachedImage(image, scaleFactor, &cssValue)); }
     virtual ~StyleCachedImage();
 
     CachedImage* cachedImage() const override { return m_image.get(); }
 
+    void detachFromCSSValue() { m_cssImageSetValue = nullptr; }
+
 private:
     WrappedImagePtr data() const override { return m_image.get(); }
 
@@ -57,11 +61,14 @@
     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*);
+    StyleCachedImage(CachedImage*, float scaleFactor, CSSImageSetValue*);
 
     CachedResourceHandle<CachedImage> m_image;
+    float m_scaleFactor;
+    CSSImageSetValue* m_cssImageSetValue; // Not retained; it owns us.
 };
 
 } // namespace WebCore

Deleted: trunk/Source/WebCore/rendering/style/StyleCachedImageSet.cpp (204559 => 204560)


--- trunk/Source/WebCore/rendering/style/StyleCachedImageSet.cpp	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImageSet.cpp	2016-08-17 16:37:45 UTC (rev 204560)
@@ -1,126 +0,0 @@
-/*
- * Copyright (C) 2012 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "StyleCachedImageSet.h"
-
-#if ENABLE(CSS_IMAGE_SET)
-
-#include "CSSImageSetValue.h"
-#include "CachedImage.h"
-#include "RenderElement.h"
-
-namespace WebCore {
-
-StyleCachedImageSet::StyleCachedImageSet(CachedImage* image, float imageScaleFactor, CSSImageSetValue* value)
-    : m_bestFitImage(image)
-    , m_imageScaleFactor(imageScaleFactor)
-    , m_imageSetValue(value)
-{
-    m_isCachedImageSet = true;
-    m_bestFitImage->addClient(this);
-}
-
-
-StyleCachedImageSet::~StyleCachedImageSet()
-{
-    m_bestFitImage->removeClient(this);
-}
-
-PassRefPtr<CSSValue> StyleCachedImageSet::cssValue() const
-{
-    return m_imageSetValue;
-}
-
-bool StyleCachedImageSet::canRender(const RenderObject* renderer, float multiplier) const
-{
-    return m_bestFitImage->canRender(renderer, multiplier);
-}
-
-bool StyleCachedImageSet::isLoaded() const
-{
-    return m_bestFitImage->isLoaded();
-}
-
-bool StyleCachedImageSet::errorOccurred() const
-{
-    return m_bestFitImage->errorOccurred();
-}
-
-FloatSize StyleCachedImageSet::imageSize(const RenderElement* renderer, float multiplier) const
-{
-    FloatSize scaledImageSize = m_bestFitImage->imageSizeForRenderer(renderer, multiplier);
-    scaledImageSize.scale(1 / m_imageScaleFactor);
-    return scaledImageSize;
-}
-
-bool StyleCachedImageSet::imageHasRelativeWidth() const
-{
-    return m_bestFitImage->imageHasRelativeWidth();
-}
-
-bool StyleCachedImageSet::imageHasRelativeHeight() const
-{
-    return m_bestFitImage->imageHasRelativeHeight();
-}
-
-void StyleCachedImageSet::computeIntrinsicDimensions(const RenderElement*, Length& intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio)
-{
-    m_bestFitImage->computeIntrinsicDimensions(intrinsicWidth, intrinsicHeight, intrinsicRatio);
-}
-
-bool StyleCachedImageSet::usesImageContainerSize() const
-{
-    return m_bestFitImage->usesImageContainerSize();
-}
-
-void StyleCachedImageSet::setContainerSizeForRenderer(const RenderElement* renderer, const FloatSize& imageContainerSize, float imageContainerZoomFactor)
-{
-    m_bestFitImage->setContainerSizeForRenderer(renderer, LayoutSize(imageContainerSize), imageContainerZoomFactor);
-}
-
-void StyleCachedImageSet::addClient(RenderElement* renderer)
-{
-    m_bestFitImage->addClient(renderer);
-}
-
-void StyleCachedImageSet::removeClient(RenderElement* renderer)
-{
-    m_bestFitImage->removeClient(renderer);
-}
-
-RefPtr<Image> StyleCachedImageSet::image(RenderElement* renderer, const FloatSize&) const
-{
-    return m_bestFitImage->imageForRenderer(renderer);
-}
-
-bool StyleCachedImageSet::knownToBeOpaque(const RenderElement* renderer) const
-{
-    return m_bestFitImage->currentFrameKnownToBeOpaque(renderer);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(CSS_IMAGE_SET)

Deleted: trunk/Source/WebCore/rendering/style/StyleCachedImageSet.h (204559 => 204560)


--- trunk/Source/WebCore/rendering/style/StyleCachedImageSet.h	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImageSet.h	2016-08-17 16:37:45 UTC (rev 204560)
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2012 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef StyleCachedImageSet_h
-#define StyleCachedImageSet_h
-
-#if ENABLE(CSS_IMAGE_SET)
-
-#include "CachedImageClient.h"
-#include "CachedResourceHandle.h"
-#include "LayoutSize.h"
-#include "StyleImage.h"
-
-namespace WebCore {
-
-class CachedImage;
-class CSSImageSetValue;
-
-// This class keeps one cached image and has access to a set of alternatives.
-
-class StyleCachedImageSet final : public StyleImage, private CachedImageClient {
-    WTF_MAKE_FAST_ALLOCATED;
-public:
-    static Ref<StyleCachedImageSet> create(CachedImage* image, float imageScaleFactor, CSSImageSetValue* value)
-    {
-        return adoptRef(*new StyleCachedImageSet(image, imageScaleFactor, value));
-    }
-    virtual ~StyleCachedImageSet();
-
-    CachedImage* cachedImage() const override { return m_bestFitImage.get(); }
-
-    void clearImageSetValue() { m_imageSetValue = nullptr; }
-
-private:
-    PassRefPtr<CSSValue> cssValue() const override;
-
-    // FIXME: This is used by StyleImage for equality comparison, but this implementation
-    // only looks at the image from the set that we have loaded. I'm not sure if that is
-    // meaningful enough or not.
-    WrappedImagePtr data() const override { return m_bestFitImage.get(); }
-
-    bool canRender(const RenderObject*, float multiplier) const 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 { return m_imageScaleFactor; }
-    bool knownToBeOpaque(const RenderElement*) const override;
-
-    StyleCachedImageSet(CachedImage*, float imageScaleFactor, CSSImageSetValue*);
-
-    CachedResourceHandle<CachedImage> m_bestFitImage;
-    float m_imageScaleFactor;
-    CSSImageSetValue* m_imageSetValue; // Not retained; it owns us.
-};
-
-} // namespace WebCore
-
-SPECIALIZE_TYPE_TRAITS_STYLE_IMAGE(StyleCachedImageSet, isCachedImageSet)
-
-#endif // ENABLE(CSS_IMAGE_SET)
-
-#endif // StyleCachedImageSet_h

Modified: trunk/Source/WebCore/rendering/style/StyleImage.h (204559 => 204560)


--- trunk/Source/WebCore/rendering/style/StyleImage.h	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/rendering/style/StyleImage.h	2016-08-17 16:37:45 UTC (rev 204560)
@@ -72,20 +72,17 @@
     ALWAYS_INLINE bool isCachedImage() const { return m_isCachedImage; }
     ALWAYS_INLINE bool isPendingImage() const { return m_isPendingImage; }
     ALWAYS_INLINE bool isGeneratedImage() const { return m_isGeneratedImage; }
-    ALWAYS_INLINE bool isCachedImageSet() const { return m_isCachedImageSet; }
-    
+
 protected:
     StyleImage()
         : m_isCachedImage(false)
         , m_isPendingImage(false)
         , m_isGeneratedImage(false)
-        , m_isCachedImageSet(false)
     {
     }
     bool m_isCachedImage : 1;
     bool m_isPendingImage : 1;
     bool m_isGeneratedImage : 1;
-    bool m_isCachedImageSet : 1;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/style/StylePendingResources.cpp (204559 => 204560)


--- trunk/Source/WebCore/style/StylePendingResources.cpp	2016-08-17 14:59:18 UTC (rev 204559)
+++ trunk/Source/WebCore/style/StylePendingResources.cpp	2016-08-17 16:37:45 UTC (rev 204560)
@@ -35,7 +35,6 @@
 #include "RenderStyle.h"
 #include "SVGURIReference.h"
 #include "StyleCachedImage.h"
-#include "StyleCachedImageSet.h"
 #include "StyleGeneratedImage.h"
 #include "StylePendingImage.h"
 #include "TransformFunctions.h"
@@ -69,7 +68,7 @@
 
 #if ENABLE(CSS_IMAGE_SET)
     if (auto imageSetValue = pendingImage.cssImageSetValue())
-        return imageSetValue->cachedImageSet(document.cachedResourceLoader(), options);
+        return imageSetValue->bestFitImage(document.cachedResourceLoader(), options);
 #endif
 
     return nullptr;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to