gecko-dev/testing/web-platform/tests/css/css-layout-api/baseline/flex-baseline.https.html
Alison Maher b3bea234f1 Bug 1611295 [wpt PR 21398] - [css-layout-api] Baselines, a=testonly
Automatic update from web-platform-tests
[css-layout-api] Baselines

This change adds support for the CSS Layout API Alignment, both in
retrieving child baselines and in setting parent baselines.
https://drafts.css-houdini.org/css-layout-api/#interaction-alignment

Due to recent changes, fragments produce only one baseline.
https://chromium-review.googlesource.com/c/chromium/src/+/1988376
As a result, custom LayoutFragments will always produce the
first-line baseline.

Bug: 726125
Change-Id: Ia92eddcd8cf6d7f1cc58c767cc71a199b0b7418e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2015723
Commit-Queue: Alison Maher <almaher@microsoft.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#735196}

--

wpt-commits: 338106e67c47bce94fd1fe5d3810f922b2860946
wpt-pr: 21398
2020-01-31 20:40:15 +00:00

50 lines
1.2 KiB
HTML

<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#interaction-alignment">
<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that a baseline aligned element uses the baseline set in layout()."/>
<style>
.parent {
background: red;
display: flex;
padding: 0 10px;
width: 80px;
height: 100px;
}
.child {
align-self: baseline;
color: red;
}
@supports (display: layout(parent)) {
.parent {
background: green;
}
.child {
display: layout(child);
}
}
</style>
<script src="/common/reftest-wait.js"></script>
<script src="/common/worklet-reftest.js"></script>
<div class="parent">
<div style="position: absolute; top: 50px; width: 50px; height: 25px; background: green;"></div>
<div class="child">text</div>
</div>
<script id="code" type="text/worklet">
registerLayout('child', class {
async intrinsicSizes() {}
async layout(children) {
const childFragments = await Promise.all(children.map(child => child.layoutNextFragment({})));
return {childFragments, baseline: -50};
}
});
</script>
<script>
importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, document.getElementById('code').textContent);
</script>
</html>