missing hooks for dom standard compat
- Dominant language
- Rust
- Stars
- 4.1k
- Forks
- 203
- Avg merge
- 8h 58m
- Merged PRs (30d)
- 112
Description
Here is a list of hooks that are currently missing from blitz-dom and that would help an embedder of it implement the dom standard:
Various hooks which allow the embedding window agent queue microtasks:
- https://dom.spec.whatwg.org/#queue-a-tree-mutation-record
- https://dom.spec.whatwg.org/#queue-a-mutation-observer-compound-microtask
- https://dom.spec.whatwg.org/#signal-a-slot-change (this is only useful is shadow dom itself is implemented)
Various extensions in the mutation algos that allow other web standards to define handlers.
- https://dom.spec.whatwg.org/#concept-node-insert-ext
- https://dom.spec.whatwg.org/#concept-node-post-connection-ext
- https://dom.spec.whatwg.org/#concept-node-remove-ext
- https://dom.spec.whatwg.org/#concept-node-move-ext
- example use: https://html.spec.whatwg.org/multipage/infrastructure.html#dom-trees
For clarity, in blitz-dom I think all that is needed for the above are just synchronous hooks that are called into from the right places of the dom algos (so for example the dom mutator could call into the extension hooks), somewhat similar to how event handling can be handled via the EventHandler trait.
Contributor guide
Research direction
Start by locating the blitz-dom DOM mutator and the EventHandler trait, then trace the mutation algorithms named in the issue. Add synchronous extension points at the listed insertion, connection, removal, and move steps, plus hooks for the specified microtask operations; done means an embedder can receive each hook from the correct DOM algorithm location.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- frontend, web-dev
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100