ソースを参照

LibWeb: Let HTML::EventLoop know its type

There are three types of event loop: window, worker and worklet.
For now, we only have window event loops.
Andreas Kling 3 年 前
コミット
7bcde2bcfb
1 ファイル変更13 行追加0 行削除
  1. 13 0
      Userland/Libraries/LibWeb/HTML/EventLoop/EventLoop.h

+ 13 - 0
Userland/Libraries/LibWeb/HTML/EventLoop/EventLoop.h

@@ -13,9 +13,20 @@ namespace Web::HTML {
 
 
 class EventLoop {
 class EventLoop {
 public:
 public:
+    enum class Type {
+        // https://html.spec.whatwg.org/multipage/webappapis.html#window-event-loop
+        Window,
+        // https://html.spec.whatwg.org/multipage/webappapis.html#worker-event-loop
+        Worker,
+        // https://html.spec.whatwg.org/multipage/webappapis.html#worklet-event-loop
+        Worklet,
+    };
+
     EventLoop();
     EventLoop();
     ~EventLoop();
     ~EventLoop();
 
 
+    Type type() const { return m_type; }
+
     TaskQueue& task_queue() { return m_task_queue; }
     TaskQueue& task_queue() { return m_task_queue; }
     TaskQueue const& task_queue() const { return m_task_queue; }
     TaskQueue const& task_queue() const { return m_task_queue; }
 
 
@@ -25,6 +36,8 @@ public:
     Task const* currently_running_task() const { return m_currently_running_task; }
     Task const* currently_running_task() const { return m_currently_running_task; }
 
 
 private:
 private:
+    Type m_type { Type::Window };
+
     TaskQueue m_task_queue;
     TaskQueue m_task_queue;
 
 
     // https://html.spec.whatwg.org/multipage/webappapis.html#currently-running-task
     // https://html.spec.whatwg.org/multipage/webappapis.html#currently-running-task