Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ec19ea6f19878f13a1774a48692079c05ea2e499 https://github.com/WebKit/WebKit/commit/ec19ea6f19878f13a1774a48692079c05ea2e499 Author: Said Abou-Hallawa <s...@apple.com> Date: 2025-09-08 (Mon, 08 Sep 2025)
Changed paths: A LayoutTests/fast/canvas/canvas-reset-layer-filter-no-end-expected.txt A LayoutTests/fast/canvas/canvas-reset-layer-filter-no-end.html M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp Log Message: ----------- ASSERT fires when calling CanvasRenderingContext2D::reset() after beginning a layer with a filter https://bugs.webkit.org/show_bug.cgi?id=298501 rdar://160017871 Reviewed by Simon Fraser. Unwind the CanvasRenderingContext2D state stack in the right order. A state has to be removed from the stack first then the drawing context has to be restored. Deleting a state calls the destructor of CanvasLayerContextSwitcher if a layer has begun. This calls TransparencyLayerContextSwitcher::endDrawSourceImage() which calls GraphicsContext::endTransparencyLayer(). This calls restore() whose save() was called when the layer transparency layer was begun. * LayoutTests/fast/canvas/canvas-reset-layer-filter-no-end-expected.txt: Added. * LayoutTests/fast/canvas/canvas-reset-layer-filter-no-end.html: Added. * Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp: (WebCore::CanvasRenderingContext2DBase::unwindStateStack): (WebCore::CanvasRenderingContext2DBase::reset): Canonical link: https://commits.webkit.org/299695@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes