Bug 190747 - [WinCairo] ASSERTION FAILED: !m_preparingToPlay in MediaPlayerPrivateMediaFoundation::prepareToPlay
Summary: [WinCairo] ASSERTION FAILED: !m_preparingToPlay in MediaPlayerPrivateMediaFou...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Fujii Hironori
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2018-10-19 00:50 PDT by Fujii Hironori
Modified: 2019-05-28 21:39 PDT (History)
5 users (show)

See Also:


Attachments
Patch (3.48 KB, patch)
2019-05-28 03:19 PDT, Fujii Hironori
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Fujii Hironori 2018-10-19 00:50:38 PDT
[WinCairo] ASSERTION FAILED: !m_preparingToPlay in MediaPlayerPrivateMediaFoundation::prepareToPlay

WinCairo, WK1, Debug build, trunk@237282

1. Start MiniBrowser
2. Menu > New WebKitLegacy Window
3. Go to https://www.youtube.com/
4. ASSERTION FAILED: !m_preparingToPlay

Log:

> ASSERTION FAILED: !m_preparingToPlay
> c:\webkit\ga\source\webcore\platform\graphics\win\mediaplayerprivatemediafoundation.cpp(197) : WebCore::MediaPlayerPrivateMediaFoundation::prepareToPlay

Callstack:

