Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 3f33cbf06dc3844668b85bfe8d52cec39b549ee9
https://github.com/WebKit/WebKit/commit/3f33cbf06dc3844668b85bfe8d52cec39b549ee9
Author: Nikolas Zimmermann <[email protected]>
Date: 2026-04-21 (Tue, 21 Apr 2026)
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/coreimage/FilterImageCoreImage.mm
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/svg/SVGRenderTreeAsText.cpp
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilter.cpp
M Source/WebCore/style/values/images/kinds/StyleFilterImage.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:
-----------
Refactor filter renderers to use OptionSet<FilterRenderingOption>
https://bugs.webkit.org/show_bug.cgi?id=312799
Reviewed by Simon Fraser and Said Abou-Hallawa.
Refactor the filter renderer hierarchy in preparation for the conditional
SVG layer creation change: replace the scalar `bool showDebugOverlay` /
`bool isShowingDebugOverlay` state on `Filter`, `CSSFilterRenderer` and
`SVGFilterRenderer` (including their `create()` factories, constructors,
and CSS-specific `buildFilterFunction()` / `buildFilterFunctions()`) with
a new `OptionSet<FilterRenderingOption>`.
The enum currently only has a single flag (`ShowDebugOverlay`) that
preserves current behavior; follow-up patches will add further flags
(e.g. `ApplyToSVGRenderer`, to enforce SVG-specific filter constraints).
Update the existing IPC crash tests to serialize the renamed
`renderingOptions` field (OptionSet, numeric) in place of the old
`isShowingDebugOverlay` bool.
No behavior change, thus no new tests.
* 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/coreimage/FilterImageCoreImage.mm:
(WebCore::FilterImage::filterResultImageBuffer):
* Source/WebCore/platform/graphics/filters/Filter.cpp:
(WebCore::Filter::Filter):
* Source/WebCore/platform/graphics/filters/Filter.h:
(WebCore::Filter::renderingOptions const):
(WebCore::Filter::setRenderingOptions):
(WebCore::Filter::Filter):
(WebCore::Filter::setIsShowingDebugOverlay): Deleted.
(WebCore::Filter::isShowingDebugOverlay const): Deleted.
* Source/WebCore/rendering/CSSFilterRenderer.cpp:
(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/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGResourceContainer):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilter.cpp:
(WebCore::LegacyRenderSVGResourceFilter::applyResource):
* Source/WebCore/style/values/images/kinds/StyleFilterImage.cpp:
(WebCore::Style::FilterImage::image const):
* Source/WebCore/svg/graphics/filters/SVGFilterRenderer.cpp:
(WebCore::SVGFilterRenderer::create):
(WebCore::SVGFilterRenderer::SVGFilterRenderer):
* Source/WebCore/svg/graphics/filters/SVGFilterRenderer.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
Canonical link: https://commits.webkit.org/311720@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications