| Summary: | [content-visibility] Lazily layout children | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Rob Buis <rbuis> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Component: | CSS | Assignee: | Rob Buis <rbuis> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Status: | RESOLVED FIXED | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Severity: | Normal | CC: | cathiechen, cdumez, changseok, clopez, cmarcelo, dino, esprehn+autocc, ews-watchlist, fmalita, fred.wang, glenn, gyuyoung.kim, kangil.han, kondapallykalyan, mifenton, ntim, pdr, sabouhallawa, schenney, sergio, simon.fraser, webkit-bug-importer, youennf | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Priority: | P2 | Keywords: | InRadar | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Version: | WebKit Nightly Build | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Hardware: | Unspecified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| OS: | Unspecified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Bug Depends on: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Bug Blocks: | 236238 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Attachments: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Description
Rob Buis
2022-03-02 08:18:38 PST
Created attachment 453614 [details]
Initial implementation
Initial implementation
Created attachment 453656 [details]
Improved patch
Improved patch.
Created attachment 458128 [details]
Rebase
Rebase
Created attachment 459542 [details]
Remove ChangeLogs
Remove ChangeLogs.
Comment on attachment 459542 [details] Remove ChangeLogs View in context: https://bugs.webkit.org/attachment.cgi?id=459542&action=review I wonder why Element::offsetTop doesn't need Document::ForceLayout::Yes? > Source/WebCore/dom/Element.cpp:1283 > + document().updateLayoutIgnorePendingStylesheets(Document::ForceLayout::Yes); I wonder why Element::offsetLeft doesn't need Document::ForceLayout::Yes? > Source/WebCore/dom/Element.cpp:1443 > + document().updateLayoutIgnorePendingStylesheets(Document::ForceLayout::Yes); And Element::scrollLeft? Comment on attachment 459542 [details] Remove ChangeLogs View in context: https://bugs.webkit.org/attachment.cgi?id=459542&action=review >> Source/WebCore/dom/Element.cpp:1283 >> + document().updateLayoutIgnorePendingStylesheets(Document::ForceLayout::Yes); > > I wonder why Element::offsetLeft doesn't need Document::ForceLayout::Yes? It probably needs it as well, checking chromium. I just did the minimum amount to pass the tests. >> Source/WebCore/dom/Element.cpp:1443 >> + document().updateLayoutIgnorePendingStylesheets(Document::ForceLayout::Yes); > > And Element::scrollLeft? Dito. Created attachment 460015 [details]
Fixed-forced-layout-test-failures-wip.diff
To address the forced layout issues, we need to make sure triggering layout when an element becomes a size containment or vice versa.
Looks like there is no need to change isLayoutForced in layoutContext.
Created attachment 463345 [details]
Patch
Created attachment 463361 [details]
Patch
Created attachment 463668 [details]
Patch
Created attachment 463692 [details]
Patch
Comment on attachment 463692 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=463692&action=review > Source/WebCore/rendering/style/RenderStyle.cpp:811 > + if (first.contentVisibility != second.contentVisibility) // content-visibiliy: hidden enabled contain:size if ((static_cast<ContentVisibility>(first.contentVisibility) == ContentVisibility::Hidden) != (static_cast<ContentVisibility>(second.contentVisibility) == ContentVisibility::Hidden)) return true; Created attachment 463695 [details]
Patch
Created attachment 463718 [details]
Patch
Created attachment 463723 [details]
Patch
Created attachment 463727 [details]
Patch
Created attachment 463734 [details]
Patch
Created attachment 463827 [details]
Patch
Created attachment 464073 [details]
Patch
Created attachment 464513 [details]
Patch
Created attachment 464514 [details]
Patch
Created attachment 464524 [details]
Patch
Created attachment 464527 [details]
Patch
This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess Created attachment 464535 [details]
Patch
Pull request: https://github.com/WebKit/WebKit/pull/8763 Created attachment 464602 [details]
Patch
Created attachment 464745 [details]
Patch
Created attachment 464762 [details]
Patch
Created attachment 464781 [details]
Patch
Pull request: https://github.com/WebKit/WebKit/pull/9537 Created attachment 465087 [details]
Patch
Created attachment 465094 [details]
Patch
Created attachment 465106 [details]
Patch
Pull Request: https://github.com/WebKit/WebKit/pull/8763 Committed 268310@main (faa0935aebd5): <https://commits.webkit.org/268310@main> Reviewed commits have been landed. Closing PR #8763 and removing active labels. |