RESOLVED FIXED308135
[scroll-animations] crash under `StyleOriginatedTimelinesController::styleableWasRemoved()`
https://bugs.webkit.org/show_bug.cgi?id=308135
Summary [scroll-animations] crash under `StyleOriginatedTimelinesController::styleabl...
Antoine Quint
Reported 2026-02-18 09:40:56 PST
We have gotten reports of a crash under `StyleOriginatedTimelinesController:: styleableWasRemoved()`. Trimmed crash signature: 10 WTF::TypeCastTraits<WebCore::CSSAnimation const, WebCore::WebAnimation const, false>::isType(WebCore::WebAnimation const&) (WebCore) 10 WTF::TypeCastTraits<WebCore::CSSAnimation const, WebCore::WebAnimation const, false>::isOfType(WebCore::WebAnimation const&) (WebCore) 10 bool WTF::is<WebCore::CSSAnimation, WebCore::WebAnimation>(WebCore::WebAnimation const&) (WebCore) 10 std::__1::conditional<std::is_const_v<WebCore::WebAnimation>, std::__1::add_const<WebCore::CSSAnimation>::type, __remove_const(WebCore::CSSAnimation)>::type* WTF::dynamicDowncast<WebCore::CSSAnimation, WebCore::WebAnimation>(WebCore::WebAnimation&) (WebCore) ==> 10 WebCore::StyleOriginatedTimelinesController::styleableWasRemoved(WebCore::Styleable const&) (WebCore) <== 10 WebCore::Styleable::elementWasRemoved() const (WebCore) 10 WebCore::Element::removedFromAncestor(WebCore::Node::RemovalType, WebCore::ContainerNode&) (WebCore) 10 WebCore::notifyNodeRemovedFromDocument(WebCore::ContainerNode&, WebCore::TreeScopeChange, WebCore::Node&) (WebCore) 10 WebCore::notifyChildNodeRemoved(WebCore::ContainerNode&, WebCore::Node&) (WebCore) 10 WebCore::ContainerNode::removeNodeWithScriptAssertion(WebCore::Node&, WebCore::ContainerNode::ChildChange::Source) (WebCore) 10 WebCore::ContainerNode::removeChild(WebCore::Node&) (WebCore) 10 WebCore::Node::removeChild(WebCore::Node&) (WebCore) 10 WebCore::jsNodePrototypeFunction_removeChildBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSNode*)::'lambda'()::operator()() const (WebCore) 10 void WebCore::invokeFunctorPropagatingExceptionIfNecessary<WebCore::jsNodePrototypeFunction_removeChildBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSNode*)::'lambda'()>(JSC::JSGlobalObject&, JSC::ThrowScope&, WebCore::jsNodePrototypeFunction_removeChildBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSNode*)::'lambda'()&&) (WebCore) 10 WebCore::jsNodePrototypeFunction_removeChildBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSNode*) (WebCore) 10 long long WebCore::IDLOperation<WebCore::JSNode>::call<&WebCore::jsNodePrototypeFunction_removeChildBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSNode*), (WebCore::CastedThisErrorBehavior)0>(JSC::JSGlobalObject&, JSC::CallFrame&, char const*) (WebCore) 10 WebCore::jsNodePrototypeFunction_removeChild(JSC::JSGlobalObject*, JSC::CallFrame*) (WebCore) 9 JSC::JSValue JSC::callMicrotask<>(JSC::JSGlobalObject*, JSC::JSValue, JSC::JSValue, JSC::JSCell*, WTF::ASCIILiteral) (JavaScriptCore) | 9 WebCore::MicrotaskQueue::runJSMicrotask(JSC::JSGlobalObject*, JSC::VM&, JSC::QueuedTask&) (WebCore) | 9 WebCore::MicrotaskQueue::performMicrotaskCheckpoint()::$_0::operator()(JSC::QueuedTask&) const (WebCore) | 9 void JSC::MicrotaskQueue::performMicrotaskCheckpoint<false, WebCore::MicrotaskQueue::performMicrotaskCheckpoint()::$_0>(JSC::VM&, WebCore::MicrotaskQueue::performMicrotaskCheckpoint()::$_0 const&) (WebCore) | 9 WebCore::MicrotaskQueue::performMicrotaskCheckpoint() (WebCore) | 9 WebCore::EventLoop::performMicrotaskCheckpoint() (WebCore) | 9 WebCore::EventLoopTaskGroup::performMicrotaskCheckpoint() (WebCore)
Attachments
Antoine Quint
Comment 1 2026-02-18 09:41:04 PST
Antoine Quint
Comment 2 2026-02-18 09:46:45 PST
EWS
Comment 3 2026-02-18 12:19:06 PST
Committed 307780@main (eff06ddda731): <https://commits.webkit.org/307780@main> Reviewed commits have been landed. Closing PR #58933 and removing active labels.
EWS
Comment 4 2026-02-18 17:23:55 PST
Committed 305413.314@safari-7624-branch (28b2950ba6ff): <https://commits.webkit.org/305413.314@safari-7624-branch> Reviewed commits have been landed. Closing PR #4506 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.