Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0299cff7c92b4e40156ab9d6c84f72c865fd46fc
https://github.com/WebKit/WebKit/commit/0299cff7c92b4e40156ab9d6c84f72c865fd46fc
Author: Simon Fraser <[email protected]>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M LayoutTests/ipc/decode-feConvolveMatrix-kernelSize-overflow.html
M LayoutTests/ipc/empty-svgfilterrenderer-expression-crash.html
M LayoutTests/ipc/insufficient-svgfilter-inputs-crash.html
M LayoutTests/ipc/invalid-feConvolveMatrix-crash.html
M LayoutTests/ipc/invalid-svgfilter-expression-crash.html
M Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
M Source/WebCore/platform/graphics/filters/Filter.cpp
M Source/WebCore/platform/graphics/filters/Filter.h
M Source/WebCore/rendering/CSSFilterRenderer.cpp
M Source/WebCore/rendering/CSSFilterRenderer.h
M Source/WebCore/rendering/RenderLayerFilters.cpp
M Source/WebCore/rendering/style/StyleFilterImage.cpp
M Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilter.cpp
M Source/WebCore/svg/graphics/filters/SVGFilterRenderer.cpp
M Source/WebCore/svg/graphics/filters/SVGFilterRenderer.h
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
Log Message:
-----------
Group filter input data into a `FilterGeometry` struct
https://bugs.webkit.org/show_bug.cgi?id=303333
rdar://165636222
Reviewed by Said Abou-Hallawa.
The fix for webkit.org/b/279290 needs to plumb `referenceBox` into filter
creation,
but adding another argument makes things messy; do some initial refactoring
to plumb through `FilterGeometry`, which contain both the referenceBox and the
filterRegion, as well as the scale. The `Filter` base class now stores
`FilterGeometry`.
No behavior change.
* LayoutTests/ipc/decode-feConvolveMatrix-kernelSize-overflow.html:
* LayoutTests/ipc/empty-svgfilterrenderer-expression-crash.html:
* LayoutTests/ipc/insufficient-svgfilter-inputs-crash.html:
* LayoutTests/ipc/invalid-feConvolveMatrix-crash.html:
* LayoutTests/ipc/invalid-svgfilter-expression-crash.html:
* Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::createFilter const):
* Source/WebCore/platform/graphics/filters/Filter.cpp:
(WebCore::Filter::Filter):
(WebCore::Filter::scaledByFilterScale const):
(WebCore::Filter::maxEffectRect const):
(WebCore::Filter::clampFilterRegionIfNeeded):
(WebCore::Filter::apply):
(WebCore::Filter::createFilterStyles const):
* Source/WebCore/platform/graphics/filters/Filter.h:
(WebCore::Filter::geometry const):
(WebCore::Filter::filterScale const):
(WebCore::Filter::setFilterScale):
(WebCore::Filter::filterRegion const):
(WebCore::Filter::setFilterRegion):
(WebCore::Filter::referenceBox const):
(WebCore::Filter::Filter): Deleted.
* Source/WebCore/rendering/CSSFilterRenderer.cpp:
(WebCore::CSSFilterRenderer::createGeneric):
(WebCore::CSSFilterRenderer::create):
(WebCore::CSSFilterRenderer::CSSFilterRenderer):
(WebCore::createReferenceFilter):
(WebCore::CSSFilterRenderer::buildFilterFunction):
(WebCore::CSSFilterRenderer::buildFilterFunctions):
* Source/WebCore/rendering/CSSFilterRenderer.h:
* Source/WebCore/rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::beginFilterEffect):
* Source/WebCore/rendering/style/StyleFilterImage.cpp:
(WebCore::StyleFilterImage::image const):
* Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGResourceContainer):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilter.cpp:
(WebCore::LegacyRenderSVGResourceFilter::applyResource):
* Source/WebCore/svg/graphics/filters/SVGFilterRenderer.cpp:
(WebCore::SVGFilterRenderer::create):
(WebCore::SVGFilterRenderer::SVGFilterRenderer):
(WebCore::buildFilterEffectGraph):
(WebCore::SVGFilterRenderer::resolvedSize const):
(WebCore::SVGFilterRenderer::resolvedPoint3D const):
* Source/WebCore/svg/graphics/filters/SVGFilterRenderer.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
Canonical link: https://commits.webkit.org/303930@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications