diff --git a/Userland/Libraries/LibWeb/DOM/Event.cpp b/Userland/Libraries/LibWeb/DOM/Event.cpp index 796e2a7efd..554e7cb1c5 100644 --- a/Userland/Libraries/LibWeb/DOM/Event.cpp +++ b/Userland/Libraries/LibWeb/DOM/Event.cpp @@ -83,7 +83,7 @@ void Event::append_to_path(EventTarget& invocation_target, JS::GCPtr(invocation_target_node)) { auto& invocation_target_shadow_root = verify_cast(invocation_target_node); // 4. If invocationTarget is a shadow root whose mode is "closed", then set root-of-closed-tree to true. - root_of_closed_tree = invocation_target_shadow_root.closed(); + root_of_closed_tree = invocation_target_shadow_root.mode() == Bindings::ShadowRootMode::Closed; } } diff --git a/Userland/Libraries/LibWeb/DOM/ShadowRoot.h b/Userland/Libraries/LibWeb/DOM/ShadowRoot.h index adb68d8ebd..b4d33a8df4 100644 --- a/Userland/Libraries/LibWeb/DOM/ShadowRoot.h +++ b/Userland/Libraries/LibWeb/DOM/ShadowRoot.h @@ -6,6 +6,7 @@ #pragma once +#include #include namespace Web::DOM { @@ -14,7 +15,7 @@ class ShadowRoot final : public DocumentFragment { WEB_PLATFORM_OBJECT(ShadowRoot, DocumentFragment); public: - bool closed() const { return m_closed; } + Bindings::ShadowRootMode mode() const { return m_mode; } bool delegates_focus() const { return m_delegates_focus; } void set_delegates_focus(bool delegates_focus) { m_delegates_focus = delegates_focus; } @@ -25,9 +26,6 @@ public: // ^EventTarget virtual EventTarget* get_parent(Event const&) override; - // NOTE: This is intended for the JS bindings. - DeprecatedString mode() const { return m_closed ? "closed" : "open"; } - WebIDL::ExceptionOr inner_html() const; WebIDL::ExceptionOr set_inner_html(DeprecatedString const&); @@ -39,8 +37,8 @@ private: virtual DeprecatedFlyString node_name() const override { return "#shadow-root"; } virtual bool is_shadow_root() const final { return true; } - // NOTE: The specification doesn't seem to specify a default value for closed. Assuming false for now. - bool m_closed { false }; + // NOTE: The specification doesn't seem to specify a default value for closed. Assuming closed for now. + Bindings::ShadowRootMode m_mode { Bindings::ShadowRootMode::Closed }; bool m_delegates_focus { false }; bool m_available_to_element_internals { false }; }; diff --git a/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl b/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl index c5474d5903..3403c58bc2 100644 --- a/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl +++ b/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl @@ -4,8 +4,7 @@ // https://dom.spec.whatwg.org/#shadowroot [Exposed=Window] interface ShadowRoot : DocumentFragment { - // FIXME: mode should return a ShadowRootMode - readonly attribute DOMString mode; + readonly attribute ShadowRootMode mode; // FIXME: readonly attribute boolean delegatesFocus; // FIXME: readonly attribute SlotAssignmentMode slotAssignment; readonly attribute Element host;