Every node and flow tree element (Flows and Fragments) have a bitflag
which tracks the type of damage caused by restyling and DOM
manipulation. This flag is used during incremental layout to only repair
parts of the tree that actually need it. There is a class of bugs where
damage is applied too liberally. This doesn't break layout, but it means
that too much work is done during reflow. These type of bugs become even
more important when display lists can be repaired without doing reflows.

I would like to have a way to test against these kind of regressions,
but I'm a bit stumped on what sort of testing infrastructure to use.
Here are some ideas that I had:

1. Paint "dirty" regions of the page. We could create special reftests
that verify that only certain parts of the page are reflowed or repaired.

2. Textual dumps of the flow tree. It would be tricky to make this
resilient enough not to break all the time.

3. Simple assertions about what nodes are dirty and what aren't. This
could break when the internal structure of the flow tree changes.

I'm certainly open to completely different ideas, because I have a lot
of reluctance about the three ideas that I mentioned. They all have some
significant drawbacks.

--Martin
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to