diff --git a/Userland/Libraries/LibWeb/DOM/Document.cpp b/Userland/Libraries/LibWeb/DOM/Document.cpp index 3ae99605a0..35b6444e34 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.cpp +++ b/Userland/Libraries/LibWeb/DOM/Document.cpp @@ -216,16 +216,19 @@ JS::NonnullGCPtr Document::create_and_initialize(Type type, String con // whose type is type, // content type is contentType, // origin is navigationParams's origin, - // FIXME: policy container is navigationParams's policy container, + // policy container is navigationParams's policy container, // FIXME: permissions policy is permissionsPolicy, - // FIXME: active sandboxing flag set is navigationParams's final sandboxing flag set, + // active sandboxing flag set is navigationParams's final sandboxing flag set, // FIXME: and cross-origin opener policy is navigationParams's cross-origin opener policy, // FIXME: load timing info is loadTimingInfo, - // FIXME: and navigation id is navigationParams's id. + // and navigation id is navigationParams's id. auto document = Document::create(*window); document->m_type = type; document->m_content_type = content_type; document->set_origin(navigation_params.origin); + document->m_policy_container = navigation_params.policy_container; + document->m_active_sandboxing_flag_set = navigation_params.final_sandboxing_flag_set; + document->m_navigation_id = navigation_params.id; document->m_window = window; window->set_associated_document(*document); @@ -1962,4 +1965,24 @@ void Document::set_domain(String const& domain) dbgln("(STUBBED) Document::set_domain(domain='{}')", domain); } +void Document::set_navigation_id(Optional navigation_id) +{ + m_navigation_id = move(navigation_id); +} + +Optional Document::navigation_id() const +{ + return m_navigation_id; +} + +HTML::SandboxingFlagSet Document::active_sandboxing_flag_set() const +{ + return m_active_sandboxing_flag_set; +} + +HTML::PolicyContainer Document::policy_container() const +{ + return m_policy_container; +} + } diff --git a/Userland/Libraries/LibWeb/DOM/Document.h b/Userland/Libraries/LibWeb/DOM/Document.h index 7b280fb2e2..8be46b9dc1 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.h +++ b/Userland/Libraries/LibWeb/DOM/Document.h @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -371,6 +372,16 @@ public: // https://html.spec.whatwg.org/#completely-loaded bool is_completely_loaded() const; + // https://html.spec.whatwg.org/multipage/dom.html#concept-document-navigation-id + Optional navigation_id() const; + void set_navigation_id(Optional); + + // https://html.spec.whatwg.org/multipage/origin.html#active-sandboxing-flag-set + HTML::SandboxingFlagSet active_sandboxing_flag_set() const; + + // https://html.spec.whatwg.org/multipage/dom.html#concept-document-policy-container + HTML::PolicyContainer policy_container() const; + protected: virtual void visit_edges(Cell::Visitor&) override; @@ -506,6 +517,15 @@ private: // https://html.spec.whatwg.org/#completely-loaded-time Optional m_completely_loaded_time; + // https://html.spec.whatwg.org/multipage/dom.html#concept-document-navigation-id + Optional m_navigation_id; + + // https://html.spec.whatwg.org/multipage/origin.html#active-sandboxing-flag-set + HTML::SandboxingFlagSet m_active_sandboxing_flag_set; + + // https://html.spec.whatwg.org/multipage/dom.html#concept-document-policy-container + HTML::PolicyContainer m_policy_container; + // https://html.spec.whatwg.org/multipage/interaction.html#visibility-state String m_visibility_state { "hidden" }; };