Open github-actions[bot] opened 1 month ago
We need to convey the error somehow.
https://github.com/arturo-lang/arturo/blob/135fdd90eb88beea0e8a44eacc40ab01f1076180/src/extras/webview/webview-windows.h#L4164
SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOMOVE | SWP_FRAMECHANGED); } return {}; } noresult navigate_impl(const std::string &url) override { auto wurl = widen_string(url); m_webview->Navigate(wurl.c_str()); return {}; } noresult eval_impl(const std::string &js) override { // TODO: Skip if no content has begun loading yet. Can't check with // ICoreWebView2::get_Source because it returns "about:blank". auto wjs = widen_string(js); m_webview->ExecuteScript(wjs.c_str(), nullptr); return {}; } noresult set_html_impl(const std::string &html) override { m_webview->NavigateToString(widen_string(html).c_str()); return {}; } user_script add_user_script_impl(const std::string &js) override { auto wjs = widen_string(js); std::wstring script_id; bool done{}; webview2_user_script_added_handler handler{[&](HRESULT res, LPCWSTR id) { if (SUCCEEDED(res)) { script_id = id; } done = true; }}; auto res = m_webview->AddScriptToExecuteOnDocumentCreated(wjs.c_str(), &handler); if (SUCCEEDED(res)) { // Sadly we need to pump the even loop in order to get the script ID. while (!done) { deplete_run_loop_event_queue(); } } // TODO: There's a non-zero chance that we didn't get the script ID. // We need to convey the error somehow. return user_script{js, std::unique_ptr<user_script::impl>{ new user_script::impl{script_id, wjs}}}; } void remove_all_user_scripts_impl(const std::list<user_script> &scripts) override { for (const auto &script : scripts) { const auto &id = script.get_impl().get_id(); m_webview->RemoveScriptToExecuteOnDocumentCreated(id.c_str()); } } bool are_user_scripts_equal_impl(const user_script &first, const user_script &second) override { const auto &first_id = first.get_impl().get_id(); const auto &second_id = second.get_impl().get_id(); return first_id == second_id; } private: noresult embed(HWND wnd, bool debug, msg_cb_t cb) { std::atomic_flag flag = ATOMIC_FLAG_INIT; flag.test_and_set();
We need to convey the error somehow.
https://github.com/arturo-lang/arturo/blob/135fdd90eb88beea0e8a44eacc40ab01f1076180/src/extras/webview/webview-windows.h#L4164