diff --git a/Userland/Libraries/LibWeb/HTML/Navigable.cpp b/Userland/Libraries/LibWeb/HTML/Navigable.cpp index 9503eb0c3f..705fc9f91f 100644 --- a/Userland/Libraries/LibWeb/HTML/Navigable.cpp +++ b/Userland/Libraries/LibWeb/HTML/Navigable.cpp @@ -193,6 +193,19 @@ JS::GCPtr Navigable::container() const return NavigableContainer::navigable_container_with_content_navigable(const_cast(*this)); } +// https://html.spec.whatwg.org/multipage/document-sequences.html#nav-container-document +JS::GCPtr Navigable::container_document() const +{ + auto container = this->container(); + + // 1. If navigable's container is null, then return null. + if (!container) + return nullptr; + + // 2. Return navigable's container's node document. + return container->document(); +} + // https://html.spec.whatwg.org/multipage/document-sequences.html#nav-traversable JS::GCPtr Navigable::traversable_navigable() const { diff --git a/Userland/Libraries/LibWeb/HTML/Navigable.h b/Userland/Libraries/LibWeb/HTML/Navigable.h index 112d70f1cd..e40ff78494 100644 --- a/Userland/Libraries/LibWeb/HTML/Navigable.h +++ b/Userland/Libraries/LibWeb/HTML/Navigable.h @@ -60,6 +60,7 @@ public: String target_name() const; JS::GCPtr container() const; + JS::GCPtr container_document() const; JS::GCPtr traversable_navigable() const; JS::GCPtr top_level_traversable();