• layout_2020: Paint hoisted positioned fragments in tree order

    Instead of painting hoisted position fragments in the order to which
    they are hoisted, paint them in tree order and properly incorporate them
    into the stacking context.
    
    We do this by creating a placeholder fragment in the original tree position
    of hoisted fragments. The ghost fragment contains an atomic id which
    links back to the hoisted fragment in the containing block.
    
    While building the stacking context, we keep track of containing blocks
    and their children. When encountering a placeholder fragment we look at
    the containing block's hoisted children in order to properly paint the
    hoisted fragment.
    
    One notable design modification in this change is that hoisted fragments
    no longer need an AnonymousFragment as their parent. Instead they are
    now direct children of the fragment that establishes their containing block.
    mrobinson committed Mar 11, 2020