1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 02:37:35 +00:00

Ladybird/WebView: Ensure a console widget exists before storing messages

This makes sure that any console.log (and friends) called before ever
opening the JS Console are not lost.
This commit is contained in:
davidot 2022-09-21 16:34:18 +02:00 committed by Andrew Kaster
parent 3610ac5e19
commit 07a500e923
2 changed files with 8 additions and 3 deletions

View file

@ -556,14 +556,13 @@ void WebView::did_output_js_console_message(i32 message_index)
void WebView::did_get_js_console_messages(i32, Vector<String>, Vector<String> messages) void WebView::did_get_js_console_messages(i32, Vector<String>, Vector<String> messages)
{ {
if (!m_js_console_input_edit) ensure_js_console_widget();
return;
for (auto& message : messages) { for (auto& message : messages) {
m_js_console_output_edit->append(qstring_from_akstring(message).trimmed()); m_js_console_output_edit->append(qstring_from_akstring(message).trimmed());
} }
} }
void WebView::show_js_console() void WebView::ensure_js_console_widget()
{ {
if (!m_js_console_widget) { if (!m_js_console_widget) {
m_js_console_widget = new QWidget; m_js_console_widget = new QWidget;
@ -587,6 +586,11 @@ void WebView::show_js_console()
m_page_client->m_console_client->handle_input(akstring_from_qstring(code)); m_page_client->m_console_client->handle_input(akstring_from_qstring(code));
}); });
} }
}
void WebView::show_js_console()
{
ensure_js_console_widget();
m_js_console_widget->show(); m_js_console_widget->show();
m_js_console_input_edit->setFocus(); m_js_console_input_edit->setFocus();
} }

View file

@ -71,6 +71,7 @@ signals:
private: private:
void update_viewport_rect(); void update_viewport_rect();
void ensure_js_console_widget();
OwnPtr<Ladybird::PageClientLadybird> m_page_client; OwnPtr<Ladybird::PageClientLadybird> m_page_client;