SubtreeVisibility: Ensure not to recompute visual overflow in locked subtrees.
We already had code to ensure that we don't recurse down into locked subtrees from within the visual overflow calculation. However, compositing navigates a different tree that can end up calling into a visual overflow recomputation on an object that is already inside a locked subtree (thus bypassing the checks in that function). This patch fixes the problem by blocking the compositing recursion on locked subtrees. This should be a performance optimization as well, so there's that. Note that I've updated the code to check for prepaint block not paint block. The difference is that prepaint can be forced. Since compositing relies on the visual overflow calculations, and compositing itself can be forced, the two need to align. Note that there is already a TODO for adding a separate compositing phase which should clear this up in the future. R=chrishtr@chromium.org Fixed: 1073452 Change-Id: I232427fef2093d30451323924bb80efe49832a72 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2163409 Commit-Queue: vmpstr <vmpstr@chromium.org> Commit-Queue: Chris Harrelson <chrishtr@chromium.org> Reviewed-by:Chris Harrelson <chrishtr@chromium.org> Cr-Commit-Position: refs/heads/master@{#762550}
Showing
Please register or sign in to comment