[Masonry] Disallow intrinsic track sizes next to intrinsic repeaters (#54213)
I originally thought we would want to update the parsing logic to allow
intrinsic track sizes along with intrinsic repeaters. However, upon
further thought, I think this will lead to more complexity than it's
worth, particularly when mixing intrinsic track sizes.
I've updated tests to test for this assertion, and I've opened a new
spec issue on whether we want to reconsider this:
https://github.com/w3c/csswg-drafts/issues/12580
Bug: 343257585
Change-Id: Ic813e3fe54ef3df22b42c4ca8626cf420a672800
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6825326
Reviewed-by: Kurt Catti-Schmidt <kschmi@microsoft.com>
Commit-Queue: Alison Maher <almaher@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1498953}
Co-authored-by: Alison Maher <almaher@microsoft.com>
diff --git a/css/css-grid/parsing/grid-template-columns-invalid.html b/css/css-grid/parsing/grid-template-columns-invalid.html
index 9f9f173..ee9fbb5 100644
--- a/css/css-grid/parsing/grid-template-columns-invalid.html
+++ b/css/css-grid/parsing/grid-template-columns-invalid.html
@@ -30,6 +30,26 @@
test_invalid_value("grid-template-columns", '-10px repeat(auto-fill, min-content)');
test_invalid_value("grid-template-columns", '-20% repeat(auto-fit, max-content)');
test_invalid_value("grid-template-columns", 'repeat(auto-fill, fit-content)');
+test_invalid_value("grid-template-columns", 'auto repeat(auto-fill, auto) auto');
+test_invalid_value("grid-template-columns", 'min-content repeat(auto-fill, auto) min-content');
+test_invalid_value("grid-template-columns", 'max-content repeat(auto-fill, auto) max-content');
+test_invalid_value("grid-template-columns", 'fit-content(200px) repeat(auto-fill, auto) fit-content(200px)');
+test_invalid_value("grid-template-columns", 'auto repeat(auto-fill, auto) repeat(5, auto)');
+test_invalid_value("grid-template-columns", 'auto repeat(auto-fill, min-content) auto');
+test_invalid_value("grid-template-columns", 'min-content repeat(auto-fill, min-content) min-content');
+test_invalid_value("grid-template-columns", 'max-content repeat(auto-fill, min-content) max-content');
+test_invalid_value("grid-template-columns", 'fit-content(200px) repeat(auto-fill, min-content) fit-content(200px)');
+test_invalid_value("grid-template-columns", 'min-content repeat(auto-fill, min-content) repeat(5, min-content)');
+test_invalid_value("grid-template-columns", 'auto repeat(auto-fill, max-content) auto');
+test_invalid_value("grid-template-columns", 'min-content repeat(auto-fill, max-content) min-content');
+test_invalid_value("grid-template-columns", 'max-content repeat(auto-fill, max-content) max-content');
+test_invalid_value("grid-template-columns", 'fit-content(200px) repeat(auto-fill, max-content) fit-content(200px)');
+test_invalid_value("grid-template-columns", 'max-content repeat(auto-fill, max-content) repeat(5, max-content)');
+test_invalid_value("grid-template-columns", 'auto repeat(auto-fill, fit-content(200px)) auto');
+test_invalid_value("grid-template-columns", 'min-content repeat(auto-fill, fit-content(200px)) min-content');
+test_invalid_value("grid-template-columns", 'max-content repeat(auto-fill, fit-content(200px)) max-content');
+test_invalid_value("grid-template-columns", 'fit-content(200px) repeat(auto-fill, fit-content(200px)) fit-content(200px)');
+test_invalid_value("grid-template-columns", 'fit-content(200px) repeat(auto-fill, fit-content(200px)) repeat(5, fit-content(200px))');
</script>
</body>
</html>
diff --git a/css/css-grid/parsing/grid-template-rows-invalid.html b/css/css-grid/parsing/grid-template-rows-invalid.html
index 192b392..78468f8 100644
--- a/css/css-grid/parsing/grid-template-rows-invalid.html
+++ b/css/css-grid/parsing/grid-template-rows-invalid.html
@@ -30,6 +30,26 @@
test_invalid_value("grid-template-rows", '-10px repeat(auto-fill, min-content)');
test_invalid_value("grid-template-rows", '-20% repeat(auto-fit, max-content)');
test_invalid_value("grid-template-rows", 'repeat(auto-fill, fit-content)');
+test_invalid_value("grid-template-rows", 'auto repeat(auto-fill, auto) auto');
+test_invalid_value("grid-template-rows", 'min-content repeat(auto-fill, auto) min-content');
+test_invalid_value("grid-template-rows", 'max-content repeat(auto-fill, auto) max-content');
+test_invalid_value("grid-template-rows", 'fit-content(200px) repeat(auto-fill, auto) fit-content(200px)');
+test_invalid_value("grid-template-rows", 'auto repeat(auto-fill, auto) repeat(5, auto)');
+test_invalid_value("grid-template-rows", 'auto repeat(auto-fill, min-content) auto');
+test_invalid_value("grid-template-rows", 'min-content repeat(auto-fill, min-content) min-content');
+test_invalid_value("grid-template-rows", 'max-content repeat(auto-fill, min-content) max-content');
+test_invalid_value("grid-template-rows", 'fit-content(200px) repeat(auto-fill, min-content) fit-content(200px)');
+test_invalid_value("grid-template-rows", 'min-content repeat(auto-fill, min-content) repeat(5, min-content)');
+test_invalid_value("grid-template-rows", 'auto repeat(auto-fill, max-content) auto');
+test_invalid_value("grid-template-rows", 'min-content repeat(auto-fill, max-content) min-content');
+test_invalid_value("grid-template-rows", 'max-content repeat(auto-fill, max-content) max-content');
+test_invalid_value("grid-template-rows", 'fit-content(200px) repeat(auto-fill, max-content) fit-content(200px)');
+test_invalid_value("grid-template-rows", 'max-content repeat(auto-fill, max-content) repeat(5, max-content)');
+test_invalid_value("grid-template-rows", 'auto repeat(auto-fill, fit-content(200px)) auto');
+test_invalid_value("grid-template-rows", 'min-content repeat(auto-fill, fit-content(200px)) min-content');
+test_invalid_value("grid-template-rows", 'max-content repeat(auto-fill, fit-content(200px)) max-content');
+test_invalid_value("grid-template-rows", 'fit-content(200px) repeat(auto-fill, fit-content(200px)) fit-content(200px)');
+test_invalid_value("grid-template-rows", 'fit-content(200px) repeat(auto-fill, fit-content(200px)) repeat(5, fit-content(200px))');
</script>
</body>
</html>
diff --git a/css/css-grid/parsing/grid-template-rows-repeat-intrinsic-valid.tentative.html b/css/css-grid/parsing/grid-template-rows-repeat-intrinsic-valid.tentative.html
index a3975eb..32f8df9 100644
--- a/css/css-grid/parsing/grid-template-rows-repeat-intrinsic-valid.tentative.html
+++ b/css/css-grid/parsing/grid-template-rows-repeat-intrinsic-valid.tentative.html
@@ -28,12 +28,10 @@
test_valid_value("grid-template-rows", 'repeat(auto-fill, minmax(30px, 5fr) [two] max-content)');
test_valid_value("grid-template-rows", 'repeat(auto-fit, [three] max-content [four])');
-
test_valid_value("grid-template-rows", 'repeat(auto-fill, fit-content(200px))');
test_valid_value("grid-template-rows", 'repeat(auto-fit, fit-content(200px) 100px fit-content(200px))');
test_valid_value("grid-template-rows", 'repeat(auto-fill, minmax(30px, 5fr) [two] fit-content(200px))');
test_valid_value("grid-template-rows", 'repeat(auto-fit, [three] fit-content(200px) [four])');
</script>
-</script>
</body>
</html>