From 406e3ed849dc310b570a6a893a85f13037ecc62d Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 16 Dec 2022 12:05:19 +0100 Subject: [PATCH] LibWeb: Implement getting the container document of a navigable Co-authored-by: Aliaksandr Kalenik --- Userland/Libraries/LibWeb/HTML/Navigable.cpp | 13 +++++++++++++ Userland/Libraries/LibWeb/HTML/Navigable.h | 1 + 2 files changed, 14 insertions(+) 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();