[LayoutNG] Disable first-tier OOF-cache when borders/scrollbars are present.
The first-tier OOF-cache attempts to skip all the OOF sizing and positioning work required, as the other cache simply compares the constraint spaces which can be (relatively) expensive to determine. This first-tier cache works by comparing the available-size given to the OOF-positioned descendant. If equal we can skip the OOF-positioned sizing and positioning steps. This mostly worked, however had an issue where the containing-block may have added/removed a borders/scrollbars, but the available-size given remained the same. This resulted in an incorrectly positioned OOF-positioned node. This fix disallows the first-tier cache when borders/scrollbars are present. This is sufficiently rare that this cache still has a relatively high hit-rate and is still relative cheap to calculate. Bug: 1013866 Change-Id: I71d41d2c4b47bcff6412f395db2deabf2f6f3a8f Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1891768 Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org> Reviewed-by:Aleks Totic <atotic@chromium.org> Reviewed-by:
Morten Stenshorne <mstensho@chromium.org> Cr-Commit-Position: refs/heads/master@{#714394}
Showing
Please register or sign in to comment