LibWeb: Add m_page in TraversableNavigable

This commit is contained in:
Aliaksandr Kalenik 2023-08-22 15:42:56 +02:00 committed by Andreas Kling
parent 5a704453af
commit 343c709566
Notes: sideshowbarker 2024-07-16 20:31:50 +09:00
2 changed files with 11 additions and 3 deletions

View File

@ -16,7 +16,10 @@
namespace Web::HTML {
TraversableNavigable::TraversableNavigable() = default;
TraversableNavigable::TraversableNavigable(Page& page)
: m_page(page)
{
}
TraversableNavigable::~TraversableNavigable() = default;
@ -76,7 +79,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<TraversableNavigable>> TraversableNavigable
document_state->set_navigable_target_name(target_name);
// 5. Let traversable be a new traversable navigable.
auto traversable = vm.heap().allocate_without_realm<TraversableNavigable>();
auto traversable = vm.heap().allocate_without_realm<TraversableNavigable>(page);
// 6. Initialize the navigable traversable given documentState.
TRY_OR_THROW_OOM(vm, traversable->initialize_navigable(document_state, nullptr));

View File

@ -54,8 +54,11 @@ public:
m_session_history_traversal_queue.append(move(steps));
}
Page* page() { return m_page; }
Page const* page() const { return m_page; }
private:
TraversableNavigable();
TraversableNavigable(Page&);
virtual void visit_edges(Cell::Visitor&) override;
@ -74,6 +77,8 @@ private:
VisibilityState m_system_visibility_state { VisibilityState::Visible };
SessionHistoryTraversalQueue m_session_history_traversal_queue;
WeakPtr<Page> m_page;
};
void finalize_a_same_document_navigation(JS::NonnullGCPtr<TraversableNavigable> traversable, JS::NonnullGCPtr<Navigable> target_navigable, JS::NonnullGCPtr<SessionHistoryEntry> target_entry, JS::GCPtr<SessionHistoryEntry> entry_to_replace);