diff --git a/Userland/Libraries/LibWeb/HTML/EventLoop/Task.cpp b/Userland/Libraries/LibWeb/HTML/EventLoop/Task.cpp index a913fcb815..ab282941ae 100644 --- a/Userland/Libraries/LibWeb/HTML/EventLoop/Task.cpp +++ b/Userland/Libraries/LibWeb/HTML/EventLoop/Task.cpp @@ -9,8 +9,9 @@ namespace Web::HTML { -Task::Task(DOM::Document* document, Function steps) - : m_steps(move(steps)) +Task::Task(Source source, DOM::Document* document, Function steps) + : m_source(source) + , m_steps(move(steps)) , m_document(document) { } diff --git a/Userland/Libraries/LibWeb/HTML/EventLoop/Task.h b/Userland/Libraries/LibWeb/HTML/EventLoop/Task.h index d84ec08db6..6e56d5c565 100644 --- a/Userland/Libraries/LibWeb/HTML/EventLoop/Task.h +++ b/Userland/Libraries/LibWeb/HTML/EventLoop/Task.h @@ -15,20 +15,31 @@ namespace Web::HTML { class Task { public: - static NonnullOwnPtr create(DOM::Document* document, Function steps) + // https://html.spec.whatwg.org/multipage/webappapis.html#generic-task-sources + enum class Source { + Unspecified, + DOMManipulation, + UserInteraction, + Networking, + HistoryTraversal, + }; + + static NonnullOwnPtr create(Source source, DOM::Document* document, Function steps) { - return adopt_own(*new Task(document, move(steps))); + return adopt_own(*new Task(source, document, move(steps))); } ~Task(); + Source source() const { return m_source; } void execute(); DOM::Document* document() { return m_document; } DOM::Document const* document() const { return m_document; } private: - Task(DOM::Document*, Function steps); + Task(Source, DOM::Document*, Function steps); + Source m_source { Source::Unspecified }; Function m_steps; RefPtr m_document; };