summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarol Kosek <krkk@serenityos.org>2023-01-28 20:31:56 +0100
committerAndreas Kling <kling@serenityos.org>2023-02-02 14:43:29 +0100
commit9a7f786262d5826396ca987e194cb94f72d2c708 (patch)
tree59800984d1eec4353a3a9cbbb400e888235ce16d
parent34913c48d3d53b0ca286fe91e1521876233a6281 (diff)
downloadserenity-9a7f786262d5826396ca987e194cb94f72d2c708.zip
LibWeb: Make ShadowRoot.mode return ShadowRootMode instead of String
-rw-r--r--Userland/Libraries/LibWeb/DOM/Event.cpp2
-rw-r--r--Userland/Libraries/LibWeb/DOM/ShadowRoot.h10
-rw-r--r--Userland/Libraries/LibWeb/DOM/ShadowRoot.idl3
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;