diff --git a/Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp b/Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp index 2e68a8b447..24dcacbfd1 100644 --- a/Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp +++ b/Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp @@ -541,4 +541,15 @@ BrowsingContext* BrowsingContext::choose_a_browsing_context(StringView name, boo return chosen; } +// https://html.spec.whatwg.org/multipage/dom.html#still-on-its-initial-about:blank-document +bool BrowsingContext::still_on_its_initial_about_blank_document() const +{ + // A browsing context browsingContext is still on its initial about:blank Document + // if browsingContext's session history's size is 1 + // and browsingContext's session history[0]'s document's is initial about:blank is true. + return m_session_history.size() == 1 + && m_session_history[0].document + && m_session_history[0].document->is_initial_about_blank(); +} + } diff --git a/Userland/Libraries/LibWeb/HTML/BrowsingContext.h b/Userland/Libraries/LibWeb/HTML/BrowsingContext.h index 7ae35ee318..f519cf4948 100644 --- a/Userland/Libraries/LibWeb/HTML/BrowsingContext.h +++ b/Userland/Libraries/LibWeb/HTML/BrowsingContext.h @@ -116,6 +116,9 @@ public: Vector& session_history() { return m_session_history; } Vector const& session_history() const { return m_session_history; } + // https://html.spec.whatwg.org/multipage/dom.html#still-on-its-initial-about:blank-document + bool still_on_its_initial_about_blank_document() const; + private: explicit BrowsingContext(Page&, HTML::BrowsingContextContainer*);