Browser: Reload the DOM Inspector's JSON data when loading a new page

Of course, there are other reasons the DOM might change, but one thing
at a time. :^)
This commit is contained in:
Sam Atkins 2021-09-01 12:50:47 +01:00 committed by Andreas Kling
parent 73c95bcd5f
commit 724f45c784
Notes: sideshowbarker 2024-07-18 04:51:34 +09:00
3 changed files with 17 additions and 1 deletions

View file

@ -117,6 +117,13 @@ void InspectorWidget::set_dom_json(String json)
}
}
void InspectorWidget::clear_dom_json()
{
m_dom_json.clear();
m_dom_tree_view->set_model(nullptr);
clear_style_json();
}
void InspectorWidget::set_dom_node_properties_json(i32 node_id, String specified_values_json, String computed_values_json)
{
if (node_id != m_inspected_node_id) {

View file

@ -19,6 +19,7 @@ public:
void set_web_view(NonnullRefPtr<Web::OutOfProcessWebView> web_view) { m_web_view = web_view; }
void set_dom_json(String);
void clear_dom_json();
void set_dom_node_properties_json(i32 node_id, String specified_values_json, String computed_values_json);
void set_inspected_node(i32 node_id);

View file

@ -175,6 +175,14 @@ Tab::Tab(BrowserWindow& window)
update_actions();
update_bookmark_button(url.to_string());
if (m_dom_inspector_widget)
m_dom_inspector_widget->clear_dom_json();
};
hooks().on_load_finish = [this](auto&) {
if (m_dom_inspector_widget)
m_web_content_view->inspect_dom_tree();
};
hooks().on_link_click = [this](auto& url, auto& target, unsigned modifiers) {
@ -478,8 +486,8 @@ void Tab::show_inspector_window(Browser::Tab::InspectorTarget inspector_target)
};
m_dom_inspector_widget = window->set_main_widget<InspectorWidget>();
m_dom_inspector_widget->set_web_view(*m_web_content_view);
m_web_content_view->inspect_dom_tree();
}
m_web_content_view->inspect_dom_tree();
if (inspector_target == InspectorTarget::HoveredElement) {
Optional<i32> hovered_node = m_web_content_view->get_hovered_node_id();