Bug 1650620 [wpt PR 24444] - [FragmentItem] Fix DirtyLinesFromNeedsLayout, a=testonly

Automatic update from web-platform-tests
[FragmentItem] Fix DirtyLinesFromNeedsLayout

This patch fixes a case where |DirtyLinesFromNeedsLayout|
fails to mark items dirty for reusing cached lines.

When searching for |LayoutObject| needing layout, checking
|NormalChildNeedsLayout| and |PosChildNeedsLayout| were not
enough. In some specific cases, only
|NeedsSimplifiedNormalFlowLayout| was set for the parent
inline box.

This patch changes the condition to check descendants to
|NeedsLayout|.

Bug: 1101883
Change-Id: Ia73ace058c9ea1ebaaffdaff793b56d68099cd5c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2281781
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#785287}

--

wpt-commits: aef9da08fe2fa0b9fa473e2e126cb3cf29fae43e
wpt-pr: 24444
This commit is contained in:
Koji Ishii 2020-07-09 14:12:22 +00:00 коммит произвёл moz-wptsync-bot
Родитель 192514a7c9
Коммит 211e40a866
1 изменённых файлов: 36 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,36 @@
<!DOCTYPE html>
<title>Chaning positioned objects in inline-block should not crash</title>
<link rel="author" href="mailto:kojii@chromium.org">
<link rel="help" href="https://crbug.com/1102128">
<style>
#container {
width: 5ch;
}
#inline-block {
display: inline-block;
position: relative;
width: 3ch;
}
#abs {
position: absolute;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
<div id="container">
<span>
<span id="inline-block">
<span id="abs"></span>
</span>
</span>
1234
</div>
<script>
test(() => {
document.body.offsetTop;
abs.style.top = '10px';
document.body.offsetTop;
}, 'No crash');
</script>
</body>