Преглед на файлове

LibWeb: Implement Node::navigable()

https://html.spec.whatwg.org/multipage/document-sequences.html#node-navigable
Aliaksandr Kalenik преди 2 години
родител
ревизия
22572c39e0
променени са 2 файла, в които са добавени 11 реда и са изтрити 0 реда
  1. 9 0
      Userland/Libraries/LibWeb/DOM/Node.cpp
  2. 2 0
      Userland/Libraries/LibWeb/DOM/Node.h

+ 9 - 0
Userland/Libraries/LibWeb/DOM/Node.cpp

@@ -32,6 +32,7 @@
 #include <LibWeb/HTML/CustomElements/CustomElementReactionNames.h>
 #include <LibWeb/HTML/HTMLAnchorElement.h>
 #include <LibWeb/HTML/HTMLStyleElement.h>
+#include <LibWeb/HTML/Navigable.h>
 #include <LibWeb/HTML/NavigableContainer.h>
 #include <LibWeb/HTML/Origin.h>
 #include <LibWeb/HTML/Parser/HTMLParser.h>
@@ -238,6 +239,14 @@ void Node::set_node_value(DeprecatedString const& value)
     // Otherwise, do nothing.
 }
 
+// https://html.spec.whatwg.org/multipage/document-sequences.html#node-navigable
+JS::GCPtr<HTML::Navigable> Node::navigable() const
+{
+    // To get the node navigable of a node node, return the navigable whose active document is node's node document,
+    // or null if there is no such navigable.
+    return HTML::Navigable::navigable_with_active_document(const_cast<Document&>(document()));
+}
+
 void Node::invalidate_style()
 {
     if (is_document()) {

+ 2 - 0
Userland/Libraries/LibWeb/DOM/Node.h

@@ -135,6 +135,8 @@ public:
     DeprecatedString node_value() const;
     void set_node_value(DeprecatedString const&);
 
+    JS::GCPtr<HTML::Navigable> navigable() const;
+
     Document& document() { return *m_document; }
     Document const& document() const { return *m_document; }