• Ian Kilpatrick's avatar
    [LayoutNG] Handle 'auto' for new formatting contexts within a BFC. · 66ac041a
    Ian Kilpatrick authored
    This implements our current behaviour for 'auto' sized FCs within a BFC.
    
    We need to perform layout twice under two scenarios:
     1. 'auto' inline size child. In this case we need to perform layout
        once, and if the child doesn't fit, we perform layout a second time
        with an "open" layout opportunity, so we can guarantee it will fit.
    
     2. Non-adjoining margin strut and unpositioned floats/current layout.
        In this case we need to perform a relayout as the BFCOffset where
        floats will be positioned will change. This happens if the child
        doesn't fit on the "top" of the exclusion space.
    
    This also adds more TODOs everywhere which we can handle later.
    I kept this as small as possible to keep sanity. :)
    
    Bug: 635619
    Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
    Change-Id: I499dc9722fac47f43694f35c507e9d2742d317db
    Reviewed-on: https://chromium-review.googlesource.com/680176
    Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
    Reviewed-by: default avatarEmil A Eklund <eae@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#506963}
    66ac041a
enable-blink-features=LayoutNG 655 KB