Propagate NS_FRAME_CONTAINS_RELATIVE_BSIZE from inner scrolled frame to outer scroll frame.

Differential Revision: https://phabricator.services.mozilla.com/D130813

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1739048
gecko-commit: 0bff7509335898a6811084aef05a468fb6c2df11
gecko-reviewers: dholbert
diff --git a/css/css-flexbox/percentage-heights-019.html b/css/css-flexbox/percentage-heights-019.html
new file mode 100644
index 0000000..4cc714c
--- /dev/null
+++ b/css/css-flexbox/percentage-heights-019.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+  <meta charset="utf-8">
+  <title>CSS Flexbox Test: Test the percentage resolution of a child in a flex item that has an indefinite main size</title>
+  <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+  <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+  <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#definite-sizes">
+  <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1739048">
+  <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+  <meta name="assert" content="Per 9.8.4, once the outer flex container's cross size has been determined, the inner flex container's main size is considered definite. Then per 9.8.1, the item's post-flexing main size is also treated as definite. Therefore, in the final layout, the child's percentage block-size should be treated as resolvable and should be honored.">
+
+  <style>
+  .outer {
+    display: flex;
+  }
+
+  .inner {
+    display: flex;
+    flex-direction: column;
+    inline-size: 100px;
+  }
+
+  .item {
+    overflow: hidden; /* This is essential to reproduce the bug. */
+    min-block-size: 100px;
+    background: red;
+  }
+
+  .child {
+    block-size: 100%;
+    background: green;
+  }
+  </style>
+
+  <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+  <div class="outer">
+    <div class="inner">
+      <div class="item">
+        <div class="child"></div>
+      </div>
+    </div>
+  </div>
+</html>