Bug 1560862 [wpt PR 17373] - [LayoutNG] Fix NeedsLayout failure when CR/FF is dirty, a=testonly

Automatic update from web-platform-tests
[LayoutNG] Fix NeedsLayout failure when CR/FF is dirty

This patch fixes |ClearNeedsLayout| for CR (U+000D) and FF
(U+000C). These were overlooked when |ClearNeedsLayout| was
moved from |NGInlineItemsBuilder| to |NGLineBreaker| and
|NGInlineLayoutAlgorithm|.

Bug: 971811
Change-Id: Ie3d9d3d11e35a7ed3458bb8b96d2fa68bf9c37a9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1663478
Reviewed-by: Xiaocheng Hu <xiaochengh@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#670010}

--

wpt-commits: 95372aa3ca35565b56fc6d9d5e0653a4fff8a6e8
wpt-pr: 17373
This commit is contained in:
Koji Ishii 2019-07-19 12:24:38 +00:00 коммит произвёл James Graham
Родитель 75fbf734bf
Коммит 6536ed3263
1 изменённых файлов: 36 добавлений и 0 удалений

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

@ -0,0 +1,36 @@
<!DOCTYPE html>
<link rel="help" href="https://crbug.com/971811">
<link rel="author" title="Koji Ishii" href="mailto:kojii@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
<div id="log"></div>
<script>
const strings = [' ', '\t', '\n', '\f', '\r'];
const whitespace_values = ['normal', 'pre', 'nowrap', 'pre-wrap', 'break-spaces', 'pre-line'];
const container = document.body;
for (let whitespace_value of whitespace_values) {
for (let string of strings) {
test(() => {
let div = document.createElement('div');
div.style.whiteSpace = whitespace_value;
div.textContent = 'test';
container.appendChild(div);
container.offsetTop; // Force layout
div.appendChild(document.createTextNode(string));
container.offsetTop; // Force layout
}, `Append ${toCodePoints(string)} to 'white-space: ${whitespace_value}'`);
}
}
function toCodePoints(string) {
let results = [];
for (let ch of string) {
let hex = ch.codePointAt(0).toString(16).toUpperCase();
hex = ('000' + hex).substr(-4)
results.push('U+' + hex);
}
return results.join(' ');
}
</script>
</body>