[Webkit-unassigned] [Bug 251835] The Document object is leaked on some pages using media (like YouTube.com)

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Apr 24 16:49:12 PDT 2023


https://bugs.webkit.org/show_bug.cgi?id=251835

Ryan Reno <rreno at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rreno at apple.com

--- Comment #3 from Ryan Reno <rreno at apple.com> ---
I've been working on bringing Simon’s Ref Tracking patch forward from 2018 and I think I've got it working such that we can see actionable stack traces to find leaked Documents. Unfortunately I can’t reproduce the leaks from LayoutTests in MiniBrowser. That is, if I navigate to one of the tests that run-webkit-tests reports as a leak and then navigate back to about:blank (or some other simple HTML document that is same-origin) then issue an org.WebKit.lowMemory notification the Document for the test is reclaimed. I can reliably reproduce the YouTube leak, though.


The summary of this post is I think that for some reason the cached collections that are a result of calls to document.getElementsByClassName (and document.all and document.getElementsByTagName) are not being cleared and since they store a circular reference to a document that document is leaked.

https://github.com/rreno/WebKit has a branch called ryan/ref-tracking-with-conditional-inheritance where Ref/RefPtr are instrumented similarly to Simon's patch from 2018. There are a number of tokens which did not get a corresponding deref though I think the most interesting and/or relevant stacks may be stacks which call document.getElementsByClassName, document.all, and document.getElementsByTagName. The former two seemed the most interesting as those were the results of HTMLMediaElement events and servicing rAF callbacks, respectively.

In the stack containing HTMLMediaElement::dispatchEvent we're calling getElementsByClassName which stores an un-derefed ref on the document node as part of the CachedHTMLCollection. This appears to me to be a circular reference.

In the stack servicing the rAF callback we're calling document.all which is again storing a Ref to the leaked document on the document node as part of the HTMLAllCollection.

Here are the captured stacks:

