[LayoutNG] Introduce NGFragmentGeometry. This introduces NGFragmentGeometry, which holds the pre-layout values of: - The border-box-size (the block-size may be indefinite at this stage). - The border, scrollbar, padding. This is generated before entering into the layout algorithm. A followup patch will use this data to determine if the size of a fragment *will* change, given a new constraint space. (At the moment our caching logic sometimes misses, even though the resulting size will be the same). There are some slight behaviour changes, e.g. NG-flexbox will now clamp the size of the scrollbars, similar to flow layout, etc. (The clamping of scrollbars occurs when the size of the fragment is smaller than the border_padding sum, and the scrollbar occupies the left-over space). Bug: 635619, 667370 Change-Id: I7fe0f6eb53ca1878075c47e772fd22978c231bff Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1530121 Reviewed-by: Morten Stenshorne <mstensho@chromium.org> Reviewed-by: Christian Biesinger <cbiesinger@chromium.org> Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org> Cr-Commit-Position: refs/heads/master@{#654582}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .