[RLS] Avoid full tree rebuilds on hit testing clip changes
This is a revert of [1] which caused performance regressions. This patch reimplements a solution that avoids full tree rebuilds when only hit testing clip values change in the clip tree. Typically, when property nodes are updated, we force a full tree rebuild if nodes are created or destroyed, but not if node values are simply updated. Clip nodes are an exception to this because changing their values ends up causing a full tree rebuild. The hit testing clip rect (aka clip_rect_excluding_overlay_scrollbars) is different though, and does not need to force a full tree rebuild when it changes. This patch special-cases the hit testing clip rects to avoid a full tree rebuild. When overlay scrollbars hide or appear, the hit testing clip values change but a full tree rebuild is not needed. [1] https://crrev.com/86d1cc1b33260b95367afdedb6195c842dc8e5c0 Bug: 823999, 830746, 830771 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: I7ab426aaead0c87a1aedf0980648505d82d40215 Reviewed-on: https://chromium-review.googlesource.com/1026941Reviewed-by:Chris Harrelson <chrishtr@chromium.org> Commit-Queue: Philip Rogers <pdr@chromium.org> Cr-Commit-Position: refs/heads/master@{#553652}
Showing
Please register or sign in to comment