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

Reply via email to