1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 06:58:11 +00:00

LibWeb: Let HTML::EventLoop keep track of live DOM::Document objects

This will be used by the event loop processing model.
This commit is contained in:
Andreas Kling 2021-10-03 16:07:21 +02:00
parent 6f0d7245d7
commit ae71e5f99b
3 changed files with 36 additions and 0 deletions

View file

@ -7,6 +7,7 @@
#pragma once
#include <AK/Function.h>
#include <AK/WeakPtr.h>
#include <LibCore/Forward.h>
#include <LibJS/Forward.h>
#include <LibWeb/HTML/EventLoop/TaskQueue.h>
@ -49,6 +50,11 @@ public:
void perform_a_microtask_checkpoint();
void register_document(Badge<DOM::Document>, DOM::Document&);
void unregister_document(Badge<DOM::Document>, DOM::Document&);
NonnullRefPtrVector<DOM::Document> documents_in_this_event_loop() const;
private:
Type m_type { Type::Window };
@ -64,6 +70,8 @@ private:
// https://html.spec.whatwg.org/#performing-a-microtask-checkpoint
bool m_performing_a_microtask_checkpoint { false };
Vector<WeakPtr<DOM::Document>> m_documents;
};
EventLoop& main_thread_event_loop();