RESOLVED FIXED 298501
ASSERT fires when calling CanvasRenderingContext2D::reset() after beginning a layer with a filter
https://bugs.webkit.org/show_bug.cgi?id=298501
Summary ASSERT fires when calling CanvasRenderingContext2D::reset() after beginning a...
Said Abou-Hallawa
Reported 2025-09-06 10:26:31 PDT
1. Enable "Canvas Filters" and "Canvas Layers" from Experimental Features 2. Open the attached test case in a debug mini-browser Result: This ASSERT fires: ASSERTION FAILED: purpose == m_state.purpose() /Volumes/Data/WebKit/OpenSource/Source/WebCore/platform/graphics/GraphicsContext.cpp(82) : virtual void WebCore::GraphicsContext::restore(GraphicsContextState::Purpose) 1 0x306f328b4 WebCore::GraphicsContext::restore(WebCore::GraphicsContextState::Purpose) 2 0x30721beec WebCore::DisplayList::Recorder::updateStateForEndTransparencyLayer() 3 0x11905d538 WebKit::RemoteGraphicsContextProxy::endTransparencyLayer() 4 0x30707b418 WebCore::TransparencyLayerContextSwitcher::endDrawSourceImage(WebCore::GraphicsContext&, WebCore::DestinationColorSpace const&) 5 0x305e2b078 WebCore::CanvasLayerContextSwitcher::~CanvasLayerContextSwitcher() 6 0x305e2b0f8 WebCore::CanvasLayerContextSwitcher::~CanvasLayerContextSwitcher() 7 0x305e2a4d8 WTF::RefCounted<WebCore::CanvasLayerContextSwitcher>::deref() const 8 0x305e2a45c WTF::DefaultRefDerefTraits<WebCore::CanvasLayerContextSwitcher>::derefIfNotNull(WebCore::CanvasLayerContextSwitcher*) 9 0x305e2a424 WTF::RefPtr<WebCore::CanvasLayerContextSwitcher, WTF::RawPtrTraits<WebCore::CanvasLayerContextSwitcher>, WTF::DefaultRefDerefTraits<WebCore::CanvasLayerContextSwitcher>>::~RefPtr() 10 0x305e203e4 WTF::RefPtr<WebCore::CanvasLayerContextSwitcher, WTF::RawPtrTraits<WebCore::CanvasLayerContextSwitcher>, WTF::DefaultRefDerefTraits<WebCore::CanvasLayerContextSwitcher>>::~RefPtr() 11 0x305e4acc0 WebCore::CanvasRenderingContext2DBase::State::~State() 12 0x305e3407c WebCore::CanvasRenderingContext2DBase::State::~State() 13 0x305e59fd4 WTF::VectorDestructor<true, WebCore::CanvasRenderingContext2DBase::State>::destruct(WebCore::CanvasRenderingContext2DBase::State*, WebCore::CanvasRenderingContext2DBase::State*) 14 0x305e59f30 WTF::VectorTypeOperations<WebCore::CanvasRenderingContext2DBase::State>::destruct(WebCore::CanvasRenderingContext2DBase::State*, WebCore::CanvasRenderingContext2DBase::State*) 15 0x305e33de4 WTF::Vector<WebCore::CanvasRenderingContext2DBase::State, 1ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>::resize(unsigned long) 16 0x305e33c50 WebCore::CanvasRenderingContext2DBase::reset() 17 0x300f38a20 WebCore::jsCanvasRenderingContext2DPrototypeFunction_resetBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSCanvasRenderingContext2D*)::'lambda'()::operator()() const
Attachments
test case (482 bytes, text/html)
2025-09-06 11:09 PDT, Said Abou-Hallawa
no flags
Said Abou-Hallawa
Comment 1 2025-09-06 11:09:00 PDT
Created attachment 476664 [details] test case
Radar WebKit Bug Importer
Comment 2 2025-09-06 11:09:34 PDT
Said Abou-Hallawa
Comment 3 2025-09-06 11:38:32 PDT
EWS
Comment 4 2025-09-08 09:56:05 PDT
Committed 299695@main (ec19ea6f1987): <https://commits.webkit.org/299695@main> Reviewed commits have been landed. Closing PR #50414 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.