Bug 208798

Summary: HTMLTrackElement should be pending while it is waiting for LoadableTextTrack request
Product: WebKit Reporter: Yusuke Suzuki <ysuzuki>
Component: DOMAssignee: Chris Dumez <cdumez>
Status: RESOLVED FIXED    
Severity: Normal CC: ap, calvaris, cdumez, eric.carlson, esprehn+autocc, ews-watchlist, ggaren, gyuyoung.kim, jer.noble, kondapallykalyan, philipj, rniwa, webkit-bot-watchers-bugzilla, webkit-bug-importer, youennf, ysuzuki
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=208642
Attachments:
Description Flags
Patch none

Description Yusuke Suzuki 2020-03-09 00:24:57 PDT
LoadableTextTrack can emit events. We should keep wrapper alive.
Comment 1 Radar WebKit Bug Importer 2020-03-11 09:17:24 PDT
<rdar://problem/60325421>
Comment 2 Yusuke Suzuki 2020-03-11 11:09:26 PDT
https://ews-build.webkit.org/results/macOS-Mojave-Debug-WK1-Tests-EWS/r392911-4549/results.html

No crash log found for DumpRenderTree:2642.

stdout:

stderr:
ASSERTION FAILED: m_wrapper
./bindings/js/JSEventListener.h(123) : JSC::JSObject *WebCore::JSEventListener::jsFunction(WebCore::ScriptExecutionContext &) const
1   0x106972639 WTFCrash
2   0x11cf2796b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x11f23c108 WebCore::JSEventListener::jsFunction(WebCore::ScriptExecutionContext&) const
4   0x11f23b42b WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&, WebCore::Event&)
5   0x11f8f76fc WebCore::EventTarget::innerInvokeEventListeners(WebCore::Event&, WTF::Vector<WTF::RefPtr<WebCore::RegisteredEventListener, WTF::DumbPtrTraits<WebCore::RegisteredEventListener> >, 1ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>, WebCore::EventTarget::EventInvokePhase)
6   0x11f8f3972 WebCore::EventTarget::fireEventListeners(WebCore::Event&, WebCore::EventTarget::EventInvokePhase)
7   0x11f97d8aa WebCore::Node::handleLocalEvents(WebCore::Event&, WebCore::EventTarget::EventInvokePhase)
8   0x11f8ded40 WebCore::EventContext::handleLocalEvents(WebCore::Event&, WebCore::EventTarget::EventInvokePhase) const
9   0x11f8df777 WebCore::dispatchEventInDOM(WebCore::Event&, WebCore::EventPath const&)
10  0x11f8df375 WebCore::EventDispatcher::dispatchEvent(WebCore::Node&, WebCore::Event&)
11  0x11f97d8fd WebCore::Node::dispatchEvent(WebCore::Event&)
12  0x11fdfaed2 WebCore::HTMLTrackElement::didCompleteLoad(WebCore::HTMLTrackElement::LoadStatus)
13  0x11d1d3b24 WebCore::LoadableTextTrack::loadTimerFired()
14  0x11d1dcfe1 decltype(*(std::__1::forward<WebCore::LoadableTextTrack*&>(fp0)).*fp()) std::__1::__invoke<void (WebCore::LoadableTextTrack::*&)(), WebCore::LoadableTextTrack*&, void>(void (WebCore::LoadableTextTrack::*&&&)(), WebCore::LoadableTextTrack*&&&)
15  0x11d1dcf40 std::__1::__bind_return<void (WebCore::LoadableTextTrack::*)(), std::__1::tuple<WebCore::LoadableTextTrack*>, std::__1::tuple<>, __is_valid_bind_return<void (WebCore::LoadableTextTrack::*)(), std::__1::tuple<WebCore::LoadableTextTrack*>, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (WebCore::LoadableTextTrack::*)(), std::__1::tuple<WebCore::LoadableTextTrack*>, 0ul, std::__1::tuple<> >(void (WebCore::LoadableTextTrack::*&)(), std::__1::tuple<WebCore::LoadableTextTrack*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&)
16  0x11d1dceec std::__1::__bind_return<void (WebCore::LoadableTextTrack::*)(), std::__1::tuple<WebCore::LoadableTextTrack*>, std::__1::tuple<>, __is_valid_bind_return<void (WebCore::LoadableTextTrack::*)(), std::__1::tuple<WebCore::LoadableTextTrack*>, std::__1::tuple<> >::value>::type std::__1::__bind<void (WebCore::LoadableTextTrack::*&)(), WebCore::LoadableTextTrack*>::operator()<>()
17  0x11d1dce89 WTF::Detail::CallableWrapper<std::__1::__bind<void (WebCore::LoadableTextTrack::*&)(), WebCore::LoadableTextTrack*>, void>::call()
18  0x11cf352ba WTF::Function<void ()>::operator()() const
19  0x11cfe8309 WebCore::Timer::fired()
20  0x12084578a WebCore::ThreadTimers::sharedTimerFiredInternal()
21  0x12084e801 WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0::operator()() const
22  0x12084e7b9 WTF::Detail::CallableWrapper<WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0, void>::call()
23  0x11cf352ba WTF::Function<void ()>::operator()() const
24  0x12080e3c7 WebCore::MainThreadSharedTimer::fired()
25  0x1208b3c46 WebCore::timerFired(__CFRunLoopTimer*, void*)
26  0x7fff4aced5d5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
27  0x7fff4aced181 __CFRunLoopDoTimer
28  0x7fff4aceccba __CFRunLoopDoTimers
29  0x7fff4acce304 __CFRunLoopRun
30  0x7fff4accd855 CFRunLoopRunSpecific
31  0x103a587bb runTest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Comment 3 Alexey Proskuryakov 2020-03-11 12:53:14 PDT
This crash log is for media/track/track-disabled-addcue.html
Comment 4 Chris Dumez 2020-03-27 11:34:47 PDT
I have not been able to reproduce this one yet. I tried:
Tools/Scripts/run-webkit-tests -1 --no-build --force --debug --repeat-each=30 media/track/track-disabled-addcue.html --additional-env-var=__XPC_JSC_slowPathAllocsBetweenGCs=5
Comment 5 Chris Dumez 2020-03-27 13:13:20 PDT
Created attachment 394748 [details]
Patch
Comment 6 Geoffrey Garen 2020-03-27 14:01:35 PDT
Comment on attachment 394748 [details]
Patch

r=me
Comment 7 EWS 2020-03-27 14:07:39 PDT
Committed r259138: <https://trac.webkit.org/changeset/259138>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394748 [details].