> WTF.dll!WTFCrash() Line 255	C++
> WebKit.dll!WTFCrashWithInfo(int __formal, const char * __formal, const char * __formal, int __formal) Line 551	C++
> WebKit.dll!WebCore::MediaPlayerPrivateMediaFoundation::prepareToPlay() Line 197	C++
> WebKit.dll!WebCore::MediaPlayerPrivateMediaFoundation::onTopologySet() Line 922	C++
> WebKit.dll!WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent::__l11::<lambda>() Line 535	C++
> WebKit.dll!WTF::Function<void __cdecl(void)>::CallableWrapper<void <lambda>(void) >::call() Line 101	C++
> WTF.dll!WTF::Function<void __cdecl(void)>::operator()() Line 57	C++
> WTF.dll!WTF::dispatchFunctionsFromMainThread() Line 118	C++
> WTF.dll!WTF::ThreadingWindowWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 48	C++
> [External Code]	
> WebKit.dll!WebKitMessageLoop::run(HACCEL__ * hAccelTable) Line 96	C++
> MiniBrowserLib.dll!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 89	C++
> MiniBrowserLib.dll!dllLauncherEntryPoint(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 106	C++
> MiniBrowser.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 230	C++
> [External Code]	

No problem happens in WK2 Window.
Comment 1 Fujii Hironori 2018-10-19 04:13:34 PDT
Following test cases are crashing due to this bug.

fast/canvas/webgl/texImage2D-video-flipY-false.html
fast/canvas/webgl/texImage2D-video-flipY-true.html
Comment 2 Fujii Hironori 2019-05-27 20:24:01 PDT
m_preparingToPlay has been introduced in Bug 156284.
Comment 3 Fujii Hironori 2019-05-27 22:09:01 PDT
MediaPlayerPrivateMediaFoundation::prepareToPlay is called from HTMLMediaElement::prepareToPlay first.

> WebKit.dll!WebCore::MediaPlayerPrivateMediaFoundation::prepareToPlay() Line 193	C++
> WebKit.dll!WebCore::MediaPlayer::prepareToPlay() Line 554	C++
> WebKit.dll!WebCore::HTMLMediaElement::prepareToPlay() Line 2958	C++
> WebKit.dll!WebCore::HTMLMediaElement::load::<unnamed-tag>::operator()() Line 1183	C++
> WebKit.dll!WTF::Detail::CallableWrapper<`lambda at ..\..\Source\WebCore\html/HTMLMediaElement.cpp:1181:46',void>::call() Line 52	C++
> WebKit.dll!WTF::Function<void ()>::operator()() Line 79	C++
> WebKit.dll!WebCore::GenericTaskQueue<WebCore::Timer,unsigned int>::enqueueTask::<unnamed-tag>::operator()() Line 107	C++
> WebKit.dll!WTF::Detail::CallableWrapper<`lambda at ..\..\Source\WebCore\platform\GenericTaskQueue.h:101:31',void>::call() Line 52	C++
> WebKit.dll!WTF::Function<void ()>::operator()() Line 79	C++
> WebKit.dll!WebCore::TaskDispatcher<WebCore::Timer>::dispatchOneTask() Line 111	C++
> WebKit.dll!WebCore::TaskDispatcher<WebCore::Timer>::sharedTimerFired() Line 86	C++
> WebKit.dll!WebCore::TaskDispatcher<WebCore::Timer>::sharedTimer::<unnamed-tag>::operator()() Line 60	C++
> WebKit.dll!WTF::Detail::CallableWrapper<`lambda at ..\..\Source\WebCore\platform/GenericTaskQueue.cpp:60:40',void>::call() Line 52	C++
> WebKit.dll!WTF::Function<void ()>::operator()() Line 79	C++
> WebKit.dll!WebCore::Timer::fired() Line 127	C++
> WebKit.dll!WebCore::ThreadTimers::sharedTimerFiredInternal() Line 129	C++
> WebKit.dll!WebCore::ThreadTimers::setSharedTimer::<unnamed-tag>::operator()() Line 69	C++
> WebKit.dll!WTF::Detail::CallableWrapper<`lambda at ..\..\Source\WebCore\platform/ThreadTimers.cpp:69:41',void>::call() Line 52	C++
> WebKit.dll!WTF::Function<void ()>::operator()() Line 79	C++
> WebKit.dll!WebCore::MainThreadSharedTimer::fired() Line 84	C++
> WebKit.dll!WebCore::TimerWindowWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 89	C++
> [External Code]	
> WebKit.dll!WebKitMessageLoop::run(HACCEL__ * hAccelTable) Line 94	C++
> MiniBrowserLib.dll!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 97	C++
> MiniBrowserLib.dll!dllLauncherEntryPoint(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 115	C++
> MiniBrowser.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 232	C++
> [External Code]	

And, called from onTopologySet next, and the assertion fails.

> WebKit.dll!WebCore::MediaPlayerPrivateMediaFoundation::prepareToPlay() Line 193	C++
> WebKit.dll!WebCore::MediaPlayerPrivateMediaFoundation::onTopologySet() Line 917	C++
> WebKit.dll!WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent::<unnamed-tag>::operator()() Line 531	C++
> WebKit.dll!WTF::Detail::CallableWrapper<`lambda at ..\..\Source\WebCore\platform\graphics\win\MediaPlayerPrivateMediaFoundation.cpp:527:26',void>::call() Line 52	C++
> WTF.dll!WTF::Function<void ()>::operator()() Line 79	C++
> WTF.dll!WTF::dispatchFunctionsFromMainThread() Line 113	C++
> WTF.dll!WTF::ThreadingWindowWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 48	C++
> [External Code]	
> WebKit.dll!WebKitMessageLoop::run(HACCEL__ * hAccelTable) Line 94	C++
> MiniBrowserLib.dll!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 97	C++
> MiniBrowserLib.dll!dllLauncherEntryPoint(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 115	C++
> MiniBrowser.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 232	C++
> [External Code]
Comment 4 Fujii Hironori 2019-05-28 03:19:09 PDT
Created attachment 370720 [details]
Patch
Comment 5 Fujii Hironori 2019-05-28 21:38:30 PDT
Comment on attachment 370720 [details]
Patch

Clearing flags on attachment: 370720

Committed r245846: <https://trac.webkit.org/changeset/245846>
Comment 6 Fujii Hironori 2019-05-28 21:38:33 PDT
All reviewed patches have been landed.  Closing bug.
Comment 7 Radar WebKit Bug Importer 2019-05-28 21:39:16 PDT
<rdar://problem/51208080>