mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-26 19:29:16 +00:00
If invoking a NodeFilter ends up deleting a node from the DOM, it's not enough to only adjust the NodeIterator reference nodes in the pre-removing steps. We must also adjust the current traversal pointer. This is not in the spec, but it's how other engines behave, so let's do the same. I've encapsulated the Node + before-or-after-flag in a struct called NodePointer so that we can use the same pre-removing steps for both the traversal pointer and for the NodeIterator's reference node. Note that when invoking the NodeFilter, we have to remember the node we passed to the filter function, so that we can return it if accepted by the filter. This gets us another point on Acid3. :^)
8.4 KiB
8.4 KiB