(HTMLMediaElement event stack)
RefTracker: Backtrace for token 14621 (https://www.youtube.com/watch?v=REDACTED)
1   0x13400c37c WTF::RefTracker::trackRef(WTF::String const&)
2   0x14db51198 WebCore::Document::trackRef()
3   0x14db150d8 void WTF::RefTrackingTraits::ref<WebCore::ContainerNode>(WebCore::ContainerNode&)
4   0x14db15068 WTF::Ref<WebCore::ContainerNode, WTF::RawPtrTraits<WebCore::ContainerNode>, WTF::RefDerefTraits>::Ref(WebCore::ContainerNode&)
5   0x14daff6d4 WTF::Ref<WebCore::ContainerNode, WTF::RawPtrTraits<WebCore::ContainerNode>, WTF::RefDerefTraits>::Ref(WebCore::ContainerNode&)
6   0x14e0a5ce0 WebCore::HTMLCollection::HTMLCollection(WebCore::ContainerNode&, WebCore::CollectionType)
7   0x14db05508 WebCore::CachedHTMLCollection<WebCore::ClassCollection, (WebCore::CollectionTraversalType)0>::CachedHTMLCollection(WebCore::ContainerNode&, WebCore::CollectionType)
8   0x14db0545c WebCore::ClassCollection::ClassCollection(WebCore::ContainerNode&, WebCore::CollectionType, WTF::AtomString const&)
9   0x14db01aa4 WebCore::ClassCollection::ClassCollection(WebCore::ContainerNode&, WebCore::CollectionType, WTF::AtomString const&)
10  0x14db019e4 WebCore::ClassCollection::create(WebCore::ContainerNode&, WebCore::CollectionType, WTF::AtomString const&)
11  0x14db24d38 WTF::Ref<WebCore::ClassCollection, WTF::RawPtrTraits<WebCore::ClassCollection>, WTF::RefDerefTraits> WebCore::NodeListsNodeData::addCachedCollection<WebCore::ClassCollection, WebCore::ContainerNode>(WebCore::ContainerNode&, WebCore::CollectionType, WTF::AtomString const&)
12  0x14db24c54 WebCore::ContainerNode::getElementsByClassName(WTF::AtomString const&)
13  0x14ae4bd94 WebCore::jsDocumentPrototypeFunction_getElementsByClassNameBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSDocument*)
14  0x14ae4bb3c long long WebCore::IDLOperation<WebCore::JSDocument>::call<&WebCore::jsDocumentPrototypeFunction_getElementsByClassNameBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSDocument*), (WebCore::CastedThisErrorBehavior)0>(JSC::JSGlobalObject&, JSC::CallFrame&, char const*)
15  0x14ae49e90 WebCore::jsDocumentPrototypeFunction_getElementsByClassName(JSC::JSGlobalObject*, JSC::CallFrame*)
[snip] - null JSC frames
23  0x1357f98f8 JSC::Interpreter::executeCallImpl(JSC::VM&, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
24  0x1357f99ec JSC::Interpreter::executeCall(JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
25  0x135afc560 JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
26  0x135c8973c JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
[snip] - null JSC frames
54  0x1357f98f8 JSC::Interpreter::executeCallImpl(JSC::VM&, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
55  0x1357f99ec JSC::Interpreter::executeCall(JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
56  0x135afc560 JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
57  0x135afc61c JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, WTF::NakedPtr<JSC::Exception>&)
58  0x135afc944 JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, WTF::NakedPtr<JSC::Exception>&)
59  0x14d2c5074 WebCore::JSExecState::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, WTF::NakedPtr<JSC::Exception>&)
60  0x14d2e3d9c WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&, WebCore::Event&)
61  0x14dcc9fc4 WebCore::EventTarget::innerInvokeEventListeners(WebCore::Event&, WTF::Vector<WTF::RefPtr<WebCore::RegisteredEventListener, WTF::RawPtrTraits<WebCore::RegisteredEventListener>, WTF::RefDerefTraits>, 1ul, WTF::CrashOnOverflow, 2ul, WTF::FastMalloc>, WebCore::EventTarget::EventInvokePhase)
62  0x14dcbe4b4 WebCore::EventTarget::fireEventListeners(WebCore::Event&, WebCore::EventTarget::EventInvokePhase)
63  0x14dcbe288 WebCore::EventContext::handleLocalEvents(WebCore::Event&, WebCore::EventTarget::EventInvokePhase) const
64  0x14dcbf458 WebCore::dispatchEventInDOM(WebCore::Event&, WebCore::EventPath const&)
65  0x14dcbebcc WebCore::EventDispatcher::dispatchEvent(WebCore::Node&, WebCore::Event&)
66  0x14dd60af0 WebCore::Node::dispatchEvent(WebCore::Event&)
67  0x14e138330 WebCore::HTMLMediaElement::dispatchEvent(WebCore::Event&)
68  0x14daf8368 WebCore::ActiveDOMObject::queueCancellableTaskToDispatchEventInternal(WebCore::EventTarget&, WebCore::TaskSource, WTF::TaskCancellationGroup&, WTF::Ref<WebCore::Event, WTF::RawPtrTraits<WebCore::Event>, WTF::RefDerefTraits>&&)::$_5::operator()() const
69  0x14daf8254 WTF::Detail::CallableWrapper<WebCore::ActiveDOMObject::queueCancellableTaskToDispatchEventInternal(WebCore::EventTarget&, WebCore::TaskSource, WTF::TaskCancellationGroup&, WTF::Ref<WebCore::Event, WTF::RawPtrTraits<WebCore::Event>, WTF::RefDerefTraits>&&)::$_5, void>::call()
70  0x14c692564 WTF::Function<void ()>::operator()() const
71  0x14d262d48 WTF::CancellableTask::operator()()
72  0x14d262b64 WTF::Detail::CallableWrapper<WTF::CancellableTask, void>::call()
73  0x14c692564 WTF::Function<void ()>::operator()() const
74  0x14daf3e04 WebCore::ActiveDOMObjectEventDispatchTask::execute()
75  0x14dcc1e10 WebCore::EventLoop::run()
76  0x14de4b58c WebCore::WindowEventLoop::didReachTimeToRun()
77  0x14de4f4c4 decltype(*std::declval<WebCore::WindowEventLoop*&>().*std::declval<void (WebCore::WindowEventLoop::*&)()>()()) std::__1::__invoke[abi:v160000]<void (WebCore::WindowEventLoop::*&)(), WebCore::WindowEventLoop*&, void>(void (WebCore::WindowEventLoop::*&)(), WebCore::WindowEventLoop*&)
78  0x14de4f40c std::__1::__bind_return<void (WebCore::WindowEventLoop::*)(), std::__1::tuple<WebCore::WindowEventLoop*>, std::__1::tuple<>, __is_valid_bind_return<void (WebCore::WindowEventLoop::*)(), std::__1::tuple<WebCore::WindowEventLoop*>, std::__1::tuple<>>::value>::type std::__1::__apply_functor[abi:v160000]<void (WebCore::WindowEventLoop::*)(), std::__1::tuple<WebCore::WindowEventLoop*>, 0ul, std::__1::tuple<>>(void (WebCore::WindowEventLoop::*&)(), std::__1::tuple<WebCore::WindowEventLoop*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&)
79  0x14de4f3c0 std::__1::__bind_return<void (WebCore::WindowEventLoop::*)(), std::__1::tuple<WebCore::WindowEventLoop*>, std::__1::tuple<>, __is_valid_bind_return<void (WebCore::WindowEventLoop::*)(), std::__1::tuple<WebCore::WindowEventLoop*>, std::__1::tuple<>>::value>::type std::__1::__bind<void (WebCore::WindowEventLoop::*&)(), WebCore::WindowEventLoop*>::operator()[abi:v160000]<>()
80  0x14de4f35c WTF::Detail::CallableWrapper<std::__1::__bind<void (WebCore::WindowEventLoop::*&)(), WebCore::WindowEventLoop*>, void>::call()
81  0x14c692564 WTF::Function<void ()>::operator()() const
82  0x14d313ee0 WebCore::Timer::fired()
83  0x14edd93fc WebCore::ThreadTimers::sharedTimerFiredInternal()
84  0x14ede2158 WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0::operator()() const
85  0x14ede20fc WTF::Detail::CallableWrapper<WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0, void>::call()
86  0x14c692564 WTF::Function<void ()>::operator()() const
87  0x14ed7a48c WebCore::MainThreadSharedTimer::fired()
88  0x14ee76db8 WebCore::timerFired(__CFRunLoopTimer*, void*)
[snip]


