Re-process RootScroller when LayoutObject is replaced
The RootScroller selection process sets various invalidations and cached bits on the LayoutObject of the effective and global root scrollers. These bits are later used to special case properties for the root scroller. In particular, whether we force generating and compositing a scroll node for the root scroller. However, currently, we didn't expect that the layout object might be replaced without the root scroller being demoted. This can happen when the layout tree is reattached, as happens when we enter `document.designMode`. When we get to root scroller selection, the element is unchanged so we assume there's nothing to be done, which leaves the layout object in a bad state for paint property building. The solution is simple, only skip root scroller selection if the element is unchanged *and* the layout object has the cached bit set. Bug: 1029129 Change-Id: Iff2845ea06b73349f3e980bffa6b216592cbfa4d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1941065Reviewed-by:Chris Harrelson <chrishtr@chromium.org> Commit-Queue: Chris Harrelson <chrishtr@chromium.org> Auto-Submit: David Bokan <bokan@chromium.org> Cr-Commit-Position: refs/heads/master@{#720330}
Showing
Please register or sign in to comment