Title: [251493] trunk/Source/WebCore
Revision
251493
Author
simon.fra...@apple.com
Date
2019-10-23 13:14:57 -0700 (Wed, 23 Oct 2019)

Log Message

Change some image-related CSSValue subclasses to use references
https://bugs.webkit.org/show_bug.cgi?id=203284

Reviewed by Zalan Bujtas.

The fake-virtual CSSValue subclasses all have the same functions, but their types
have diverged. Convert some from pointers to references.

* css/CSSCanvasValue.cpp:
(WebCore::CSSCanvasValue::fixedSize):
(WebCore::CSSCanvasValue::image):
* css/CSSCanvasValue.h:
* css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::fixedSize):
(WebCore::CSSFilterImageValue::image):
* css/CSSFilterImageValue.h:
* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::image):
(WebCore::CSSImageGeneratorValue::fixedSize):
* css/CSSNamedImageValue.cpp:
(WebCore::CSSNamedImageValue::image):
* css/CSSNamedImageValue.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (251492 => 251493)


--- trunk/Source/WebCore/ChangeLog	2019-10-23 20:14:54 UTC (rev 251492)
+++ trunk/Source/WebCore/ChangeLog	2019-10-23 20:14:57 UTC (rev 251493)
@@ -349,6 +349,31 @@
 
 2019-10-22  Simon Fraser  <simon.fra...@apple.com>
 
+        Change some image-related CSSValue subclasses to use references
+        https://bugs.webkit.org/show_bug.cgi?id=203284
+
+        Reviewed by Zalan Bujtas.
+
+        The fake-virtual CSSValue subclasses all have the same functions, but their types
+        have diverged. Convert some from pointers to references.
+
+        * css/CSSCanvasValue.cpp:
+        (WebCore::CSSCanvasValue::fixedSize):
+        (WebCore::CSSCanvasValue::image):
+        * css/CSSCanvasValue.h:
+        * css/CSSFilterImageValue.cpp:
+        (WebCore::CSSFilterImageValue::fixedSize):
+        (WebCore::CSSFilterImageValue::image):
+        * css/CSSFilterImageValue.h:
+        * css/CSSImageGeneratorValue.cpp:
+        (WebCore::CSSImageGeneratorValue::image):
+        (WebCore::CSSImageGeneratorValue::fixedSize):
+        * css/CSSNamedImageValue.cpp:
+        (WebCore::CSSNamedImageValue::image):
+        * css/CSSNamedImageValue.h:
+
+2019-10-22  Simon Fraser  <simon.fra...@apple.com>
+
         wpt/css/css-images/gradient/color-stops-parsing.html fails
         https://bugs.webkit.org/show_bug.cgi?id=200211
 

Modified: trunk/Source/WebCore/css/CSSCanvasValue.cpp (251492 => 251493)


--- trunk/Source/WebCore/css/CSSCanvasValue.cpp	2019-10-23 20:14:54 UTC (rev 251492)
+++ trunk/Source/WebCore/css/CSSCanvasValue.cpp	2019-10-23 20:14:57 UTC (rev 251493)
@@ -60,11 +60,11 @@
     m_element = nullptr;
 }
 
-FloatSize CSSCanvasValue::fixedSize(const RenderElement* renderer)
+FloatSize CSSCanvasValue::fixedSize(const RenderElement& renderer)
 {
-    if (HTMLCanvasElement* elt = element(renderer->document()))
+    if (HTMLCanvasElement* elt = element(renderer.document()))
         return FloatSize(elt->width(), elt->height());
-    return FloatSize();
+    return { };
 }
 
 HTMLCanvasElement* CSSCanvasValue::element(Document& document)
@@ -78,10 +78,10 @@
     return m_element;
 }
 
