1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 15:38:10 +00:00

LibWeb: Make BrowsingContext GC-allocated

(And BrowsingContextGroup had to come along for the ride as well.)
This solves a number of nasty reference cycles between browsing
contexts, history items, and their documents.
This commit is contained in:
Andreas Kling 2022-10-17 11:06:50 +02:00
parent 2898701459
commit 83c5ff57d8
15 changed files with 225 additions and 44 deletions

View file

@ -30,7 +30,7 @@ struct SessionHistoryEntry {
AK::URL url;
// document, a Document or null
WeakPtr<DOM::Document> document;
JS::GCPtr<DOM::Document> document;
// serialized state, which is serialized state or null, initially null
Optional<String> serialized_state;
@ -49,7 +49,7 @@ struct SessionHistoryEntry {
// FIXME: persisted user state, which is implementation-defined, initially null
// NOTE: This is where we could remember the state of form controls, for example.
WeakPtr<BrowsingContext> original_source_browsing_context;
JS::GCPtr<BrowsingContext> original_source_browsing_context;
};
}