From 07a500e9233a1d3737538b2836e6ab2e446146f1 Mon Sep 17 00:00:00 2001 From: davidot Date: Wed, 21 Sep 2022 16:34:18 +0200 Subject: [PATCH] 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. --- Ladybird/WebView.cpp | 10 +++++++--- Ladybird/WebView.h | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Ladybird/WebView.cpp b/Ladybird/WebView.cpp index 7e7a33d740..52ffbb2a08 100644 --- a/Ladybird/WebView.cpp +++ b/Ladybird/WebView.cpp @@ -556,14 +556,13 @@ void WebView::did_output_js_console_message(i32 message_index) void WebView::did_get_js_console_messages(i32, Vector, Vector messages) { - if (!m_js_console_input_edit) - return; + ensure_js_console_widget(); for (auto& message : messages) { 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) { 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)); }); } +} + +void WebView::show_js_console() +{ + ensure_js_console_widget(); m_js_console_widget->show(); m_js_console_input_edit->setFocus(); } diff --git a/Ladybird/WebView.h b/Ladybird/WebView.h index 90237d04a1..2da9268d5f 100644 --- a/Ladybird/WebView.h +++ b/Ladybird/WebView.h @@ -71,6 +71,7 @@ signals: private: void update_viewport_rect(); + void ensure_js_console_widget(); OwnPtr m_page_client;