-RefPtr<Image> CSSCanvasValue::image(RenderElement* renderer, const FloatSize& /*size*/)
+RefPtr<Image> CSSCanvasValue::image(RenderElement& renderer, const FloatSize& /*size*/)
 {
-    ASSERT(clients().contains(renderer));
-    HTMLCanvasElement* element = this->element(renderer->document());
+    ASSERT(clients().contains(&renderer));
+    HTMLCanvasElement* element = this->element(renderer.document());
     if (!element || !element->buffer())
         return nullptr;
     return element->copiedImage();

Modified: trunk/Source/WebCore/css/CSSCanvasValue.h (251492 => 251493)


--- trunk/Source/WebCore/css/CSSCanvasValue.h	2019-10-23 20:14:54 UTC (rev 251492)
+++ trunk/Source/WebCore/css/CSSCanvasValue.h	2019-10-23 20:14:57 UTC (rev 251493)
@@ -41,9 +41,9 @@
 
     String customCSSText() const;
 
-    RefPtr<Image> image(RenderElement*, const FloatSize&);
+    RefPtr<Image> image(RenderElement&, const FloatSize&);
     bool isFixedSize() const { return true; }
-    FloatSize fixedSize(const RenderElement*);
+    FloatSize fixedSize(const RenderElement&);
 
     HTMLCanvasElement* element() const { return m_element; }
 

Modified: trunk/Source/WebCore/css/CSSFilterImageValue.cpp (251492 => 251493)


--- trunk/Source/WebCore/css/CSSFilterImageValue.cpp	2019-10-23 20:14:54 UTC (rev 251492)
+++ trunk/Source/WebCore/css/CSSFilterImageValue.cpp	2019-10-23 20:14:57 UTC (rev 251493)
@@ -50,19 +50,19 @@
     return makeString("filter(", m_imageValue->cssText(), ", ", m_filterValue->cssText(), ')');
 }
 
-FloatSize CSSFilterImageValue::fixedSize(const RenderElement* renderer)
+FloatSize CSSFilterImageValue::fixedSize(const RenderElement& renderer)
 {
     // FIXME: Skip Content Security Policy check when filter is applied to an element in a user agent shadow tree.
     // See <https://bugs.webkit.org/show_bug.cgi?id=146663>.
     ResourceLoaderOptions options = CachedResourceLoader::defaultCachedResourceOptions();
 
-    CachedResourceLoader& cachedResourceLoader = renderer->document().cachedResourceLoader();
+    CachedResourceLoader& cachedResourceLoader = renderer.document().cachedResourceLoader();
     CachedImage* cachedImage = cachedImageForCSSValue(m_imageValue, cachedResourceLoader, options);
 
     if (!cachedImage)
         return FloatSize();
 
-    return cachedImage->imageForRenderer(renderer)->size();
+    return cachedImage->imageForRenderer(&renderer)->size();
 }
 
 bool CSSFilterImageValue::isPending() const
@@ -98,10 +98,8 @@
     m_filterSubimageObserver.setReady(true);
 }
 
