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>