Title: [279321] trunk/Source/WebCore
- Revision
- 279321
- Author
- [email protected]
- Date
- 2021-06-27 14:17:30 -0700 (Sun, 27 Jun 2021)
Log Message
Treat image data url's as not identical
https://bugs.webkit.org/show_bug.cgi?id=226924
Patch by Rob Buis <[email protected]> on 2021-06-27
Reviewed by Said Abou-Hallawa.
Treat image data url's as not identical
in fillImagesAreIdentical.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::updateFillImages):
* rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::usesDataProtocol const):
* rendering/style/StyleCachedImage.h:
* rendering/style/StyleCursorImage.cpp:
(WebCore::StyleCursorImage::usesDataProtocol const):
* rendering/style/StyleCursorImage.h:
* rendering/style/StyleImage.h:
(WebCore::StyleImage::usesDataProtocol const):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (279320 => 279321)
--- trunk/Source/WebCore/ChangeLog 2021-06-27 19:49:51 UTC (rev 279320)
+++ trunk/Source/WebCore/ChangeLog 2021-06-27 21:17:30 UTC (rev 279321)
@@ -1,3 +1,24 @@
+2021-06-27 Rob Buis <[email protected]>
+
+ Treat image data url's as not identical
+ https://bugs.webkit.org/show_bug.cgi?id=226924
+
+ Reviewed by Said Abou-Hallawa.
+
+ Treat image data url's as not identical
+ in fillImagesAreIdentical.
+
+ * rendering/RenderElement.cpp:
+ (WebCore::RenderElement::updateFillImages):
+ * rendering/style/StyleCachedImage.cpp:
+ (WebCore::StyleCachedImage::usesDataProtocol const):
+ * rendering/style/StyleCachedImage.h:
+ * rendering/style/StyleCursorImage.cpp:
+ (WebCore::StyleCursorImage::usesDataProtocol const):
+ * rendering/style/StyleCursorImage.h:
+ * rendering/style/StyleImage.h:
+ (WebCore::StyleImage::usesDataProtocol const):
+
2021-06-27 Wenson Hsieh <[email protected]>
[iOS 15] Fix the internal build after rdar://76549109
Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (279320 => 279321)
--- trunk/Source/WebCore/rendering/RenderElement.cpp 2021-06-27 19:49:51 UTC (rev 279320)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp 2021-06-27 21:17:30 UTC (rev 279321)
@@ -361,6 +361,8 @@
for (; layer1 && layer2; layer1 = layer1->next(), layer2 = layer2->next()) {
if (!arePointingToEqualData(layer1->image(), layer2->image()))
return false;
+ if (layer1->image() && layer1->image()->usesDataProtocol())
+ return false;
}
return !layer1 && !layer2;
Modified: trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp (279320 => 279321)
--- trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp 2021-06-27 19:49:51 UTC (rev 279320)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp 2021-06-27 21:17:30 UTC (rev 279321)
@@ -198,4 +198,9 @@
return m_cachedImage && m_cachedImage->currentFrameKnownToBeOpaque(&renderer);
}
+bool StyleCachedImage::usesDataProtocol() const
+{
+ return m_cssValue->imageURL().protocolIsData();
}
+
+}
Modified: trunk/Source/WebCore/rendering/style/StyleCachedImage.h (279320 => 279321)
--- trunk/Source/WebCore/rendering/style/StyleCachedImage.h 2021-06-27 19:49:51 UTC (rev 279320)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImage.h 2021-06-27 21:17:30 UTC (rev 279321)
@@ -64,6 +64,7 @@
RefPtr<Image> image(RenderElement*, const FloatSize&) const final;
float imageScaleFactor() const final;
bool knownToBeOpaque(const RenderElement&) const final;
+ bool usesDataProtocol() const final;
private:
StyleCachedImage(CSSImageValue&, float);
Modified: trunk/Source/WebCore/rendering/style/StyleCursorImage.cpp (279320 => 279321)
--- trunk/Source/WebCore/rendering/style/StyleCursorImage.cpp 2021-06-27 19:49:51 UTC (rev 279320)
+++ trunk/Source/WebCore/rendering/style/StyleCursorImage.cpp 2021-06-27 21:17:30 UTC (rev 279321)
@@ -68,4 +68,9 @@
cachedImage()->setContainerContextForClient(renderer, LayoutSize(containerSize), containerZoom, m_cssValue->imageURL());
}
+bool StyleCursorImage::usesDataProtocol() const
+{
+ return m_cssValue->imageURL().protocolIsData();
}
+
+}
Modified: trunk/Source/WebCore/rendering/style/StyleCursorImage.h (279320 => 279321)
--- trunk/Source/WebCore/rendering/style/StyleCursorImage.h 2021-06-27 19:49:51 UTC (rev 279320)
+++ trunk/Source/WebCore/rendering/style/StyleCursorImage.h 2021-06-27 21:17:30 UTC (rev 279321)
@@ -38,6 +38,7 @@
static Ref<StyleCursorImage> create(CSSCursorImageValue&);
virtual ~StyleCursorImage();
bool operator==(const StyleImage& other) const;
+ bool usesDataProtocol() const final;
private:
void setContainerContextForRenderer(const RenderElement& renderer, const FloatSize& containerSize, float containerZoom) final;
Modified: trunk/Source/WebCore/rendering/style/StyleImage.h (279320 => 279321)
--- trunk/Source/WebCore/rendering/style/StyleImage.h 2021-06-27 19:49:51 UTC (rev 279320)
+++ trunk/Source/WebCore/rendering/style/StyleImage.h 2021-06-27 21:17:30 UTC (rev 279321)
@@ -78,6 +78,8 @@
bool hasCachedImage() const { return m_isCachedImage || selectedImage()->isCachedImage(); }
+ virtual bool usesDataProtocol() const { return false; }
+
protected:
StyleImage()
: m_isCachedImage(false)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes