diff --git a/Userland/Applications/Browser/InspectorWidget.cpp b/Userland/Applications/Browser/InspectorWidget.cpp index 0779097600..5142f171d8 100644 --- a/Userland/Applications/Browser/InspectorWidget.cpp +++ b/Userland/Applications/Browser/InspectorWidget.cpp @@ -61,6 +61,13 @@ void InspectorWidget::set_selection(GUI::ModelIndex const index) return; m_selection = move(selection); + // Note: Non-visible nodes don't have style data and such, and will hit assertions if inspection is attempted. + if (!json->get("visible").to_bool(true)) { + clear_style_json(); + clear_node_box_model(); + return; + } + auto maybe_inspected_node_properties = m_web_view->inspect_dom_node(m_selection.dom_node_id, m_selection.pseudo_element); if (maybe_inspected_node_properties.has_value()) { auto inspected_node_properties = maybe_inspected_node_properties.value(); @@ -203,6 +210,14 @@ void InspectorWidget::update_node_box_model(Optional node_box_sizing_jso m_element_size_view->set_box_model(m_node_box_sizing); } +void InspectorWidget::clear_node_box_model() +{ + m_node_box_sizing = Web::Layout::BoxModelMetrics {}; + m_element_size_view->set_node_content_width(0); + m_element_size_view->set_node_content_height(0); + m_element_size_view->set_box_model(m_node_box_sizing); +} + void InspectorWidget::clear_style_json() { m_selection_specified_values_json.clear(); diff --git a/Userland/Applications/Browser/InspectorWidget.h b/Userland/Applications/Browser/InspectorWidget.h index 4ea84703b7..bff3d1ed30 100644 --- a/Userland/Applications/Browser/InspectorWidget.h +++ b/Userland/Applications/Browser/InspectorWidget.h @@ -54,6 +54,7 @@ private: void load_style_json(String specified_values_json, String computed_values_json, String custom_properties_json); void update_node_box_model(Optional node_box_sizing_json); void clear_style_json(); + void clear_node_box_model(); RefPtr m_web_view;