Keep on updating early-breaks after having inserted actual breaks.

We may be inside a parallel flow, and there may be parent flows that
have break avoidance requests. The best breakpoint may be right before
the child that we broke inside (if the break already inserted is in a
parallel flow, in which case it will typically be discarded if we're
going to break before its container).

Bug: 1381118
Change-Id: I07cf04caaf787f746e88233deda44b9c7f583a40
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4002109
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Alison Maher <almaher@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1067715}
diff --git a/css/css-break/break-between-avoid-013.html b/css/css-break/break-between-avoid-013.html
new file mode 100644
index 0000000..236b99e
--- /dev/null
+++ b/css/css-break/break-between-avoid-013.html
@@ -0,0 +1,20 @@
+<!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/#break-propagation">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1381118">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div style="width:100px; height:100px; background:red;">
+  <div style="columns:2; gap:0; column-fill:auto; height:150px;">
+    <div style="height:50px; background:green;"></div>
+    <div style="height:50px; background:green;"></div>
+    <div style="height:10px;">
+      <div style="height:20px; contain:size; background:green;"></div>
+      <div style="height:40px; contain:size; background:green;"></div>
+    </div>
+    <div style="break-before:avoid; break-inside:avoid; height:90px;">
+      <div style="height:50px;"></div>
+      <div style="height:40px; background:green;"></div>
+    </div>
+  </div>
+</div>
diff --git a/css/css-break/break-between-avoid-014.html b/css/css-break/break-between-avoid-014.html
new file mode 100644
index 0000000..91da764
--- /dev/null
+++ b/css/css-break/break-between-avoid-014.html
@@ -0,0 +1,20 @@
+<!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/#break-propagation">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1381118">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div style="width:100px; height:100px; background:red;">
+  <div style="columns:2; gap:0; column-fill:auto; height:150px;">
+    <div style="height:100px; background:green;"></div>
+    <div style="height:20px; background:green;"></div>
+    <div style="break-before:avoid; height:10px;">
+      <div style="height:20px; contain:size; background:green;"></div>
+      <div style="height:20px; contain:size; background:green;"></div>
+    </div>
+    <div style="break-before:avoid; break-inside:avoid; height:90px;">
+      <div style="height:30px;"></div>
+      <div style="height:40px; background:green;"></div>
+    </div>
+  </div>
+</div>
diff --git a/css/css-break/flexbox/multi-line-column-flex-fragmentation-052.html b/css/css-break/flexbox/multi-line-column-flex-fragmentation-052.html
new file mode 100644
index 0000000..9496418
--- /dev/null
+++ b/css/css-break/flexbox/multi-line-column-flex-fragmentation-052.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1381118">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div style="width:100px; height:100px; background:red;">
+  <div style="columns:2; column-fill:auto; gap:0; height:150px;">
+    <div style="display:flex; flex-direction:column; flex-wrap:wrap; height:250px;">
+      <div style="width:50px; height:75px; background:green;"></div>
+      <div style="width:50px; height:25px; background:green;"></div>
+      <div style="width:50px; height:25px; background:green;">
+        <div style="height:100px;"></div>
+      </div>
+      <div style="break-before:avoid; break-inside:avoid; height:55px; background:green;"></div>
+      <div style="width:50px; height:20px; background:green;"></div>
+      <div style="height:200px;"></div>
+    </div>
+  </div>
+</div>
diff --git a/css/css-break/flexbox/multi-line-column-flex-fragmentation-053.html b/css/css-break/flexbox/multi-line-column-flex-fragmentation-053.html
new file mode 100644
index 0000000..aa1f1de
--- /dev/null
+++ b/css/css-break/flexbox/multi-line-column-flex-fragmentation-053.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1381118">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div style="width:100px; height:100px; background:red;">
+  <div style="columns:2; column-fill:auto; gap:0; height:150px;">
+    <div style="display:flex; flex-direction:column; flex-wrap:wrap; height:250px;">
+      <div style="width:50px; height:100px; background:green;"></div>
+      <div style="width:50px; height:25px; background:green;"></div>
+      <div style="break-before:avoid; height:25px;">
+        <div style="height:75px; background:green;"></div>
+      </div>
+      <div style="break-before:avoid; break-inside:avoid; height:55px;"></div>
+      <div style="height:200px;"></div>
+    </div>
+  </div>
+</div>