mirror of
https://github.com/servo/servo
synced 2026-05-14 19:06:31 +02:00
In general, for a normal `BoxFragment`, a `ExternalScrollId` is created by directly using the `OpaqueNode::id` which is the heap address of the `Node`. But for a `BoxFragment` from a `::before` or `::after` pseudo element, we are using the next unused id (starting from zero) with an increment of two. This patch modifies so that we are using the bitwise or of `OpaqueNode::id` and `FragmentType` as the `ExternalScrollId`. With these changes, the `ExternalScrollId` for the pseudo elements would remain the same after reflow (instead of getting a new scroll id). Testing: New WPT test Fixes: #43308 --------- Signed-off-by: Jo Steven Novaryo <steven.novaryo@gmail.com>