From 5dae0333b30c60fec20ecae5f4aa8f3a1847ab9b Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 09:56:36 +0100 Subject: [PATCH] Improve wxWebViewEdge::RunScriptSync() error handling --- src/msw/webview_edge.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index a41c364476..14f90c4d9d 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -702,29 +702,32 @@ bool wxWebViewEdge::RunScriptSync(const wxString& javascript, wxString* output) { bool scriptExecuted = false; - HRESULT hr = m_impl->m_webView->ExecuteScript(javascript.wc_str(), Callback( - [&scriptExecuted, output](HRESULT error, PCWSTR result) -> HRESULT + // Start script execution + HRESULT executionResult = m_impl->m_webView->ExecuteScript(javascript.wc_str(), Callback( + [&scriptExecuted, &executionResult, output](HRESULT error, PCWSTR result) -> HRESULT { + // Handle script execution callback if (error == S_OK) { if (output) output->assign(result); } else - wxLogError(_("RunScript failed: %.8x"), error); + executionResult = error; scriptExecuted = true; return S_OK; }).Get()); - + // Wait for script exection while (!scriptExecuted) wxYield(); - if (FAILED(hr)) + if (FAILED(executionResult)) { - wxLogApiError("ExecuteScript", hr); + if (output) + output->Printf("%s (0x%08lx)", wxSysErrorMsgStr(executionResult), executionResult); return false; } else