Move computation of RenderLayer::isUnclippedDescendant into CompositingPropertyUpdater
Prior to this CL, we computed RenderLayer::isUnclippedDescendant in a separate O(n^2) walk of the out-of-flow RenderLayers. On workloads like famo.us, this walk is quite expensive because everything is out-of-flow positioned, and O(n^2) is large. After this CL, we compute this information as we walk down the tree in the CompositingPropertyUpdater, which means we can compute the information in linear time and we can entirely remove the separate tree walk. Moving this computation also lets us rip out a large amount of machinery that existed to prune the extra tree walk that this CL removes. Now that we compute this information with the CompositingPropertyUpdater, we compute it even when composited overflow scrolling is off. This confused some tests that used Internals to poke this state. I've added a workaround to keep theses tests working identically. I'll remove the work around and update the tests in the next CL. Review URL: https://codereview.chromium.org/309743002 git-svn-id: svn://svn.chromium.org/blink/trunk@175225 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Showing
Please register or sign in to comment