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;