haikuwebkit/Source/WebCore/svg/graphics
Myles C. Maxfield 3280e7a1cc SVGImageForContainer reports true for is<SVGImage>() but it doesn't inherit from SVGImage
https://bugs.webkit.org/show_bug.cgi?id=227807

Reviewed by Said Abou-Hallawa.

Source/WebCore:

It's too easy to write code like:
if (is<SVGImage>(image))
    downcast<SVGImage>(image).doSomething();

Test: SVGImageCasts.SVGImageForContainerIsNotSVGImage

* WebCore.xcodeproj/project.pbxproj:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::remoteSVGRootElement const):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::effectiveImageDevicePixelRatio const):
* html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::CanvasRenderingContext2DBase::createPattern):
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::texImageSourceHelper):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::imageForRenderer):
(WebCore::CachedImage::hasSVGImage const):
(WebCore::CachedImage::setContainerContextForClient):
(WebCore::CachedImage::imageSizeForRenderer const):
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::drawCrossfadeSubimage):
* platform/graphics/Image.cpp:
(WebCore::operator<<):
* platform/graphics/Image.h:
(WebCore::Image::isSVGImageForContainer const):
(WebCore::Image::actsLikeSVGImage const):
* platform/graphics/ImageObserver.h:
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::SVGImageForContainer):
* svg/graphics/SVGImageForContainer.h:

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebCore/SVGImageCasts.cpp: Added.
(TestWebKitAPI::TEST):

Canonical link: https://commits.webkit.org/239560@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279793 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-07-09 20:05:39 +00:00
..
filters Convert DestinationColorSpace from an enum to class wrapping a platform color space (CGColorSpaceRef for CG ports, etc.) 2021-05-25 01:26:18 +00:00
SVGImage.cpp [GPU Process] Canvas image rendering can render arbitrary DOM content in the GPU process, which is against policy (for now) 2021-07-08 15:52:51 +00:00
SVGImage.h SVGImageForContainer reports true for is<SVGImage>() but it doesn't inherit from SVGImage 2021-07-09 20:05:39 +00:00
SVGImageCache.cpp
SVGImageCache.h
SVGImageClients.h Rename scheduleTimedRenderingUpdate() to scheduleRenderingUpdate() everywhere 2020-10-06 15:27:50 +00:00
SVGImageForContainer.cpp SVGImageForContainer reports true for is<SVGImage>() but it doesn't inherit from SVGImage 2021-07-09 20:05:39 +00:00
SVGImageForContainer.h SVGImageForContainer reports true for is<SVGImage>() but it doesn't inherit from SVGImage 2021-07-09 20:05:39 +00:00