зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1640916 [wpt PR 23772] - [css-grid] Consider 'auto' height items for grid area estimation, a=testonly
Automatic update from web-platform-tests [css-grid] Consider 'auto' height items for grid area estimation We perform a pre-layout, based on a estimation of the grid area, of the grid items in two different situations: orthogonal and baseline aligned items. In the case of baseline aligned items, we were doing this pre-layout only in the case of items with relative inline and block sizes. However, items with 'auto' block-size also depend on this estimated grid area size to properly compute the baseline offset. It was discarded in the past due to performance concerns, since the 'auto' height is a very common case. However, this codepath is only executed for baseline aligned items. Since we already applied several optimization to the baseline alignment logic, I think we can try this approach to solve the bug and evaluate potential perf regressions when they appear. Bug: 1086132 Change-Id: I73c39e6c3ad6cd74aa50fe33106e25cd63b7625f Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2215054 Reviewed-by: Manuel Rego <rego@igalia.com> Reviewed-by: Oriol Brufau <obrufau@igalia.com> Commit-Queue: Javier Fernandez <jfernandez@igalia.com> Cr-Commit-Position: refs/heads/master@{#774139} -- wpt-commits: b4205f9f8b440e56da7fb2bd6cc26643296b02e1 wpt-pr: 23772 Differential Revision: https://phabricator.services.mozilla.com/D78782
This commit is contained in:
Родитель
9cdee8aa3a
Коммит
13890f4edc
|
@ -0,0 +1,51 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Grid Layout Test: Self-Baseline alignment along column-axis on fixed sized grids and synthesized baselines</title>
|
||||
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#column-align">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline">
|
||||
<link rel="stylesheet" href="/css/support/grid.css">
|
||||
<link rel="stylesheet" href="../../support/alignment.css">
|
||||
<meta name="assert" content="Grid items orthogonal to the Baseline Alignment Context should use their border-box 'under' edge as synthesized baseline.">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style>
|
||||
body { overflow: scroll; }
|
||||
.container { position: relative; }
|
||||
.grid {
|
||||
position: relative;
|
||||
grid-template-rows: 150px;
|
||||
text-orientation: sideways;
|
||||
font: 20px/1 Ahem;
|
||||
}
|
||||
.width100 { width: 100px; }
|
||||
.width200 { width: 200px; }
|
||||
.width300 { width: 300px; }
|
||||
.bigFont { font-size: 50px; }
|
||||
</style>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
<script type="text/javascript">
|
||||
setup({ explicit_done: true });
|
||||
</script>
|
||||
<body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })">
|
||||
|
||||
<pre>verticalLR grid and parallel items</pre>
|
||||
|
||||
<div class="grid width100 alignItemsBaseline">
|
||||
<div class="firstRowFirstColumn verticalLR" data-offset-x="0" data-offset-y="0" data-expected-width="35" data-expected-height="120">É É ÉÉ</div>
|
||||
<div class="firstRowSecondColumn verticalLR bigFont" data-offset-x="35" data-offset-y="70" data-expected-width="65" data-expected-height="50">É</div>
|
||||
</div>
|
||||
|
||||
<pre>verticalRL grid and parallel items</pre>
|
||||
|
||||
<div class="grid width100 alignItemsBaseline">
|
||||
<div class="firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="35" data-expected-height="120">É É ÉÉ</div>
|
||||
<div class="firstRowSecondColumn verticalRL bigFont" data-offset-x="35" data-offset-y="70" data-expected-width="65" data-expected-height="50">É</div>
|
||||
</div>
|
||||
|
||||
</body>
|
|
@ -0,0 +1,55 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Grid Layout Test: Self-Baseline alignment along row-axis on content-sized grids and synthesized baselines</title>
|
||||
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#row-align">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline">
|
||||
<link rel="stylesheet" href="/css/support/grid.css">
|
||||
<link rel="stylesheet" href="../../support/alignment.css">
|
||||
<meta name="assert" content="Grid items orthogonal to the Baseline Alignment Context should use their border-box 'under' edge as synthesized baseline.">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style>
|
||||
body { overflow: scroll; }
|
||||
.container { position: relative; }
|
||||
.grid {
|
||||
position: relative;
|
||||
grid-template-columns: 150px;
|
||||
text-orientation: sideways;
|
||||
font: 20px/1 Ahem;
|
||||
}
|
||||
.width100 { width: 100px; }
|
||||
.width200 { width: 200px; }
|
||||
.width300 { width: 300px; }
|
||||
.bigFont { font-size: 50px; }
|
||||
</style>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
<script type="text/javascript">
|
||||
setup({ explicit_done: true });
|
||||
</script>
|
||||
<body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })">
|
||||
|
||||
<pre>verticalLR grid and parallel items</pre>
|
||||
|
||||
<div class="container width100 verticalLR">
|
||||
<div class="grid justifyItemsBaseline">
|
||||
<div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="20" data-expected-height="120">É É ÉÉ</div>
|
||||
<div class="secondRowFirstColumn bigFont" data-offset-x="20" data-offset-y="70" data-expected-width="50" data-expected-height="50">É</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<pre>verticalRL grid and parallel items</pre>
|
||||
|
||||
<div class="container width100 verticalRL">
|
||||
<div class="grid justifyItemsBaseline">
|
||||
<div class="firstRowFirstColumn" data-offset-x="50" data-offset-y="0" data-expected-width="20" data-expected-height="120">É É ÉÉ</div>
|
||||
<div class="secondRowFirstColumn bigFont" data-offset-x="0" data-offset-y="70" data-expected-width="50" data-expected-height="50">É</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
Загрузка…
Ссылка в новой задаче