Allow fragmentainers with zero block-size.

The spec [1] says that fragmentainers are assumed to have a minimum
block-size of 1px regardless of their used size, in order to guarantee
content progress. We implemented this by simply making sure that the
used block-size of a fragmentainer would never become less than 1px. But
this wasn't ideal, as that would contribute to unwanted layout overflow
in cases where the content of the multicol container was shorter than
1px.

We'll now still accept at least 1px of content into each fragmentainer,
but don't stretch the fragmentainer itself (just allow the actual column
fragments to become that short as they want, and instead let the content
overflow the columns if necessary).

We still need to fill at least 1px of content before moving to the next
fragmentainer, and fast/multicol/zero-height-with-children.html is a
good test for this.

[1] https://www.w3.org/TR/css-break-3/#breaking-rules

Bug: 829028
Change-Id: I7b4e69524288dad8bb10fd10c715339d1769815a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2698554
Reviewed-by: Alison Maher <almaher@microsoft.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#854974}
diff --git a/css/css-break/empty-multicol-at-scrollport-edge.html b/css/css-break/empty-multicol-at-scrollport-edge.html
new file mode 100644
index 0000000..b8813ed
--- /dev/null
+++ b/css/css-break/empty-multicol-at-scrollport-edge.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
+<link rel="help" href="https://www.w3.org/TR/css-break-3/#breaking-rules">
+<meta name="assert" content="When flowing into fragmentainers, we require them to accept at least 1px of content in the block direction, in order to guarantee progress. But the block-size of the fragmentainer itself shouldn't be stretched to 1px, as that would lead to overflow contibution">
+<div id="container" style="width:100px; height:100px; overflow:auto;">
+  <div style="height:100px;"></div>
+  <div style="columns:3;"><div></div></div>
+</div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+  test(()=> {
+      assert_equals(container.scrollHeight, 100);
+  }, "empty multicol doesn't add layout overflow");
+</script>