mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 07:30:19 +00:00
Ladybird: Close inspector and JS console when tab closes
Keeping these around can lead to use-after-frees and crashes.
This commit is contained in:
parent
33249c727a
commit
678dfa8f75
Notes:
sideshowbarker
2024-07-17 08:45:34 +09:00
Author: https://github.com/MacDue Commit: https://github.com/SerenityOS/serenity/commit/678dfa8f75 Pull-request: https://github.com/SerenityOS/serenity/pull/16665
2 changed files with 9 additions and 5 deletions
|
@ -77,7 +77,7 @@ WebContentView::WebContentView(StringView webdriver_content_ipc_path)
|
|||
|
||||
WebContentView::~WebContentView()
|
||||
{
|
||||
clear_inspector_callbacks();
|
||||
close_sub_widgets();
|
||||
}
|
||||
|
||||
void WebContentView::load(AK::URL const& url)
|
||||
|
@ -515,10 +515,14 @@ void WebContentView::ensure_inspector_widget()
|
|||
};
|
||||
}
|
||||
|
||||
void WebContentView::clear_inspector_callbacks()
|
||||
void WebContentView::close_sub_widgets()
|
||||
{
|
||||
if (m_inspector_widget)
|
||||
m_inspector_widget->on_close = nullptr;
|
||||
auto close_widget_window = [](auto* widget) {
|
||||
if (widget)
|
||||
widget->close();
|
||||
};
|
||||
close_widget_window(m_console_widget);
|
||||
close_widget_window(m_inspector_widget);
|
||||
}
|
||||
|
||||
bool WebContentView::is_inspector_open() const
|
||||
|
|
|
@ -192,7 +192,7 @@ private:
|
|||
bool is_inspector_open() const;
|
||||
void inspect_dom_tree();
|
||||
void clear_inspected_dom_node();
|
||||
void clear_inspector_callbacks();
|
||||
void close_sub_widgets();
|
||||
ErrorOr<Ladybird::DOMNodeProperties> inspect_dom_node(i32 node_id, Optional<Web::CSS::Selector::PseudoElement> pseudo_element);
|
||||
|
||||
qreal m_inverse_pixel_scaling_ratio { 1.0 };
|
||||
|
|
Loading…
Reference in a new issue