Files
firefox/testing/web-platform/tests/css/CSS2/positioning/inline-static-position-001.html
Koji Ishii 1d6dff3393 Bug 1579972 [wpt PR 18942] - [LayoutNG] Fix line breaking behavior after out-of-flow objects, a=testonly
Automatic update from web-platform-tests
[LayoutNG] Fix line breaking behavior after out-of-flow objects

This patch changes line breaking behavior after out-of-flow
objects to match to ICU, assuming the out-of-flow object is
an object replacement character.

The behavior is not well-defined, and not all cases are
interoperable across existing implementations. Legacy/WebKit
resets the prior context so that text after out-of-flow
objects behave as if it is at the top of the line. Gecko and
Edge seem to allow break in most cases, even when NBSP
follows, but not when the line overflows.

The behavior implemented in this patch is interoperable for
all tests that pass on existing 4 implementations, but not
exactly same as legacy when implementations do not agree.

Bug: 1001438
Change-Id: I4c7077d2c287a6e897175b29a73ce1c308f29f4e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1792467
Reviewed-by: Ian Kilpatrick <[email protected]>
Reviewed-by: Aleks Totic <[email protected]>
Reviewed-by: Emil A Eklund <[email protected]>
Commit-Queue: Koji Ishii <[email protected]>
Cr-Commit-Position: refs/heads/master@{#694888}

--
Load ahem as a webfont to fix lint error.

--

wpt-commits: 0dba391be24cebb9bbbd22d63df729193e502902, 992be2f9e48c9a8cab93ef3b393d548f3beea4ef
wpt-pr: 18942
2019-09-14 08:52:04 +00:00

51 lines
1.9 KiB
HTML

<!DOCTYPE html>
<title>CSS Test: Static positions and line wrapping</title>
<link rel="author" title="Koji Ishii" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css2/visudet.html#static-position">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
.tests, .no-tests {
margin-bottom: 1em;
font-family: Ahem;
font-size: 10px;
line-height: 1;
}
.tests > div, .no-tests > div {
position: relative;
width: 10ch;
border: 1px solid blue;
}
.abs {
position: absolute;
color: orange;
}
</style>
<body>
<section class="tests">
<div>12345<span class="abs" data-offset-x="50" data-offset-y="0">span</span>54321</div>
<div>123456<span class="abs" data-offset-x="60" data-offset-y="0">span</span>654321</div>
<div>12345<span class="abs" data-offset-x="50" data-offset-y="0">span</span> 54321</div>
<div>12345&nbsp;<span class="abs" data-offset-x="60" data-offset-y="0">span</span> 54321</div>
<div>12345&nbsp;<span class="abs" data-offset-x="60" data-offset-y="0">span</span>&nbsp;54321</div>
</section>
<section class="tests">
<!-- offsetTop is interoperable but offsetLeft is not due to white space collapsing. -->
<div>12345 <span class="abs" data-offset-y="0">span</span> 54321</div>
</section>
<section class="no-tests">
<!-- These tests are not interoperable. -->
<div>12345 <span class="abs">span</span>54321</div>
<div>12345 <span class="abs">span</span>&nbsp;54321</div>
<div>123456789012&nbsp;<span class="abs">span</span>&nbsp;54321</div>
<div>123456789012&nbsp;<span class="abs">span</span>&nbsp;543210987654321</div>
</section>
<script>
document.fonts.ready.then(()=> {
checkLayout('.tests .abs');
});
</script>
</body>