(rAF callback stack)
RefTracker: Backtrace for token 15876 (https://www.youtube.com/watch?v=REDACTED)
1   0x13400c37c WTF::RefTracker::trackRef(WTF::String const&)
2   0x14db51198 WebCore::Document::trackRef()
3   0x14db150d8 void WTF::RefTrackingTraits::ref<WebCore::ContainerNode>(WebCore::ContainerNode&)
4   0x14db15068 WTF::Ref<WebCore::ContainerNode, WTF::RawPtrTraits<WebCore::ContainerNode>, WTF::RefDerefTraits>::Ref(WebCore::ContainerNode&)
5   0x14daff6d4 WTF::Ref<WebCore::ContainerNode, WTF::RawPtrTraits<WebCore::ContainerNode>, WTF::RefDerefTraits>::Ref(WebCore::ContainerNode&)
6   0x14e0a5ce0 WebCore::HTMLCollection::HTMLCollection(WebCore::ContainerNode&, WebCore::CollectionType)
7   0x14daf0f60 WebCore::CachedHTMLCollection<WebCore::AllDescendantsCollection, (WebCore::CollectionTraversalType)0>::CachedHTMLCollection(WebCore::ContainerNode&, WebCore::CollectionType)
8   0x14daf0f00 WebCore::AllDescendantsCollection::AllDescendantsCollection(WebCore::ContainerNode&, WebCore::CollectionType)
9   0x14e07064c WebCore::HTMLAllCollection::HTMLAllCollection(WebCore::Document&, WebCore::CollectionType)
10  0x14e0646bc WebCore::HTMLAllCollection::HTMLAllCollection(WebCore::Document&, WebCore::CollectionType)
11  0x14e064674 WebCore::HTMLAllCollection::create(WebCore::Document&, WebCore::CollectionType)
12  0x14dbaa4bc WTF::Ref<WebCore::HTMLAllCollection, WTF::RawPtrTraits<WebCore::HTMLAllCollection>, WTF::RefDerefTraits> WebCore::NodeListsNodeData::addCachedCollection<WebCore::HTMLAllCollection, WebCore::Document>(WebCore::Document&, WebCore::CollectionType)
13  0x14dbaa3d0 WebCore::Document::all()
14  0x14aebd7f0 WebCore::jsDocument_allGetter(JSC::JSGlobalObject&, WebCore::JSDocument&)
15  0x14addc534 long long WebCore::IDLAttribute<WebCore::JSDocument>::get<&WebCore::jsDocument_allGetter(JSC::JSGlobalObject&, WebCore::JSDocument&), (WebCore::CastedThisErrorBehavior)3>(JSC::JSGlobalObject&, long long, JSC::PropertyName)
16  0x14addc400 WebCore::jsDocument_all(JSC::JSGlobalObject*, long long, JSC::PropertyName)
17  0x135ca598c WTF::FunctionPtr<(WTF::PtrTag)28802, long long (JSC::JSGlobalObject*, long long, JSC::PropertyName), (WTF::FunctionAttributes)1>::operator()(JSC::JSGlobalObject*, long long, JSC::PropertyName) const
18  0x135f16b28 JSC::PropertySlot::customGetter(JSC::VM&, JSC::PropertyName) const
19  0x13462ec88 JSC::PropertySlot::getValue(JSC::JSGlobalObject*, JSC::PropertyName) const
20  0x135c6f730 JSC::JSValue::get(JSC::JSGlobalObject*, JSC::PropertyName, JSC::PropertySlot&) const
21  0x1359d7544 JSC::LLInt::performLLIntGetByID(JSC::BytecodeIndex, JSC::CodeBlock*, JSC::JSGlobalObject*, JSC::JSValue, JSC::Identifier const&, JSC::GetByIdModeMetadata&)
22  0x1359d7268 llint_slow_path_get_by_id
23  0x13465d8e8 llint_function_for_construct_arity_checkTagGateAfter
[snip] - null JSC frames
45  0x1357f98f8 JSC::Interpreter::executeCallImpl(JSC::VM&, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
46  0x1357f99ec JSC::Interpreter::executeCall(JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
47  0x135afc560 JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
48  0x135afc61c JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, WTF::NakedPtr<JSC::Exception>&)
49  0x14d2c8488 WebCore::JSExecState::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, WTF::NakedPtr<JSC::Exception>&)
50  0x14d2c81d8 WebCore::JSCustomElementInterface::invokeCallback(WebCore::Element&, JSC::JSObject*, WTF::Function<void (JSC::JSGlobalObject*, WebCore::JSDOMGlobalObject*, JSC::MarkedVector<JSC::JSValue, 8ul, WTF::RecordOverflow>&)> const&)
51  0x14d2c8a0c WebCore::JSCustomElementInterface::invokeAttributeChangedCallback(WebCore::Element&, WebCore::QualifiedName const&, WTF::AtomString const&, WTF::AtomString const&)
52  0x14db401f8 WebCore::CustomElementReactionQueueItem::invoke(WebCore::Element&, WebCore::JSCustomElementInterface&)
53  0x14db3fdc4 WebCore::CustomElementReactionQueue::invokeAll(WebCore::Element&)
54  0x14db4eb94 WebCore::CustomElementQueue::invokeAll()
55  0x14db40a0c WebCore::CustomElementQueue::processQueue(JSC::JSGlobalObject*)
56  0x14db408e8 WebCore::CustomElementReactionStack::processQueue(JSC::JSGlobalObject*)
57  0x14a9fa104 WebCore::CustomElementReactionStack::~CustomElementReactionStack()
58  0x14acda690 WebCore::CustomElementReactionStack::~CustomElementReactionStack()
59  0x14af61ccc WebCore::jsElementPrototypeFunction_removeAttributeBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSElement*)
60  0x14af61a38 long long WebCore::IDLOperation<WebCore::JSElement>::call<&WebCore::jsElementPrototypeFunction_removeAttributeBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSElement*), (WebCore::CastedThisErrorBehavior)0>(JSC::JSGlobalObject&, JSC::CallFrame&, char const*)
61  0x14af5e758 WebCore::jsElementPrototypeFunction_removeAttribute(JSC::JSGlobalObject*, JSC::CallFrame*)
[snip] - null JSC frames
69  0x1357f98f8 JSC::Interpreter::executeCallImpl(JSC::VM&, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
70  0x1357f99ec JSC::Interpreter::executeCall(JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
71  0x135afc560 JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
72  0x135c8973c JSC::boundThisNoArgsFunctionCall(JSC::JSGlobalObject*, JSC::CallFrame*)
[snip] - null JSC frames
76  0x1357f98f8 JSC::Interpreter::executeCallImpl(JSC::VM&, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
77  0x1357f99ec JSC::Interpreter::executeCall(JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
78  0x135afc560 JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
79  0x135afc61c JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, WTF::NakedPtr<JSC::Exception>&)
80  0x135afc944 JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, WTF::NakedPtr<JSC::Exception>&)
81  0x14d2c5074 WebCore::JSExecState::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, WTF::NakedPtr<JSC::Exception>&)
82  0x14d2c4c04 WebCore::JSCallbackData::invokeCallback(WebCore::JSDOMGlobalObject&, JSC::JSObject*, JSC::JSValue, JSC::MarkedVector<JSC::JSValue, 8ul, WTF::RecordOverflow>&, WebCore::JSCallbackData::CallbackType, JSC::PropertyName, WTF::NakedPtr<JSC::Exception>&)
83  0x14ab3ab3c WebCore::JSCallbackDataStrong::invokeCallback(JSC::JSValue, JSC::MarkedVector<JSC::JSValue, 8ul, WTF::RecordOverflow>&, WebCore::JSCallbackData::CallbackType, JSC::PropertyName, WTF::NakedPtr<JSC::Exception>&)
84  0x14bad90bc WebCore::JSRequestAnimationFrameCallback::handleEvent(double)
85  0x14ddea3ac WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks(WTF::Seconds)
86  0x14dbaddd0 WebCore::Document::serviceRequestAnimationFrameCallbacks()
87  0x14eba4df0 WebCore::Page::updateRendering()::$_28::operator()(WebCore::Document&) const
88  0x14eba4d94 WTF::Detail::CallableWrapper<WebCore::Page::updateRendering()::$_28, void, WebCore::Document&>::call(WebCore::Document&)
89  0x14ddaf6c4 WTF::Function<void (WebCore::Document&)>::operator()(WebCore::Document&) const
90  0x14eb64540 WebCore::Page::forEachDocumentFromMainFrame(WebCore::LocalFrame const&, WTF::Function<void (WebCore::Document&)> const&)
91  0x14eb527cc WebCore::Page::forEachDocument(WTF::Function<void (WebCore::Document&)> const&) const
92  0x14eb5b064 WebCore::Page::updateRendering()::$_21::operator()(WebCore::RenderingUpdateStep, WTF::Function<void (WebCore::Document&)> const&) const
93  0x14eb5ac98 WebCore::Page::updateRendering()
94  0x11858fc0c WebKit::WebPage::updateRendering()
95  0x1162fbc88 WebKit::RemoteLayerTreeDrawingArea::updateRendering()
96  0x116306524 decltype(*std::declval<WebKit::RemoteLayerTreeDrawingArea*&>().*std::declval<void (WebKit::RemoteLayerTreeDrawingArea::*&)()>()()) std::__1::__invoke[abi:v160000]<void (WebKit::RemoteLayerTreeDrawingArea::*&)(), WebKit::RemoteLayerTreeDrawingArea*&, void>(void (WebKit::RemoteLayerTreeDrawingArea::*&)(), WebKit::RemoteLayerTreeDrawingArea*&)
97  0x11630646c std::__1::__bind_return<void (WebKit::RemoteLayerTreeDrawingArea::*)(), std::__1::tuple<WebKit::RemoteLayerTreeDrawingArea*>, std::__1::tuple<>, __is_valid_bind_return<void (WebKit::RemoteLayerTreeDrawingArea::*)(), std::__1::tuple<WebKit::RemoteLayerTreeDrawingArea*>, std::__1::tuple<>>::value>::type std::__1::__apply_functor[abi:v160000]<void (WebKit::RemoteLayerTreeDrawingArea::*)(), std::__1::tuple<WebKit::RemoteLayerTreeDrawingArea*>, 0ul, std::__1::tuple<>>(void (WebKit::RemoteLayerTreeDrawingArea::*&)(), std::__1::tuple<WebKit::RemoteLayerTreeDrawingArea*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&)
98  0x116306420 std::__1::__bind_return<void (WebKit::RemoteLayerTreeDrawingArea::*)(), std::__1::tuple<WebKit::RemoteLayerTreeDrawingArea*>, std::__1::tuple<>, __is_valid_bind_return<void (WebKit::RemoteLayerTreeDrawingArea::*)(), std::__1::tuple<WebKit::RemoteLayerTreeDrawingArea*>, std::__1::tuple<>>::value>::type std::__1::__bind<void (WebKit::RemoteLayerTreeDrawingArea::*&)(), WebKit::RemoteLayerTreeDrawingArea*>::operator()[abi:v160000]<>()
99  0x1163063bc WTF::Detail::CallableWrapper<std::__1::__bind<void (WebKit::RemoteLayerTreeDrawingArea::*&)(), WebKit::RemoteLayerTreeDrawingArea*>, void>::call()
100 0x115b51c98 WTF::Function<void ()>::operator()() const
101 0x1163014b4 WebCore::Timer::fired()
102 0x14edd93fc WebCore::ThreadTimers::sharedTimerFiredInternal()
103 0x14ede2158 WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0::operator()() const
104 0x14ede20fc WTF::Detail::CallableWrapper<WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0, void>::call()
105 0x14c692564 WTF::Function<void ()>::operator()() const
106 0x14ed7a48c WebCore::MainThreadSharedTimer::fired()
107 0x14ee76db8 WebCore::timerFired(__CFRunLoopTimer*, void*)
[snip]

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20230424/c3e34166/attachment-0001.htm>


More information about the webkit-unassigned mailing list