1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 08:47:34 +00:00

LibWeb: Implement Node::navigable()

https://html.spec.whatwg.org/multipage/document-sequences.html#node-navigable
This commit is contained in:
Aliaksandr Kalenik 2023-04-23 00:21:59 +03:00 committed by Andreas Kling
parent 6e416284b9
commit 22572c39e0
2 changed files with 11 additions and 0 deletions

View file

@ -32,6 +32,7 @@
#include <LibWeb/HTML/CustomElements/CustomElementReactionNames.h> #include <LibWeb/HTML/CustomElements/CustomElementReactionNames.h>
#include <LibWeb/HTML/HTMLAnchorElement.h> #include <LibWeb/HTML/HTMLAnchorElement.h>
#include <LibWeb/HTML/HTMLStyleElement.h> #include <LibWeb/HTML/HTMLStyleElement.h>
#include <LibWeb/HTML/Navigable.h>
#include <LibWeb/HTML/NavigableContainer.h> #include <LibWeb/HTML/NavigableContainer.h>
#include <LibWeb/HTML/Origin.h> #include <LibWeb/HTML/Origin.h>
#include <LibWeb/HTML/Parser/HTMLParser.h> #include <LibWeb/HTML/Parser/HTMLParser.h>
@ -238,6 +239,14 @@ void Node::set_node_value(DeprecatedString const& value)
// Otherwise, do nothing. // 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() void Node::invalidate_style()
{ {
if (is_document()) { if (is_document()) {

View file

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