فهرست منبع

LibWeb: Implement getting the container document of a navigable

Co-authored-by: Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
Andreas Kling 2 سال پیش
والد
کامیت
406e3ed849
2فایلهای تغییر یافته به همراه14 افزوده شده و 0 حذف شده
  1. 13 0
      Userland/Libraries/LibWeb/HTML/Navigable.cpp
  2. 1 0
      Userland/Libraries/LibWeb/HTML/Navigable.h

+ 13 - 0
Userland/Libraries/LibWeb/HTML/Navigable.cpp

@@ -193,6 +193,19 @@ JS::GCPtr<NavigableContainer> Navigable::container() const
     return NavigableContainer::navigable_container_with_content_navigable(const_cast<Navigable&>(*this));
 }
 
+// https://html.spec.whatwg.org/multipage/document-sequences.html#nav-container-document
+JS::GCPtr<DOM::Document> 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<TraversableNavigable> Navigable::traversable_navigable() const
 {

+ 1 - 0
Userland/Libraries/LibWeb/HTML/Navigable.h

@@ -60,6 +60,7 @@ public:
     String target_name() const;
 
     JS::GCPtr<NavigableContainer> container() const;
+    JS::GCPtr<DOM::Document> container_document() const;
 
     JS::GCPtr<TraversableNavigable> traversable_navigable() const;
     JS::GCPtr<TraversableNavigable> top_level_traversable();