diff --git a/Userland/Libraries/LibWeb/HTML/DocumentState.cpp b/Userland/Libraries/LibWeb/HTML/DocumentState.cpp index 760ce35c05f..0bc1c586f4d 100644 --- a/Userland/Libraries/LibWeb/HTML/DocumentState.cpp +++ b/Userland/Libraries/LibWeb/HTML/DocumentState.cpp @@ -18,6 +18,11 @@ void DocumentState::visit_edges(Cell::Visitor& visitor) { Base::visit_edges(visitor); visitor.visit(m_document); + for (auto& nested_history : m_nested_histories) { + for (auto& entry : nested_history.entries) { + visitor.visit(entry); + } + } } } diff --git a/Userland/Libraries/LibWeb/HTML/DocumentState.h b/Userland/Libraries/LibWeb/HTML/DocumentState.h index bff05961bfe..ceda3244dd0 100644 --- a/Userland/Libraries/LibWeb/HTML/DocumentState.h +++ b/Userland/Libraries/LibWeb/HTML/DocumentState.h @@ -21,6 +21,11 @@ class DocumentState final : public JS::Cell { JS_CELL(DocumentState, JS::Cell); public: + struct NestedHistory { + String id; + Vector> entries; + }; + virtual ~DocumentState(); enum class Client { @@ -49,6 +54,9 @@ public: [[nodiscard]] Optional origin() const { return m_origin; } void set_origin(Optional origin) { m_origin = move(origin); } + [[nodiscard]] Vector const& nested_histories() const { return m_nested_histories; } + [[nodiscard]] Vector& nested_histories() { return m_nested_histories; } + [[nodiscard]] bool reload_pending() const { return m_reload_pending; } void set_reload_pending(bool reload_pending) { m_reload_pending = reload_pending; } @@ -81,7 +89,8 @@ private: // https://html.spec.whatwg.org/multipage/browsing-the-web.html#document-state-origin Optional m_origin; - // FIXME: https://html.spec.whatwg.org/multipage/browsing-the-web.html#document-state-nested-histories + // https://html.spec.whatwg.org/multipage/browsing-the-web.html#document-state-nested-histories + Vector m_nested_histories; // FIXME: https://html.spec.whatwg.org/multipage/browsing-the-web.html#document-state-resource