Use new JS wrapper with webkit2

This commit is contained in:
Tobias Taschner
2021-04-09 22:11:35 +02:00
parent 7aa1d84e4a
commit e1bd17d883

View File

@@ -1287,31 +1287,26 @@ bool wxWebViewWebKit::RunScriptSync(const wxString& javascript, wxString* output
bool wxWebViewWebKit::RunScript(const wxString& javascript, wxString* output) const bool wxWebViewWebKit::RunScript(const wxString& javascript, wxString* output) const
{ {
wxJSScriptWrapper wrapJS(javascript, &m_runScriptCount); wxJSScriptWrapper wrapJS(javascript, wxJSScriptWrapper::JS_OUTPUT_STRING);
// This string is also used as an error indicator: it's cleared if there is bool success = false;
// no error or used in the warning message below if there is one.
wxString result; wxString result;
if ( RunScriptSync(wrapJS.GetWrappedCode(), &result) wxString scriptOutput;
&& result == wxS("true") ) if (RunScriptSync(wrapJS.GetWrappedCode(), &result))
{ {
if ( RunScriptSync(wrapJS.GetOutputCode(), &result) ) success = wxJSScriptWrapper::ExtractOutput(result, &scriptOutput);
{
if ( output )
*output = result;
result.clear();
}
RunScriptSync(wrapJS.GetCleanUpCode());
} }
if ( !result.empty() ) if (output)
output->assign(scriptOutput);
if (!success)
{ {
wxLogWarning(_("Error running JavaScript: %s"), result); wxLogWarning(_("Error running JavaScript: %s"), scriptOutput);
return false; return false;
} }
else
return true; return true;
} }
bool wxWebViewWebKit::AddScriptMessageHandler(const wxString& name) bool wxWebViewWebKit::AddScriptMessageHandler(const wxString& name)