Return border box-sizing values from GetIntrinsicCoord

Fixes a bug where border box-sizing was not used. This affected
min-/max-content and fit-content values for min-/max-width.

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

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1764171
gecko-commit: 0acbd17e1570e94c6e7fa34b840d0a4186e719b4
gecko-reviewers: emilio
diff --git a/css/css-grid/child-border-box-and-max-content-001-ref.html b/css/css-grid/child-border-box-and-max-content-001-ref.html
new file mode 100644
index 0000000..df8393a
--- /dev/null
+++ b/css/css-grid/child-border-box-and-max-content-001-ref.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
+<title>grid item with border-box and max-content should include borders</title>
+<style>
+    .grid {
+        display: grid;
+        grid-auto-columns: 1fr;
+        grid-auto-flow: column;
+        border: 1px solid red;
+        width: max-content;
+    }
+    .item {
+        width: 50px;
+        background-color: blue;
+        padding: 10px 20px;
+    }
+    .content {
+        width: 50px;
+        height: 50px;
+        background-color: green;
+    }
+</style>
+<div class="grid">
+    <div class="item">
+        <div class="content"></div>
+    </div>
+    <div class="item">
+        <div class="content"></div>
+    </div>
+</div>
diff --git a/css/css-grid/child-border-box-and-max-content-001.html b/css/css-grid/child-border-box-and-max-content-001.html
new file mode 100644
index 0000000..8d3cda8
--- /dev/null
+++ b/css/css-grid/child-border-box-and-max-content-001.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
+<title>grid item with border-box and max-content should include borders</title>
+<link rel="help" href="https://drafts.csswg.org/css-sizing-3">
+<link rel="match" href="child-border-box-and-max-content-001-ref.html">
+<style>
+    .grid {
+        display: grid;
+        grid-auto-columns: 1fr;
+        grid-auto-flow: column;
+        border: 1px solid red;
+        width: max-content;
+    }
+    .item {
+        max-width: max-content;
+        box-sizing: border-box;
+
+        padding: 10px 20px;
+        background-color: blue;
+    }
+    .content {
+        width: 50px;
+        height: 50px;
+        background-color: green;
+    }
+</style>
+<div class="grid">
+    <div class="item">
+        <div class="content"></div>
+    </div>
+    <div class="item">
+        <div class="content"></div>
+    </div>
+</div>
diff --git a/css/css-grid/child-border-box-and-max-content-002-ref.html b/css/css-grid/child-border-box-and-max-content-002-ref.html
new file mode 100644
index 0000000..df8393a
--- /dev/null
+++ b/css/css-grid/child-border-box-and-max-content-002-ref.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
+<title>grid item with border-box and max-content should include borders</title>
+<style>
+    .grid {
+        display: grid;
+        grid-auto-columns: 1fr;
+        grid-auto-flow: column;
+        border: 1px solid red;
+        width: max-content;
+    }
+    .item {
+        width: 50px;
+        background-color: blue;
+        padding: 10px 20px;
+    }
+    .content {
+        width: 50px;
+        height: 50px;
+        background-color: green;
+    }
+</style>
+<div class="grid">
+    <div class="item">
+        <div class="content"></div>
+    </div>
+    <div class="item">
+        <div class="content"></div>
+    </div>
+</div>
diff --git a/css/css-grid/child-border-box-and-max-content-002.html b/css/css-grid/child-border-box-and-max-content-002.html
new file mode 100644
index 0000000..fe3e6db
--- /dev/null
+++ b/css/css-grid/child-border-box-and-max-content-002.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
+<title>grid item with border-box and max-content should include borders</title>
+<link rel="help" href="https://drafts.csswg.org/css-sizing-3">
+<link rel="match" href="child-border-box-and-max-content-002-ref.html">
+<style>
+    .grid {
+        display: grid;
+        grid-template-columns: fit-content(30px) fit-content(80px);
+        border: 1px solid red;
+        width: max-content;
+    }
+    .item {
+        max-width: max-content;
+        box-sizing: border-box;
+
+        padding: 10px 20px;
+        background-color: blue;
+    }
+    .content {
+        width: 50px;
+        height: 50px;
+        background-color: green;
+    }
+</style>
+<div class="grid">
+    <div class="item">
+        <div class="content"></div>
+    </div>
+    <div class="item">
+        <div class="content"></div>
+    </div>
+</div>
diff --git a/css/css-sizing/border-box-and-max-content-001-ref.html b/css/css-sizing/border-box-and-max-content-001-ref.html
new file mode 100644
index 0000000..73947be
--- /dev/null
+++ b/css/css-sizing/border-box-and-max-content-001-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
+<title>border-box and max-content should include borders</title>
+<style>
+    .wrapper {
+        border: 1px solid red;
+        width: 90px;
+    }
+    .item {
+        width: 50px;
+        background-color: blue;
+        padding: 10px 20px;
+    }
+    .content {
+        width: 50px;
+        height: 50px;
+        background-color: green;
+    }
+</style>
+<div class="wrapper"><div class="item"><div class="content"></div></div></div>
diff --git a/css/css-sizing/border-box-and-max-content-001.html b/css/css-sizing/border-box-and-max-content-001.html
new file mode 100644
index 0000000..85c35e0
--- /dev/null
+++ b/css/css-sizing/border-box-and-max-content-001.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
+<title>border-box and max-content should include borders</title>
+<link rel="help" href="https://drafts.csswg.org/css-sizing-3">
+<link rel="match" href="border-box-and-max-content-001-ref.html">
+<style>
+    .wrapper {
+        border: 1px solid red;
+        width: max-content;
+    }
+    .item {
+        max-width: max-content;
+        box-sizing: border-box;
+
+        padding: 10px 20px;
+        background-color: blue;
+    }
+    .content {
+        width: 50px;
+        height: 50px;
+        background-color: green;
+    }
+</style>
+<div class="wrapper">
+    <div class="item">
+        <div class="content"></div>
+    </div>
+</div>
diff --git a/css/css-sizing/border-box-and-max-content-002-ref.html b/css/css-sizing/border-box-and-max-content-002-ref.html
new file mode 100644
index 0000000..6627a55
--- /dev/null
+++ b/css/css-sizing/border-box-and-max-content-002-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
+<title>border-box and max-content with aspect ratio should include borders</title>
+<style>
+    .wrapper {
+        border: 1px solid red;
+        width: 500px;
+    }
+    .item {
+        width: 500px;
+        height: 500px;
+        background-color: blue;
+    }
+</style>
+<div class="wrapper"><div class="item"></div></div>
diff --git a/css/css-sizing/border-box-and-max-content-002.html b/css/css-sizing/border-box-and-max-content-002.html
new file mode 100644
index 0000000..e6e47cd
--- /dev/null
+++ b/css/css-sizing/border-box-and-max-content-002.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
+<title>border-box and max-content with aspect ratio should include borders</title>
+<link rel="help" href="https://drafts.csswg.org/css-sizing-3">
+<link rel="match" href="border-box-and-max-content-002-ref.html">
+<style>
+    .wrapper {
+        border: 1px solid red;
+        width: max-content;
+    }
+    .item {
+        max-width: max-content;
+        height: 500px;
+        aspect-ratio: 1;
+        padding: 10px 20px;
+        box-sizing: border-box;
+        background-color: blue;
+    }
+</style>
+<div class="wrapper">
+    <div class="item"></div>
+</div>
diff --git a/css/css-sizing/border-box-and-max-content-003-ref.html b/css/css-sizing/border-box-and-max-content-003-ref.html
new file mode 100644
index 0000000..c4ecda0
--- /dev/null
+++ b/css/css-sizing/border-box-and-max-content-003-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
+<title>border-box and fit-content should include borders</title>
+<style>
+    .wrapper {
+        border: 1px solid red;
+        width: 540px;
+    }
+    .item {
+        background-color: blue;
+        padding: 10px 20px;
+    }
+    .content {
+        width: 500px;
+        height: 50px;
+        background-color: green;
+    }
+</style>
+<div class="wrapper"><div class="item"><div class="content"></div></div></div>
diff --git a/css/css-sizing/border-box-and-max-content-003.html b/css/css-sizing/border-box-and-max-content-003.html
new file mode 100644
index 0000000..3a6f179
--- /dev/null
+++ b/css/css-sizing/border-box-and-max-content-003.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
+<title>border-box and fit-content should include borders</title>
+<link rel="help" href="https://drafts.csswg.org/css-sizing-3">
+<link rel="match" href="border-box-and-max-content-003-ref.html">
+<style>
+    .wrapper {
+        border: 1px solid red;
+        width: max-content;
+    }
+    .item {
+        max-width: fit-content(500px);
+        padding: 10px 20px;
+        box-sizing: border-box;
+        background-color: blue;
+    }
+    .content {
+        width: 500px;
+        height: 50px;
+        background-color: green;
+    }
+</style>
+<div class="wrapper"><div class="item"><div class="content"></div></div></div>