Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ec19ea6f19878f13a1774a48692079c05ea2e499
https://github.com/WebKit/WebKit/commit/ec19ea6f19878f13a1774a48692079c05ea2e499
Author: Said Abou-Hallawa <[email protected]>
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
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes