mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 15:57:45 +00:00
LibWeb: Support unique task sources
Some elements, like HTMLMediaElement, must have a unique task sources for every instance of that element that is created. Support this with a simple wrapper around IDAllocator.
This commit is contained in:
parent
4d9c14ca67
commit
807891c0df
2 changed files with 26 additions and 0 deletions
|
@ -15,6 +15,8 @@
|
|||
|
||||
namespace Web::HTML {
|
||||
|
||||
struct UniqueTaskSource;
|
||||
|
||||
class Task {
|
||||
public:
|
||||
// https://html.spec.whatwg.org/multipage/webappapis.html#generic-task-sources
|
||||
|
@ -29,6 +31,10 @@ public:
|
|||
Microtask,
|
||||
TimerTask,
|
||||
JavaScriptEngine,
|
||||
|
||||
// Some elements, such as the HTMLMediaElement, must have a unique task source per instance.
|
||||
// Keep this field last, to serve as the base value of all unique task sources.
|
||||
UniqueTaskSourceStart,
|
||||
};
|
||||
|
||||
static NonnullOwnPtr<Task> create(Source source, DOM::Document const* document, JS::SafeFunction<void()> steps)
|
||||
|
@ -52,4 +58,11 @@ private:
|
|||
JS::Handle<DOM::Document const> m_document;
|
||||
};
|
||||
|
||||
struct UniqueTaskSource {
|
||||
UniqueTaskSource();
|
||||
~UniqueTaskSource();
|
||||
|
||||
Task::Source const source;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue