LibWeb: Use finalize for cleaning up all navigables

The use of this HashMap looks very spooky, but let's at least use
finalize when cleaning them up on destruction to make things slightly
less dangerous looking.
This commit is contained in:
Shannon Booth 2025-01-17 14:18:36 +13:00 committed by Andreas Kling
parent 59162c8155
commit 76397c9ecd
Notes: github-actions[bot] 2025-01-17 09:11:51 +00:00
7 changed files with 17 additions and 13 deletions

View file

@ -192,6 +192,7 @@ protected:
explicit Navigable(GC::Ref<Page>);
virtual void visit_edges(Cell::Visitor&) override;
virtual void finalize() override;
// https://html.spec.whatwg.org/multipage/browsing-the-web.html#ongoing-navigation
Variant<Empty, Traversal, String> m_ongoing_navigation;
@ -236,7 +237,7 @@ private:
Web::EventHandler m_event_handler;
};
HashTable<Navigable*>& all_navigables();
HashTable<GC::RawRef<Navigable>>& all_navigables();
bool navigation_must_be_a_replace(URL::URL const& url, DOM::Document const& document);
void finalize_a_cross_document_navigation(GC::Ref<Navigable>, HistoryHandlingBehavior, UserNavigationInvolvement, GC::Ref<SessionHistoryEntry>);