diff options
author | Karol Kosek <krkk@serenityos.org> | 2023-01-28 20:31:56 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2023-02-02 14:43:29 +0100 |
commit | 9a7f786262d5826396ca987e194cb94f72d2c708 (patch) | |
tree | 59800984d1eec4353a3a9cbbb400e888235ce16d | |
parent | 34913c48d3d53b0ca286fe91e1521876233a6281 (diff) | |
download | serenity-9a7f786262d5826396ca987e194cb94f72d2c708.zip |
LibWeb: Make ShadowRoot.mode return ShadowRootMode instead of String
-rw-r--r-- | Userland/Libraries/LibWeb/DOM/Event.cpp | 2 | ||||
-rw-r--r-- | Userland/Libraries/LibWeb/DOM/ShadowRoot.h | 10 | ||||
-rw-r--r-- | Userland/Libraries/LibWeb/DOM/ShadowRoot.idl | 3 |
3 files changed, 6 insertions, 9 deletions
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<EventTarget if (is<ShadowRoot>(invocation_target_node)) { auto& invocation_target_shadow_root = verify_cast<ShadowRoot>(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 <LibWeb/Bindings/ShadowRootPrototype.h> #include <LibWeb/DOM/DocumentFragment.h> 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<DeprecatedString> inner_html() const; WebIDL::ExceptionOr<void> 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; |