From d597626ea1b61cfe7f99d19fb60b451b7d3863f5 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 10 Feb 2021 18:21:35 +0100 Subject: [PATCH] LibWeb: Add a way to give DOM::Element a ShadowRoot You can now attach a shadow root to your favorite Element. It doesn't do anything yet, but you can. --- Userland/Libraries/LibWeb/DOM/Element.cpp | 10 +++++++++- Userland/Libraries/LibWeb/DOM/Element.h | 6 ++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/DOM/Element.cpp b/Userland/Libraries/LibWeb/DOM/Element.cpp index 3eb3e0b747..c40932a0f5 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.cpp +++ b/Userland/Libraries/LibWeb/DOM/Element.cpp @@ -31,8 +31,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -365,4 +365,12 @@ NonnullRefPtrVector Element::get_elements_by_class_name(const FlyString return elements; } +void Element::set_shadow_root(RefPtr shadow_root) +{ + if (m_shadow_root == shadow_root) + return; + m_shadow_root = move(shadow_root); + invalidate_style(); +} + } diff --git a/Userland/Libraries/LibWeb/DOM/Element.h b/Userland/Libraries/LibWeb/DOM/Element.h index 1f914cf484..fd41df14d9 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.h +++ b/Userland/Libraries/LibWeb/DOM/Element.h @@ -101,6 +101,10 @@ public: NonnullRefPtrVector get_elements_by_tag_name(const FlyString&) const; NonnullRefPtrVector get_elements_by_class_name(const FlyString&) const; + ShadowRoot* shadow_root() { return m_shadow_root; } + const ShadowRoot* shadow_root() const { return m_shadow_root; } + void set_shadow_root(RefPtr); + protected: RefPtr create_layout_node() override; @@ -116,6 +120,8 @@ private: RefPtr m_specified_css_values; Vector m_classes; + + RefPtr m_shadow_root; }; template<>