From ff2c949d70033e6bc2deb9cb6c1c8baca4fbbe79 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 12 Jun 2020 13:23:07 +0200 Subject: [PATCH] LibWeb: Include class names in layout tree dumps This makes it a lot easier to see which layout node is which DOM node. --- Libraries/LibWeb/DOM/Element.h | 1 + Libraries/LibWeb/Dump.cpp | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Libraries/LibWeb/DOM/Element.h b/Libraries/LibWeb/DOM/Element.h index e8d0e4faba..cca9f83c6a 100644 --- a/Libraries/LibWeb/DOM/Element.h +++ b/Libraries/LibWeb/DOM/Element.h @@ -61,6 +61,7 @@ public: } bool has_class(const FlyString&) const; + const Vector& class_names() const { return m_classes; } virtual void apply_presentational_hints(StyleProperties&) const { } virtual void parse_attribute(const FlyString& name, const String& value); diff --git a/Libraries/LibWeb/Dump.cpp b/Libraries/LibWeb/Dump.cpp index 42ce636a19..eba734220e 100644 --- a/Libraries/LibWeb/Dump.cpp +++ b/Libraries/LibWeb/Dump.cpp @@ -93,13 +93,18 @@ void dump_tree(const LayoutNode& layout_node) String identifier = ""; if (layout_node.node() && is(*layout_node.node())) { - auto id = to(*layout_node.node()).attribute(HTML::AttributeNames::id); + auto& element = to(*layout_node.node()); + StringBuilder builder; + auto id = element.attribute(HTML::AttributeNames::id); if (!id.is_empty()) { - StringBuilder builder; builder.append('#'); builder.append(id); - identifier = builder.to_string(); } + for (auto& class_name : element.class_names()) { + builder.append('.'); + builder.append(class_name); + } + identifier = builder.to_string(); } if (!layout_node.is_box()) {