DescriptionIncrementally build main thread scrolling reasons [spv2]
This patch re-implements the scroll property's main thread scrolling
reasons so they can be built incrementally. Instead of propagating
main thread scrolling reasons up the scroll property tree, we now
calculate them when building each scroll node. With this change it is
simple to invalidate and rebuild scroll properties when the main
thread scrolling reasons change.
This patch trades performance for simplicity. FrameView already
maintains a set of LayoutObjects with background attachment fixed (a
main thread scrolling trigger). For every scroll node we iterate over
this set and check if any of the objects are descendants of the
scrolling object. In the common case, the set is empty.
This patch also cleans up ScrollPaintPropertyNode so it has a const
parent pointer like all other paint property nodes.
BUG=664672, 645667
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Committed: https://crrev.com/3797c08066b335c81847266d1f16dafc9b21e886
Cr-Commit-Position: refs/heads/master@{#433367}
Patch Set 1 #Patch Set 2 : Rebase #Patch Set 3 : Cleanup comments #
Total comments: 10
Patch Set 4 : Switch to enums for main thread scrollin reasins #Patch Set 5 : Cleanup setAllAncestorsNeedPaintPropertyUpdate #Patch Set 6 : Fix test mistake #Messages
Total messages: 36 (22 generated)
|