MicrosoftEdge / WebView2Feedback

Feedback and discussions about Microsoft Edge WebView2
https://aka.ms/webview2
441 stars 52 forks source link

MFC MDI app using WebView2 not responding #2877

Open clock75 opened 1 year ago

clock75 commented 1 year ago

Description This occurs while creating multiple MDI ChildFrame containing a WebView2 control. MDI ChildFrame is created and after a while it is not responding.

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Call Stack

win32u.dll!_NtUserSetWindowLong@16()
user32.dll!_SetWindowLong() user32.dll!_SetWindowLongW@12()
EmbeddedBrowserWebView.dll!embedded_browser_webview_current::Controller::UpdateBrowserWindowStyle() EmbeddedBrowserWebView.dll!embedded_browser_webview_current::Controller::ConnectToBrowserWithWindow()
EmbeddedBrowserWebView.dll!embedded_browser_webview_current::Controller::ConnectToBrowser(class mojo::StructPtr const &)
EmbeddedBrowserWebView.dll!embedded_browser_webview_current::EmbeddedBrowserWebView::InitializeWebViewCompleted()
EmbeddedBrowserWebView.dll!base::internal::FunctorTraits<void (embedded_browser_webview_current::EmbeddedBrowserWebView::)(mojo::StructPtr) attribute((thiscall)),void>::Invoke<void (embedded_browser_webview_current::EmbeddedBrowserWebView::)(mojo::StructPtr) attribute((thiscall)),embedded_browser_webview_current::EmbeddedBrowserWebView ,mojo::StructPtr>()
EmbeddedBrowserWebView.dll!base::internal::Invoker<base::internal::BindState<void (embedded_browser_webview_current::EmbeddedBrowserWebView::
)(mojo::StructPtr) attribute((thiscall)),base::internal::RetainedRefWrapper>,void (mojo::StructPtr)>::RunOnce() EmbeddedBrowserWebView.dll!base::OnceCallback<void (mojo::StructPtr)>::Run()
EmbeddedBrowserWebView.dll!embedded_browser::mojom::EmbeddedBrowser_Initialize_ForwardToCallback::Accept(class mojo::Message ) EmbeddedBrowserWebView.dll!mojo::InterfaceEndpointClient::HandleValidatedMessage()
EmbeddedBrowserWebView.dll!mojo::MessageDispatcher::Accept(class mojo::Message
)
EmbeddedBrowserWebView.dll!mojo::InterfaceEndpointClient::HandleIncomingMessage(class mojo::Message )
EmbeddedBrowserWebView.dll!mojo::internal::MultiplexRouter::ProcessIncomingMessage()
EmbeddedBrowserWebView.dll!mojo::internal::MultiplexRouter::Accept(class mojo::Message
)
EmbeddedBrowserWebView.dll!mojo::MessageDispatcher::Accept(class mojo::Message )
EmbeddedBrowserWebView.dll!mojo::Connector::DispatchMessageW()
EmbeddedBrowserWebView.dll!mojo::Connector::ReadAllAvailableMessages()
EmbeddedBrowserWebView.dll!mojo::Connector::OnHandleReadyInternal() EmbeddedBrowserWebView.dll!base::internal::Invoker<base::internal::BindState<void (embedded_browser::mojom::EmbeddedBrowserClient_OnServerCertificateError_ProxyToResponder::
)(embedded_browser::mojom::ServerCertificateErrorResponseState) attribute((thiscall)),std::Cr::unique_ptr<embedded_browser::mojom::EmbeddedBrowserClient_OnServerCertificateError_ProxyToResponder,std::Cr::default_delete>>,void (embedded_browser::mojom::ServerCertificateErrorResponseState)>::RunOnce()
EmbeddedBrowserWebView.dll!mojo::SimpleWatcher::DiscardReadyState() EmbeddedBrowserWebView.dll!base::internal::Invoker<base::internal::BindState<void ()(const base::RepeatingCallback<void (unsigned int)> &, unsigned int, const mojo::HandleSignalsState &),base::RepeatingCallback<void (unsigned int)>>,void (unsigned int, const mojo::HandleSignalsState &)>::Run() EmbeddedBrowserWebView.dll!mojo::SimpleWatcher::OnHandleReady() EmbeddedBrowserWebView.dll!base::internal::Invoker<base::internal::BindState<void (mojo::SimpleWatcher::)(int, unsigned int, const mojo::HandleSignalsState &) attribute((thiscall)),base::WeakPtr,int,unsigned int,mojo::HandleSignalsState>,void ()>::RunOnce() EmbeddedBrowserWebView.dll!base::TaskAnnotator::RunTaskImpl(struct base::PendingTask &) EmbeddedBrowserWebView.dll!base::TaskAnnotator::RunTask<>() EmbeddedBrowserWebView.dll!embedded_browser_webview::internal::AppTaskRunner::DoWork()
EmbeddedBrowserWebView.dll!embedded_browser_webview::internal::AppTaskRunner::MessageCallback() EmbeddedBrowserWebView.dll!base::internal::Invoker<base::internal::BindState<bool (embedded_browser_webview::internal::AppTaskRunner::)(unsigned int, unsigned int, long, long ) attribute((thiscall)),base::internal::UnretainedWrapper>,bool (unsigned int, unsigned int, long, long )>::Run()
EmbeddedBrowserWebView.dll!base::win::MessageWindow::WindowProc()
EmbeddedBrowserWebView.dll!base::win::WrappedWindowProc<&base::win::MessageWindow::WindowProc>()
user32.dll!__InternalCallWinProc@20()
user32.dll!UserCallWinProcCheckWow()
user32.dll!CallWindowProcAorW(long (
)(struct HWND *,unsigned int,unsigned int,long),struct HWND ,enum _WM_VALUE,unsigned int,long,int)
user32.dll!_CallWindowProcW@20()
mfc140u.dll!_AfxActivationWndProc(HWND__
hWnd, unsigned int nMsg, unsigned int wParam, long lParam) 줄 478 C++ user32.dll!__InternalCallWinProc@20()
user32.dll!UserCallWinProcCheckWow()
user32.dll!DispatchMessageWorker()
user32.dll!_DispatchMessageW@4()
mfc140u.dll!AfxInternalPumpMessage() 줄 183 C++ mfc140u.dll!AfxWinMain(HINSTANCE * hInstance, HINSTANCE hPrevInstance, wchar_t lpCmdLine, int nCmdShow) 줄 61 C++ kernel32.dll!@BaseThreadInitThunk@12()

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Version SDK: Microsoft.Web.WebView2(1.0.1343.22) , Microsoft.Windows.ImplementationLibrary(1.0.220914.1) Runtime: WebView2 105.0.1343.42 Framework: Win32, MFC(Visual C++ 2022, Visual Studio 2022 17.2.6) OS: Windows 10 21H2 10.0.19044.2130

Repro Steps

Screenshots not responding

Additional context It doesn't always happen. difficult to reproduce. 'Windows 10 1909 18363.1556' that almost always happens.

victorthoang commented 1 year ago

Hello @clock75,

Thanks for your bug report. I've assigned this to a dev that can best try to follow up on this.

clock75 commented 1 year ago

CoreWebView2EnvironmentOptions.AdditionalBrowserArguments -> '--disable-gpu' I haven't had any problems since adding this argument.