[wpt-sync] Sync PR 30800 - Pre-paint: Avoid inlines that aren't present in a fragmentainer.
Categories
(Core :: Layout, task, P4)
Tracking
()
Tracking | Status | |
---|---|---|
firefox95 | --- | fixed |
People
(Reporter: mozilla.org, Unassigned)
References
()
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 30800 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/30800
Details from upstream follow.
b'Morten Stenshorne <mstensho@chromium.org>' wrote:
Pre-paint: Avoid inlines that aren't present in a fragmentainer.
If the parent block fragment isn't an inline formatting context, we
generally don't need to enter inlines, except that we need to clear the
paint flags. Therefore, only enter inlines if the parent is at the last
fragment. Entering at any other fragment may cause us to update the
paint offset, which might set paint invalidation flags for no good
reason.In the test included, there's a tall float in an inline formatting
context, taking up three columns. There's a line in the first column
with just a BR element. There's also a wide inline-block, but it doesn't
fit beside the float, so it gets pushed to the third column, where we
create a line for it below the float. When a float in an inline
formatting context breaks, it's resumed as a regular block. An inline
formatting context will only be created if there's actual inline content
there as well. So, the second column doesn't get any inline content at
all (i.e. no fragment items).Therefore we'd visit the BR element in the first column (correct - this
is where the element is). We'd then re-enter it in the second column
(because we had no inline formatting context to search, and just enter
everything - this is bad), and update the paint offset (and possibly
other things), and set invalidation flags. In the third column we'll not
enter it, because there we have an inline formatting context to search
(and the BR will not be found). So we'd end up with paint invalidation
flags not cleared.Bug: 1249769
Change-Id: Icaa583c0bb1a034a7a2690ab6bc27cbcb7010f75
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3162102
Reviewed-by: Koji Ishii \<kojii@chromium.org>
Commit-Queue: Morten Stenshorne \<mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#922120}
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 1•3 years ago
|
||
Pushed to try (stability) https://treeherder.mozilla.org/#/jobs?repo=try&revision=2faf0be60c6e0b2617d30b1d606b415b29a0d264
Assignee | ||
Comment 2•3 years ago
|
||
CI Results
Ran 11 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI
Total 1 tests
Status Summary
Firefox
PASS: 1
Chrome
PASS: 1
Safari
PASS: 1
Links
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/53aa2903e723 [wpt PR 30800] - Pre-paint: Avoid inlines that aren't present in a fragmentainer., a=testonly
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/43d480792c9a [wpt PR 30800] - Pre-paint: Avoid inlines that aren't present in a fragmentainer., a=testonly
Comment 5•3 years ago
|
||
bugherder |
Description
•