Bug 1447937 [wpt PR 10141] - [css-grid] Fix auto repeat tracks computation with definite min sizes, a=testonly
authorSergio Villar Senin <svillar@igalia.com>
Mon, 09 Apr 2018 17:42:39 +0000
changeset 467165 c0c9886ad6a79c474fc1bc06a3ca4e8daa57383e
parent 467164 57f7168a53627f23444867e355ddc56d85e4933d
child 467166 73e34216cc87216c0a6adcf8c915d6eedae4a224
push id9165
push userasasaki@mozilla.com
push dateThu, 26 Apr 2018 21:04:54 +0000
treeherdermozilla-beta@064c3804de2e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1447937, 10141, 823140, 973522, 545403
milestone61.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1447937 [wpt PR 10141] - [css-grid] Fix auto repeat tracks computation with definite min sizes, a=testonly Automatic update from web-platform-tests[css-grid] Fix auto repeat tracks computation with definite min sizes Indefinitely sized containers use the specified definite min-size (if any) as available space in order to compute the number of auto repeat tracks to create. A bug in that code was causing the grid to be one track larger than expected. That was only happening in the case of the free space being a multiple of the total size of the autorepeat tracks. Bug: 823140 Change-Id: I6cc13df478da4ba00585fa557012391291941d1a Reviewed-on: https://chromium-review.googlesource.com/973522 Commit-Queue: Sergio Villar <svillar@igalia.com> Reviewed-by: Emil A Eklund <eae@chromium.org> Reviewed-by: Manuel Rego Casasnovas <rego@igalia.com> Cr-Commit-Position: refs/heads/master@{#545403} wpt-commits: 9e2e5eb3fc0dbb25a8f643020577157c3e64d556 wpt-pr: 10141 wpt-commits: 9e2e5eb3fc0dbb25a8f643020577157c3e64d556 wpt-pr: 10141
testing/web-platform/meta/MANIFEST.json
testing/web-platform/tests/css/css-grid/grid-definition/grid-inline-auto-repeat-001.html
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -313934,16 +313934,22 @@
     ]
    ],
    "css/css-grid/grid-definition/grid-change-fit-content-argument-001.html": [
     [
      "/css/css-grid/grid-definition/grid-change-fit-content-argument-001.html",
      {}
     ]
    ],
+   "css/css-grid/grid-definition/grid-inline-auto-repeat-001.html": [
+    [
+     "/css/css-grid/grid-definition/grid-inline-auto-repeat-001.html",
+     {}
+    ]
+   ],
    "css/css-grid/grid-definition/grid-inline-support-flexible-lengths-001.html": [
     [
      "/css/css-grid/grid-definition/grid-inline-support-flexible-lengths-001.html",
      {}
     ]
    ],
    "css/css-grid/grid-definition/grid-inline-support-grid-template-areas-001.html": [
     [
@@ -501545,16 +501551,20 @@
   "css/css-grid/grid-definition/fr-unit.html": [
    "194031e276c1dfca4dd57bf5791a0cc1fd226a89",
    "reftest"
   ],
   "css/css-grid/grid-definition/grid-change-fit-content-argument-001.html": [
    "d00e8651be933262d7f64d22f6e8ce68d23d44eb",
    "testharness"
   ],
+  "css/css-grid/grid-definition/grid-inline-auto-repeat-001.html": [
+   "dd057e3ae1332c813ae60dc0bf29b948b24e7f47",
+   "testharness"
+  ],
   "css/css-grid/grid-definition/grid-inline-support-flexible-lengths-001.html": [
    "99215a797996322c89105b8ca5cb426628ec7563",
    "testharness"
   ],
   "css/css-grid/grid-definition/grid-inline-support-grid-template-areas-001.html": [
    "22ea4ef440903f2b3af781d1209ccf6e89b1c07d",
    "testharness"
   ],
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-grid/grid-definition/grid-inline-auto-repeat-001.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html lang=en>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: auto repeat tracks in indefinite containers with minimum size</title>
+<link rel="author" title="Sergio Villar Senin" href="mailto:svillar@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#repeat-syntax">
+<meta name="assert" content="This test checks that we properly compute the number of required auto repeat tracks in indefinite sized containers with minimum sizes.">
+<link rel="stylesheet" href="support/grid.css">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/testing-utils.js"></script>
+<style>
+.grid {
+    display: inline-grid;
+    grid: 20px / 20px;
+    min-width: 20px;
+    min-height: 20px;
+    justify-content: start;
+    align-content: start;
+}
+</style>
+<div id="log"></div>
+
+<div id="autoFillColumns" class="grid"></div>
+<div id="autoFitColumns" class="grid"></div>
+
+<div id="autoFillRows" class="grid"></div>
+<div id="autoFitRows" class="grid"></div>
+
+<script>
+// Exact fit
+TestingUtils.testGridTemplateColumnsRows("autoFillColumns", "repeat(auto-fill, 10px)", "20px", ["repeat(2, 10px)", "10px 10px"], "20px");
+TestingUtils.testGridTemplateColumnsRows("autoFitColumns", "repeat(auto-fit, 10px)", "20px", ["repeat(2, 0px)", "0px 0px"], "20px");
+TestingUtils.testGridTemplateColumnsRows("autoFillRows", "20px", "repeat(auto-fill, 10px)", "20px", ["repeat(2, 10px)", "10px 10px"]);
+TestingUtils.testGridTemplateColumnsRows("autoFitRows", "20px", "repeat(auto-fit, 10px)", "20px", ["repeat(2, 0px)", "0px 0px"]);
+
+// Require an extra track
+TestingUtils.testGridTemplateColumnsRows("autoFillColumns", "repeat(auto-fill, 9px)", "20px", ["repeat(3, 9px)", "9px 9px 9px"], "20px");
+TestingUtils.testGridTemplateColumnsRows("autoFitColumns", "repeat(auto-fit, 9px)", "20px", ["repeat(2, 0px)", "0px 0px"], "20px");
+TestingUtils.testGridTemplateColumnsRows("autoFillRows", "20px", "repeat(auto-fill, 9px)", "20px", ["repeat(3, 9px)", "9px 9px 9px"]);
+TestingUtils.testGridTemplateColumnsRows("autoFitRows", "20px", "repeat(auto-fit, 9px)", "20px", ["repeat(3, 0px)", "0px 0px 0px"]);
+
+// A single repetition is enough to fill in all the available space
+TestingUtils.testGridTemplateColumnsRows("autoFillColumns", "repeat(auto-fill, 30px)", "20px", "30px", "20px");
+TestingUtils.testGridTemplateColumnsRows("autoFitColumns", "repeat(auto-fit, 30px)", "20px", "0px", "20px");
+TestingUtils.testGridTemplateColumnsRows("autoFillRows", "20px", "repeat(auto-fill, 30px)", "20px", "30px");
+TestingUtils.testGridTemplateColumnsRows("autoFitRows", "20px", "repeat(auto-fit, 30px)", "20px", "0px");
+</script>