-RefPtr<Image> CSSFilterImageValue::image(RenderElement* renderer, const FloatSize& size)
+RefPtr<Image> CSSFilterImageValue::image(RenderElement& renderer, const FloatSize& size)
 {
-    ASSERT(renderer);
-
     if (size.isEmpty())
         return nullptr;
 
@@ -108,11 +106,11 @@
     // FIXME: Skip Content Security Policy check when filter is applied to an element in a user agent shadow tree.
     // See <https://bugs.webkit.org/show_bug.cgi?id=146663>.
     ResourceLoaderOptions options = CachedResourceLoader::defaultCachedResourceOptions();
-    auto* cachedImage = cachedImageForCSSValue(m_imageValue, renderer->document().cachedResourceLoader(), options);
+    auto* cachedImage = cachedImageForCSSValue(m_imageValue, renderer.document().cachedResourceLoader(), options);
     if (!cachedImage)
         return &Image::nullImage();
 
-    auto* image = cachedImage->imageForRenderer(renderer);
+    auto* image = cachedImage->imageForRenderer(&renderer);
     if (!image)
         return &Image::nullImage();
 
@@ -129,7 +127,7 @@
     cssFilter->setSourceImage(WTFMove(texture));
     cssFilter->setSourceImageRect(imageRect);
     cssFilter->setFilterRegion(imageRect);
-    if (!cssFilter->build(*renderer, m_filterOperations, FilterConsumer::FilterFunction))
+    if (!cssFilter->build(renderer, m_filterOperations, FilterConsumer::FilterFunction))
         return &Image::nullImage();
     cssFilter->apply();
 

Modified: trunk/Source/WebCore/css/CSSFilterImageValue.h (251492 => 251493)


--- trunk/Source/WebCore/css/CSSFilterImageValue.h	2019-10-23 20:14:54 UTC (rev 251492)
+++ trunk/Source/WebCore/css/CSSFilterImageValue.h	2019-10-23 20:14:57 UTC (rev 251493)
@@ -53,9 +53,9 @@
 
     String customCSSText() const;
 
-    RefPtr<Image> image(RenderElement*, const FloatSize&);
+    RefPtr<Image> image(RenderElement&, const FloatSize&);
     bool isFixedSize() const { return true; }
-    FloatSize fixedSize(const RenderElement*);
+    FloatSize fixedSize(const RenderElement&);
 
     bool isPending() const;
     bool knownToBeOpaque(const RenderElement&) const;

Modified: trunk/Source/WebCore/css/CSSImageGeneratorValue.cpp (251492 => 251493)


--- trunk/Source/WebCore/css/CSSImageGeneratorValue.cpp	2019-10-23 20:14:54 UTC (rev 251492)
+++ trunk/Source/WebCore/css/CSSImageGeneratorValue.cpp	2019-10-23 20:14:57 UTC (rev 251493)
@@ -138,13 +138,13 @@
 {
     switch (classType()) {
     case CanvasClass:
-        return downcast<CSSCanvasValue>(*this).image(&renderer, size);
+        return downcast<CSSCanvasValue>(*this).image(renderer, size);
     case NamedImageClass:
-        return downcast<CSSNamedImageValue>(*this).image(&renderer, size);
+        return downcast<CSSNamedImageValue>(*this).image(renderer, size);
     case CrossfadeClass:
         return downcast<CSSCrossfadeValue>(*this).image(renderer, size);
     case FilterImageClass:
-        return downcast<CSSFilterImageValue>(*this).image(&renderer, size);
+        return downcast<CSSFilterImageValue>(*this).image(renderer, size);
     case LinearGradientClass:
         return downcast<CSSLinearGradientValue>(*this).image(renderer, size);
     case RadialGradientClass:
@@ -192,11 +192,11 @@
 {
     switch (classType()) {
     case CanvasClass:
-        return downcast<CSSCanvasValue>(*this).fixedSize(&renderer);
+        return downcast<CSSCanvasValue>(*this).fixedSize(renderer);
     case CrossfadeClass:
         return downcast<CSSCrossfadeValue>(*this).fixedSize(renderer);
     case FilterImageClass:
-        return downcast<CSSFilterImageValue>(*this).fixedSize(&renderer);
+        return downcast<CSSFilterImageValue>(*this).fixedSize(renderer);
     case LinearGradientClass:
         return downcast<CSSLinearGradientValue>(*this).fixedSize(renderer);
     case RadialGradientClass:

Modified: trunk/Source/WebCore/css/CSSNamedImageValue.cpp (251492 => 251493)


--- trunk/Source/WebCore/css/CSSNamedImageValue.cpp	2019-10-23 20:14:54 UTC (rev 251492)
+++ trunk/Source/WebCore/css/CSSNamedImageValue.cpp	2019-10-23 20:14:57 UTC (rev 251493)
@@ -35,7 +35,7 @@
     return makeString("-webkit-named-image(", m_name, ')');
 }
 
-RefPtr<Image> CSSNamedImageValue::image(RenderElement*, const FloatSize& size)
+RefPtr<Image> CSSNamedImageValue::image(RenderElement&, const FloatSize& size)
 {
     if (size.isEmpty())
         return nullptr;

Modified: trunk/Source/WebCore/css/CSSNamedImageValue.h (251492 => 251493)


--- trunk/Source/WebCore/css/CSSNamedImageValue.h	2019-10-23 20:14:54 UTC (rev 251492)
+++ trunk/Source/WebCore/css/CSSNamedImageValue.h	2019-10-23 20:14:57 UTC (rev 251493)
@@ -42,7 +42,7 @@
     bool isFixedSize() const { return false; }
     bool isPending() const { return false; }
 
-    RefPtr<Image> image(RenderElement*, const FloatSize&);
+    RefPtr<Image> image(RenderElement&, const FloatSize&);
 
     bool equals(const CSSNamedImageValue&) const;
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to