Unify CreatesNewFormattingContext() and AvoidsFloats().

Remove AvoidsFloats() and have CreatesNewFormattingContext() behave
like AvoidsFloats() used to.

The difference between the two seemed subtle, wrong and useless.
IMG fallback (a block-flow) would previously not establish a formatting
context, just avoid floats. IMG fallback is implemented as a floated
"broken image" IMG child, with the ALT text next to it.

Two tests need to be changed/rebaselined. Both were about IMG fallback.
One expected the "broken image" container to not stretch its height to
encompass the child "broken image" image, while the other test expected
margins before and after an IMG to collapse, if the IMG was missing
(which it no longer won't, since it now establishes a formatting
context, and margins cannot collapse through those).

See https://chromium-review.googlesource.com/c/chromium/src/+/875511/
for some interesting discussion. This CL sort-of re-adds some behavior
that was essentially reverted by that CL (although that CL was about
establishing formatting contexts based on having 'appearance', but
that's something all form controls have, as far as I know).

This CL will make all form controls establish new formatting contexts.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng;luci.chromium.try:linux_layout_tests_composite_after_paint
Change-Id: I612cc1528de4c399a01a5fd94d6a37f8d5444900
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1507713
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#638930}
14 files changed