LibWeb: Add NestedHistory in DocumentState

This commit is contained in:
Aliaksandr Kalenik 2023-04-05 09:08:10 +03:00 committed by Andreas Kling
parent a0356a0302
commit 51d64bdaec
Notes: sideshowbarker 2024-07-16 23:59:28 +09:00
2 changed files with 15 additions and 1 deletions

View File

@ -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);
}
}
}
}

View File

@ -21,6 +21,11 @@ class DocumentState final : public JS::Cell {
JS_CELL(DocumentState, JS::Cell);
public:
struct NestedHistory {
String id;
Vector<JS::NonnullGCPtr<SessionHistoryEntry>> entries;
};
virtual ~DocumentState();
enum class Client {
@ -49,6 +54,9 @@ public:
[[nodiscard]] Optional<HTML::Origin> origin() const { return m_origin; }
void set_origin(Optional<HTML::Origin> origin) { m_origin = move(origin); }
[[nodiscard]] Vector<NestedHistory> const& nested_histories() const { return m_nested_histories; }
[[nodiscard]] Vector<NestedHistory>& 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<HTML::Origin> 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<NestedHistory> m_nested_histories;
// FIXME: https://html.spec.whatwg.org/multipage/browsing-the-web.html#document-state-resource