From 4ec39681784d6225c5d58655a978b3b08171c7ba Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Tue, 6 Aug 2024 15:39:57 +0100 Subject: [PATCH] WebContent+LibWeb: Display resolved pseudo-element style in inspector This also now uses the cached computed style for them, instead of computing it fresh each time. --- Userland/Libraries/LibWeb/DOM/Element.cpp | 4 ++-- Userland/Libraries/LibWeb/DOM/Element.h | 2 +- Userland/Services/WebContent/ConnectionFromClient.cpp | 9 +++------ 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/Userland/Libraries/LibWeb/DOM/Element.cpp b/Userland/Libraries/LibWeb/DOM/Element.cpp index 832300893cf..326957a5ed0 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.cpp +++ b/Userland/Libraries/LibWeb/DOM/Element.cpp @@ -607,9 +607,9 @@ CSS::RequiredInvalidationAfterStyleChange Element::recompute_style() return invalidation; } -NonnullRefPtr Element::resolved_css_values() +NonnullRefPtr Element::resolved_css_values(Optional type) { - auto element_computed_style = CSS::ResolvedCSSStyleDeclaration::create(*this); + auto element_computed_style = CSS::ResolvedCSSStyleDeclaration::create(*this, type); auto properties = CSS::StyleProperties::create(); for (auto i = to_underlying(CSS::first_property_id); i <= to_underlying(CSS::last_property_id); ++i) { diff --git a/Userland/Libraries/LibWeb/DOM/Element.h b/Userland/Libraries/LibWeb/DOM/Element.h index f0d8d451ed5..233114fe998 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.h +++ b/Userland/Libraries/LibWeb/DOM/Element.h @@ -186,7 +186,7 @@ public: CSS::StyleProperties* computed_css_values() { return m_computed_css_values.ptr(); } CSS::StyleProperties const* computed_css_values() const { return m_computed_css_values.ptr(); } void set_computed_css_values(RefPtr); - NonnullRefPtr resolved_css_values(); + NonnullRefPtr resolved_css_values(Optional = {}); void set_pseudo_element_computed_css_values(CSS::Selector::PseudoElement::Type, RefPtr); RefPtr pseudo_element_computed_css_values(CSS::Selector::PseudoElement::Type); diff --git a/Userland/Services/WebContent/ConnectionFromClient.cpp b/Userland/Services/WebContent/ConnectionFromClient.cpp index 36f0fb911d0..59645b52730 100644 --- a/Userland/Services/WebContent/ConnectionFromClient.cpp +++ b/Userland/Services/WebContent/ConnectionFromClient.cpp @@ -553,12 +553,9 @@ void ConnectionFromClient::inspect_dom_node(u64 page_id, i32 node_id, Optionalpage().focused_navigable().active_document()->style_computer().compute_style(element, pseudo_element); - ByteString computed_values = serialize_json(pseudo_element_style); - ByteString resolved_values = "{}"; + auto pseudo_element_style = element.pseudo_element_computed_css_values(pseudo_element.value()); + ByteString computed_values = serialize_json(*pseudo_element_style); + ByteString resolved_values = serialize_json(*element.resolved_css_values(pseudo_element.value())); ByteString custom_properties_json = serialize_custom_properties_json(element, pseudo_element); ByteString node_box_sizing_json = serialize_node_box_sizing_json(pseudo_element_node.ptr());