diff --git a/Userland/Libraries/LibWeb/DOM/Element.h b/Userland/Libraries/LibWeb/DOM/Element.h index d703c6b405b..9a4d764ae25 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.h +++ b/Userland/Libraries/LibWeb/DOM/Element.h @@ -83,7 +83,9 @@ public: // NOTE: This is for the JS bindings DeprecatedString const& tag_name() const { return html_uppercased_qualified_name(); } - DeprecatedFlyString prefix() const { return m_qualified_name.deprecated_prefix(); } + Optional const& prefix() const { return m_qualified_name.prefix(); } + DeprecatedFlyString deprecated_prefix() const { return m_qualified_name.deprecated_prefix(); } + void set_prefix(DeprecatedFlyString const& value); DeprecatedFlyString namespace_() const { return m_qualified_name.deprecated_namespace_(); } diff --git a/Userland/Libraries/LibWeb/DOM/Element.idl b/Userland/Libraries/LibWeb/DOM/Element.idl index 37fee093683..7c8b6fa1f3f 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.idl +++ b/Userland/Libraries/LibWeb/DOM/Element.idl @@ -24,7 +24,7 @@ dictionary ScrollIntoViewOptions : ScrollOptions { [Exposed=Window, UseDeprecatedAKString] interface Element : Node { readonly attribute DOMString? namespaceURI; - readonly attribute DOMString? prefix; + [ImplementedAs=deprecated_prefix] readonly attribute DOMString? prefix; readonly attribute DOMString localName; readonly attribute DOMString tagName; diff --git a/Userland/Libraries/LibWeb/DOM/Node.cpp b/Userland/Libraries/LibWeb/DOM/Node.cpp index 2434e5a7ef4..2ae3cb86244 100644 --- a/Userland/Libraries/LibWeb/DOM/Node.cpp +++ b/Userland/Libraries/LibWeb/DOM/Node.cpp @@ -809,7 +809,7 @@ JS::NonnullGCPtr Node::clone_node(Document* document, bool clone_children) if (is(this)) { // 1. Let copy be the result of creating an element, given document, node’s local name, node’s namespace, node’s namespace prefix, and node’s is value, with the synchronous custom elements flag unset. auto& element = *verify_cast(this); - auto element_copy = DOM::create_element(*document, element.local_name(), element.namespace_(), element.prefix(), element.is_value(), false).release_value_but_fixme_should_propagate_errors(); + auto element_copy = DOM::create_element(*document, element.local_name(), element.namespace_(), element.deprecated_prefix(), element.is_value(), false).release_value_but_fixme_should_propagate_errors(); // 2. For each attribute in node’s attribute list: element.for_each_attribute([&](auto& name, auto& value) { diff --git a/Userland/Libraries/LibWeb/DOMParsing/XMLSerializer.cpp b/Userland/Libraries/LibWeb/DOMParsing/XMLSerializer.cpp index 406f49fd165..16344510c01 100644 --- a/Userland/Libraries/LibWeb/DOMParsing/XMLSerializer.cpp +++ b/Userland/Libraries/LibWeb/DOMParsing/XMLSerializer.cpp @@ -549,7 +549,7 @@ static WebIDL::ExceptionOr serialize_element(DOM::Element cons // 12. Otherwise, inherited ns is not equal to ns (the node's own namespace is different from the context namespace of its parent). Run these sub-steps: else { // 1. Let prefix be the value of node's prefix attribute. - auto prefix = element.prefix(); + auto prefix = element.deprecated_prefix(); // 2. Let candidate prefix be the result of retrieving a preferred prefix string prefix from map given namespace ns. auto candidate_prefix = retrieve_a_preferred_prefix_string(prefix, map, ns);