summaryrefslogtreecommitdiffstats
path: root/layout/reftests/css-sizing
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--layout/reftests/css-sizing/min-intrinsic-with-max-width-percents-across-form-controls-ref.html95
-rw-r--r--layout/reftests/css-sizing/min-intrinsic-with-max-width-percents-across-form-controls.html95
-rw-r--r--layout/reftests/css-sizing/min-intrinsic-with-percents-across-elements-ref.html128
-rw-r--r--layout/reftests/css-sizing/min-intrinsic-with-percents-across-elements.html125
-rw-r--r--layout/reftests/css-sizing/min-intrinsic-with-percents-across-img-cases-ref.html88
-rw-r--r--layout/reftests/css-sizing/min-intrinsic-with-percents-across-img-cases.html88
-rw-r--r--layout/reftests/css-sizing/min-intrinsic-with-width-percents-across-form-controls-ref.html95
-rw-r--r--layout/reftests/css-sizing/min-intrinsic-with-width-percents-across-form-controls.html95
-rw-r--r--layout/reftests/css-sizing/reftest.list4
9 files changed, 813 insertions, 0 deletions
diff --git a/layout/reftests/css-sizing/min-intrinsic-with-max-width-percents-across-form-controls-ref.html b/layout/reftests/css-sizing/min-intrinsic-with-max-width-percents-across-form-controls-ref.html
new file mode 100644
index 0000000000..8cf3e853f1
--- /dev/null
+++ b/layout/reftests/css-sizing/min-intrinsic-with-max-width-percents-across-form-controls-ref.html
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML>
+<title>Tests for bug 823483 / bug 1247929</title>
+<style>
+
+body, input { font-size: 10px }
+input { padding: 0 1px; border: 1px solid maroon; font-family: monospace }
+
+td:first-child {
+ background: aqua;
+ border: thin solid;
+ padding: 1px 0;
+}
+
+td:nth-child(2) {
+ width: 100%;
+}
+
+td:nth-child(1) > * { visibility: hidden; vertical-align: bottom }
+
+</style>
+
+<table><tr>
+ <td><input type="text"></td>
+ <td>input type="text"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="button" value="Button"></td>
+ <td>input type="button"</td>
+</tr></table>
+
+<table><tr>
+ <td><button>Button</button></td>
+ <td>button</td>
+</tr></table>
+
+<table><tr>
+ <td><fieldset>Fieldset</fieldset></td>
+ <td>fieldset</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="file"></td>
+ <td>input type="file"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="radio"></td>
+ <td>input type="radio"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="checkbox"></td>
+ <td>input type="checkbox"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAChJREFUSMftzUEBAAAEBLCjf2dK8NsKrJLJp84zgUAgEAgEAoFAcGUBocYBP+pqhN4AAAAASUVORK5CYII=" style="width: 0"></td>
+ <td>input type="image"</td>
+</tr></table>
+
+<table><tr>
+ <td><select><option>One</option><option>Two</option></select></td>
+ <td>select</td>
+</tr></table>
+
+<table><tr>
+ <td><select size="2"><option>One</option><option>Two</option></select></td>
+ <td>select size="2"</td>
+</tr></table>
+
+<table><tr>
+ <td><meter max="10" value="5"></meter></td>
+ <td>meter</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="number"></td>
+ <td>input type="number"</td>
+</tr></table>
+
+<table><tr>
+ <td><progress></progress></td>
+ <td>progress</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="range"></td>
+ <td>input type="range"</td>
+</tr></table>
+
+<table><tr>
+ <td><textarea></textarea></td>
+ <td>textarea</td>
+</tr></table>
diff --git a/layout/reftests/css-sizing/min-intrinsic-with-max-width-percents-across-form-controls.html b/layout/reftests/css-sizing/min-intrinsic-with-max-width-percents-across-form-controls.html
new file mode 100644
index 0000000000..65fc31c6e1
--- /dev/null
+++ b/layout/reftests/css-sizing/min-intrinsic-with-max-width-percents-across-form-controls.html
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML>
+<title>Tests for bug 823483 / bug 1247929</title>
+<style>
+
+body, input { font-size: 10px }
+input { padding: 0 1px; border: 1px solid maroon; font-family: monospace }
+
+td:first-child {
+ background: aqua;
+ border: thin solid;
+ padding: 1px 0;
+}
+
+td:nth-child(2) {
+ width: 100%;
+}
+
+td:nth-child(1) > * { visibility: hidden; vertical-align: bottom; max-width: 100% }
+
+</style>
+
+<table><tr>
+ <td><input type="text"></td>
+ <td>input type="text"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="button" value="Button"></td>
+ <td>input type="button"</td>
+</tr></table>
+
+<table><tr>
+ <td><button>Button</button></td>
+ <td>button</td>
+</tr></table>
+
+<table><tr>
+ <td><fieldset>Fieldset</fieldset></td>
+ <td>fieldset</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="file"></td>
+ <td>input type="file"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="radio"></td>
+ <td>input type="radio"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="checkbox"></td>
+ <td>input type="checkbox"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAChJREFUSMftzUEBAAAEBLCjf2dK8NsKrJLJp84zgUAgEAgEAoFAcGUBocYBP+pqhN4AAAAASUVORK5CYII="></td>
+ <td>input type="image"</td>
+</tr></table>
+
+<table><tr>
+ <td><select><option>One</option><option>Two</option></select></td>
+ <td>select</td>
+</tr></table>
+
+<table><tr>
+ <td><select size="2"><option>One</option><option>Two</option></select></td>
+ <td>select size="2"</td>
+</tr></table>
+
+<table><tr>
+ <td><meter max="10" value="5"></meter></td>
+ <td>meter</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="number"></td>
+ <td>input type="number"</td>
+</tr></table>
+
+<table><tr>
+ <td><progress></progress></td>
+ <td>progress</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="range"></td>
+ <td>input type="range"</td>
+</tr></table>
+
+<table><tr>
+ <td><textarea></textarea></td>
+ <td>textarea</td>
+</tr></table>
diff --git a/layout/reftests/css-sizing/min-intrinsic-with-percents-across-elements-ref.html b/layout/reftests/css-sizing/min-intrinsic-with-percents-across-elements-ref.html
new file mode 100644
index 0000000000..fc046623e0
--- /dev/null
+++ b/layout/reftests/css-sizing/min-intrinsic-with-percents-across-elements-ref.html
@@ -0,0 +1,128 @@
+<!DOCTYPE HTML>
+<title>References for bug 823483</title>
+<style>
+
+body, input { font-size: 10px }
+body { line-height: 1.5 }
+input { padding: 0 1px; border: 1px solid maroon; font-family: monospace }
+
+td:first-child {
+ background: aqua;
+ border: thin solid;
+ padding: 1px 0;
+}
+
+td:nth-child(2) {
+ width: 100%;
+}
+
+td:nth-child(1) > * { vertical-align: bottom }
+td:nth-child(1) > div > * { vertical-align: bottom }
+
+canvas {
+ background: blue
+}
+
+</style>
+
+<table><tr>
+ <td><img></td>
+ <td>img, unstyled</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 0; height: 0"></td>
+ <td>img, width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 0; height: 0;"></td>
+ <td>img, max-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><canvas height="10" width="10"></canvas></td>
+ <td>canvas, unstyled</td>
+</tr></table>
+
+<table><tr>
+ <td><canvas style="width: 0; height: 0" height="10" width="10"></canvas></td>
+ <td>canvas, width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><canvas style="width: 0; height: 0" height="10" width="10"></canvas></td>
+ <td>canvas, max-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><iframe height="10" width="10"></iframe></td>
+ <td>iframe, almost unstyled</td>
+</tr></table>
+
+<table><tr>
+ <td><div style="width: 4px"><iframe style="vertical-align: bottom" height="10" width="2"></iframe></div></td>
+ <td>iframe, width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><div style="width: 4px"><iframe style="vertical-align: bottom" height="10" width="2"></iframe></div></td>
+ <td>iframe, max-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="text"></td>
+ <td>input type="text", unstyled</td>
+</tr></table>
+
+<table><tr>
+ <td><div style="width:4px"><input type="text" style="width: 2px"></div></td>
+ <td>input type="text", width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><div><input type="text" style="visibility: hidden"></div></td>
+ <td>input type="text", max-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="button"></td>
+ <td>empty input type="button", unstyled</td>
+</tr></table>
+
+<table><tr>
+ <!-- 2px border, 2px padding -->
+ <td><div style="width: 4px"><input type="button" style="width: 2px"></div></td>
+ <td>empty input type="button", width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <!-- 2px border, 2px padding -->
+ <td><div style="width: 4px"><input type="button" style="width: 2px"></div></td>
+ <td>empty input type="button", max-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="button" value="Button"></td>
+ <td>nonempty input type="button", unstyled</td>
+</tr></table>
+
+<table><tr>
+ <td><div><input type="button" value="Button" style="visibility: hidden"></div></td>
+ <td>nonempty input type="button", width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><div><input type="button" value="Button" style="visibility: hidden"></div></td>
+ <td>nonempty input type="button", max-width: 50%</td>
+</tr></table>
+
+<script>
+
+var images = document.getElementsByTagName("img");
+for (var i = 0; i < images.length; ++i) {
+ var image = images[i];
+ image.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAChJREFUSMftzUEBAAAEBLCjf2dK8NsKrJLJp84zgUAgEAgEAoFAcGUBocYBP+pqhN4AAAAASUVORK5CYII=";
+}
+
+</script>
diff --git a/layout/reftests/css-sizing/min-intrinsic-with-percents-across-elements.html b/layout/reftests/css-sizing/min-intrinsic-with-percents-across-elements.html
new file mode 100644
index 0000000000..b733025a19
--- /dev/null
+++ b/layout/reftests/css-sizing/min-intrinsic-with-percents-across-elements.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML>
+<title>Tests for bug 823483</title>
+<style>
+
+body, input { font-size: 10px }
+body { line-height: 1.5 }
+input { padding: 0 1px; border: 1px solid maroon; font-family: monospace }
+
+td:first-child {
+ background: aqua;
+ border: thin solid;
+ padding: 1px 0;
+}
+
+td:nth-child(2) {
+ width: 100%;
+}
+
+td:nth-child(1) > * { vertical-align: bottom }
+
+canvas {
+ background: blue
+}
+
+</style>
+
+<table><tr>
+ <td><img></td>
+ <td>img, unstyled</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 50%"></td>
+ <td>img, width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="max-width: 50%"></td>
+ <td>img, max-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><canvas height="10" width="10"></canvas></td>
+ <td>canvas, unstyled</td>
+</tr></table>
+
+<table><tr>
+ <td><canvas style="width: 50%" height="10" width="10"></canvas></td>
+ <td>canvas, width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><canvas style="max-width: 50%" height="10" width="10"></canvas></td>
+ <td>canvas, max-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><iframe height="10" width="10"></iframe></td>
+ <td>iframe, almost unstyled</td>
+</tr></table>
+
+<table><tr>
+ <td><iframe style="width: 50%" height="10" width="10"></iframe></td>
+ <td>iframe, width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><iframe style="max-width: 50%" height="10" width="10"></iframe></td>
+ <td>iframe, max-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="text"></td>
+ <td>input type="text", unstyled</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="text" style="width: 50%"></td>
+ <td>input type="text", width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="text" style="max-width: 50%; visibility: hidden"></td>
+ <td>input type="text", max-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="button"></td>
+ <td>empty input type="button", unstyled</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="button" style="width: 50%"></td>
+ <td>empty input type="button", width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="button" style="max-width: 50%"></td>
+ <td>empty input type="button", max-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="button" value="Button"></td>
+ <td>nonempty input type="button", unstyled</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="button" value="Button" style="width: 50%; visibility: hidden"></td>
+ <td>nonempty input type="button", width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="button" value="Button" style="max-width: 50%; visibility: hidden"></td>
+ <td>nonempty input type="button", max-width: 50%</td>
+</tr></table>
+
+<script>
+
+var images = document.getElementsByTagName("img");
+for (var i = 0; i < images.length; ++i) {
+ var image = images[i];
+ image.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAChJREFUSMftzUEBAAAEBLCjf2dK8NsKrJLJp84zgUAgEAgEAoFAcGUBocYBP+pqhN4AAAAASUVORK5CYII=";
+}
+
+</script>
diff --git a/layout/reftests/css-sizing/min-intrinsic-with-percents-across-img-cases-ref.html b/layout/reftests/css-sizing/min-intrinsic-with-percents-across-img-cases-ref.html
new file mode 100644
index 0000000000..efc63f344b
--- /dev/null
+++ b/layout/reftests/css-sizing/min-intrinsic-with-percents-across-img-cases-ref.html
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML>
+<title>References for bug 823483</title>
+<style>
+
+td:first-child {
+ background: aqua;
+ border: thin solid;
+ padding: 2px 0;
+}
+
+td:nth-child(2) {
+ width: 100%;
+}
+
+img { vertical-align: bottom }
+
+</style>
+
+
+<table><tr>
+ <td><img style="width: 32px; height: 32px"></td>
+ <td>unstyled</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 10px; height: 10px"></td>
+ <td>width: 10px</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 0; height: 0"></td>
+ <td>width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 32px; height: 32px"></td>
+ <td>min-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 0; height: 0"></td>
+ <td>max-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 0; height: 0"></td>
+ <td>width: 10px; max-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 10px; height: 10px"></td>
+ <td>width: 10px; min-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 0; height: 0"></td>
+ <td>width: 150%</td>
+</tr></table>
+
+<table><tr>
+ <td><div style="width: 32px"><img style="width: 48px; height: 48px"></div></td>
+ <td>min-width: 150%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 0; height: 0"></td>
+ <td>max-width: 150%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 0; height: 0"></td>
+ <td>width: 10px; max-width: 150%</td>
+</tr></table>
+
+<table><tr>
+ <td><div style="width: 10px"><img style="width: 15px; height: 15px"></div></td>
+ <td>width: 10px; min-width: 150%</td>
+</tr></table>
+
+<script>
+
+var images = document.getElementsByTagName("img");
+for (var i = 0; i < images.length; ++i) {
+ var image = images[i];
+ image.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAChJREFUSMftzUEBAAAEBLCjf2dK8NsKrJLJp84zgUAgEAgEAoFAcGUBocYBP+pqhN4AAAAASUVORK5CYII=";
+}
+
+</script>
diff --git a/layout/reftests/css-sizing/min-intrinsic-with-percents-across-img-cases.html b/layout/reftests/css-sizing/min-intrinsic-with-percents-across-img-cases.html
new file mode 100644
index 0000000000..9679aa0477
--- /dev/null
+++ b/layout/reftests/css-sizing/min-intrinsic-with-percents-across-img-cases.html
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML>
+<title>Tests for bug 823483</title>
+<style>
+
+td:first-child {
+ background: aqua;
+ border: thin solid;
+ padding: 2px 0;
+}
+
+td:nth-child(2) {
+ width: 100%;
+}
+
+img { vertical-align: bottom }
+
+</style>
+
+
+<table><tr>
+ <td><img></td>
+ <td>unstyled</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 10px"></td>
+ <td>width: 10px</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 50%"></td>
+ <td>width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="min-width: 50%"></td>
+ <td>min-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="max-width: 50%"></td>
+ <td>max-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 10px; max-width: 50%"></td>
+ <td>width: 10px; max-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 10px; min-width: 50%"></td>
+ <td>width: 10px; min-width: 50%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 150%"></td>
+ <td>width: 150%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="min-width: 150%"></td>
+ <td>min-width: 150%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="max-width: 150%"></td>
+ <td>max-width: 150%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 10px; max-width: 150%"></td>
+ <td>width: 10px; max-width: 150%</td>
+</tr></table>
+
+<table><tr>
+ <td><img style="width: 10px; min-width: 150%"></td>
+ <td>width: 10px; min-width: 150%</td>
+</tr></table>
+
+<script>
+
+var images = document.getElementsByTagName("img");
+for (var i = 0; i < images.length; ++i) {
+ var image = images[i];
+ image.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAChJREFUSMftzUEBAAAEBLCjf2dK8NsKrJLJp84zgUAgEAgEAoFAcGUBocYBP+pqhN4AAAAASUVORK5CYII=";
+}
+
+</script>
diff --git a/layout/reftests/css-sizing/min-intrinsic-with-width-percents-across-form-controls-ref.html b/layout/reftests/css-sizing/min-intrinsic-with-width-percents-across-form-controls-ref.html
new file mode 100644
index 0000000000..2056753897
--- /dev/null
+++ b/layout/reftests/css-sizing/min-intrinsic-with-width-percents-across-form-controls-ref.html
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML>
+<title>Tests for bug 823483 / bug 1247929</title>
+<style>
+
+body, input { font-size: 10px }
+input { padding: 0 1px; border: 1px solid maroon; font-family: monospace }
+
+td:first-child {
+ background: aqua;
+ border: thin solid;
+ padding: 1px 0;
+}
+
+td:nth-child(2) {
+ width: 100%;
+}
+
+td:nth-child(1) > * { visibility: hidden; vertical-align: bottom }
+
+</style>
+
+<table><tr>
+ <td><input type="text" style="width: 0"></td>
+ <td>input type="text"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="button" value="Button"></td>
+ <td>input type="button"</td>
+</tr></table>
+
+<table><tr>
+ <td><button>Button</button></td>
+ <td>button</td>
+</tr></table>
+
+<table><tr>
+ <td><fieldset>Fieldset</fieldset></td>
+ <td>fieldset</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="file" style="width: 0"></td>
+ <td>input type="file"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="radio" style="width: 0"></td>
+ <td>input type="radio"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="checkbox" style="width: 0"></td>
+ <td>input type="checkbox"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAChJREFUSMftzUEBAAAEBLCjf2dK8NsKrJLJp84zgUAgEAgEAoFAcGUBocYBP+pqhN4AAAAASUVORK5CYII=" style="width: 0"></td>
+ <td>input type="image"</td>
+</tr></table>
+
+<table><tr>
+ <td><select style="width: 0"><option>One</option><option>Two</option></select></td>
+ <td>select</td>
+</tr></table>
+
+<table><tr>
+ <td><select size="2" style="width: 0"><option>One</option><option>Two</option></select></td>
+ <td>select size="2"</td>
+</tr></table>
+
+<table><tr>
+ <td><meter max="10" value="5" style="width: 0"></meter></td>
+ <td>meter</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="number" style="width: 0"></td>
+ <td>input type="number"</td>
+</tr></table>
+
+<table><tr>
+ <td><progress style="width: 0"></progress></td>
+ <td>progress</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="range" style="width: 0"></td>
+ <td>input type="range"</td>
+</tr></table>
+
+<table><tr>
+ <td><textarea style="width: 0"></textarea></td>
+ <td>textarea</td>
+</tr></table>
diff --git a/layout/reftests/css-sizing/min-intrinsic-with-width-percents-across-form-controls.html b/layout/reftests/css-sizing/min-intrinsic-with-width-percents-across-form-controls.html
new file mode 100644
index 0000000000..b2a766201b
--- /dev/null
+++ b/layout/reftests/css-sizing/min-intrinsic-with-width-percents-across-form-controls.html
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML>
+<title>Tests for bug 823483 / bug 1247929</title>
+<style>
+
+body, input { font-size: 10px }
+input { padding: 0 1px; border: 1px solid maroon; font-family: monospace }
+
+td:first-child {
+ background: aqua;
+ border: thin solid;
+ padding: 1px 0;
+}
+
+td:nth-child(2) {
+ width: 100%;
+}
+
+td:nth-child(1) > * { visibility: hidden; vertical-align: bottom; width: 100% }
+
+</style>
+
+<table><tr>
+ <td><input type="text"></td>
+ <td>input type="text"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="button" value="Button"></td>
+ <td>input type="button"</td>
+</tr></table>
+
+<table><tr>
+ <td><button>Button</button></td>
+ <td>button</td>
+</tr></table>
+
+<table><tr>
+ <td><fieldset>Fieldset</fieldset></td>
+ <td>fieldset</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="file"></td>
+ <td>input type="file"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="radio"></td>
+ <td>input type="radio"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="checkbox"></td>
+ <td>input type="checkbox"</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAChJREFUSMftzUEBAAAEBLCjf2dK8NsKrJLJp84zgUAgEAgEAoFAcGUBocYBP+pqhN4AAAAASUVORK5CYII="></td>
+ <td>input type="image"</td>
+</tr></table>
+
+<table><tr>
+ <td><select><option>One</option><option>Two</option></select></td>
+ <td>select</td>
+</tr></table>
+
+<table><tr>
+ <td><select size="2"><option>One</option><option>Two</option></select></td>
+ <td>select size="2"</td>
+</tr></table>
+
+<table><tr>
+ <td><meter max="10" value="5"></meter></td>
+ <td>meter</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="number"></td>
+ <td>input type="number"</td>
+</tr></table>
+
+<table><tr>
+ <td><progress></progress></td>
+ <td>progress</td>
+</tr></table>
+
+<table><tr>
+ <td><input type="range"></td>
+ <td>input type="range"</td>
+</tr></table>
+
+<table><tr>
+ <td><textarea></textarea></td>
+ <td>textarea</td>
+</tr></table>
diff --git a/layout/reftests/css-sizing/reftest.list b/layout/reftests/css-sizing/reftest.list
new file mode 100644
index 0000000000..87ee274319
--- /dev/null
+++ b/layout/reftests/css-sizing/reftest.list
@@ -0,0 +1,4 @@
+== min-intrinsic-with-percents-across-img-cases.html min-intrinsic-with-percents-across-img-cases-ref.html
+== min-intrinsic-with-percents-across-elements.html min-intrinsic-with-percents-across-elements-ref.html
+== min-intrinsic-with-max-width-percents-across-form-controls.html min-intrinsic-with-max-width-percents-across-form-controls-ref.html
+== min-intrinsic-with-width-percents-across-form-controls.html min-intrinsic-with-width-percents-across-form-controls-ref.html