Bug 237369

Summary: [content-visibility] Lazily layout children
Product: WebKit Reporter: Rob Buis <rbuis>
Component: CSSAssignee: 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 Flags
Initial implementation
none
Improved patch
none
Rebase
none
Remove ChangeLogs
none
Fixed-forced-layout-test-failures-wip.diff
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch ews-feeder: commit-queue-

Rob Buis
Reported 2022-03-02 08:18:38 PST
Support forced layout.
Attachments
Initial implementation (14.45 KB, patch)
2022-03-02 08:20 PST, Rob Buis
no flags
Improved patch (19.28 KB, patch)
2022-03-02 13:56 PST, Rob Buis
no flags
Rebase (17.69 KB, patch)
2022-04-22 03:10 PDT, Rob Buis
no flags
Remove ChangeLogs (15.58 KB, patch)
2022-05-18 07:25 PDT, Rob Buis
no flags
Fixed-forced-layout-test-failures-wip.diff (2.73 KB, patch)
2022-06-03 08:29 PDT, cathiechen
no flags
Patch (20.69 KB, patch)
2022-11-01 07:51 PDT, Rob Buis
no flags
Patch (5.81 KB, patch)
2022-11-02 07:24 PDT, Rob Buis
no flags
Patch (20.40 KB, patch)
2022-11-22 07:36 PST, Rob Buis
no flags
Patch (19.02 KB, patch)
2022-11-23 07:31 PST, Rob Buis
no flags
Patch (24.00 KB, patch)
2022-11-23 11:06 PST, Rob Buis
no flags
Patch (24.49 KB, patch)
2022-11-24 13:57 PST, Rob Buis
no flags
Patch (23.25 KB, patch)
2022-11-25 01:58 PST, Rob Buis
no flags
Patch (23.81 KB, patch)
2022-11-25 03:36 PST, Rob Buis
no flags
Patch (21.98 KB, patch)
2022-11-25 10:20 PST, Rob Buis
no flags
Patch (21.43 KB, patch)
2022-12-01 03:10 PST, Rob Buis
no flags
Patch (14.39 KB, patch)
2022-12-16 01:47 PST, Rob Buis
no flags
Patch (13.80 KB, patch)
2023-01-16 03:33 PST, Rob Buis
no flags
Patch (13.67 KB, patch)
2023-01-16 06:47 PST, Rob Buis
no flags
Patch (15.08 KB, patch)
2023-01-17 02:18 PST, Rob Buis
no flags
Patch (15.56 KB, patch)
2023-01-17 12:24 PST, Rob Buis
no flags
Patch (13.11 KB, patch)
2023-01-18 04:19 PST, Rob Buis
no flags
Patch (16.42 KB, patch)
2023-01-23 01:47 PST, Rob Buis
no flags
Patch (5.80 KB, patch)
2023-01-29 11:54 PST, Rob Buis
no flags
Patch (7.02 KB, patch)
2023-01-30 13:45 PST, Rob Buis
no flags
Patch (7.21 KB, patch)
2023-01-31 09:19 PST, Rob Buis
no flags
Patch (20.90 KB, patch)
2023-02-20 09:34 PST, Rob Buis
no flags
Patch (21.60 KB, patch)
2023-02-20 13:31 PST, Rob Buis
no flags
Patch (24.74 KB, patch)
2023-02-21 02:17 PST, Rob Buis
ews-feeder: commit-queue-
Rob Buis
Comment 1 2022-03-02 08:20:38 PST
Created attachment 453614 [details] Initial implementation Initial implementation
Rob Buis
Comment 2 2022-03-02 13:56:51 PST
Created attachment 453656 [details] Improved patch Improved patch.
Radar WebKit Bug Importer
Comment 3 2022-03-09 08:19:16 PST
Rob Buis
Comment 4 2022-04-22 03:10:31 PDT
Created attachment 458128 [details] Rebase Rebase
Rob Buis
Comment 5 2022-05-18 07:25:04 PDT
Created attachment 459542 [details] Remove ChangeLogs Remove ChangeLogs.
cathiechen
Comment 6 2022-05-26 09:50:51 PDT
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?
Rob Buis
Comment 7 2022-05-26 09:57:33 PDT
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.
cathiechen
Comment 8 2022-06-03 08:29:07 PDT
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.
Rob Buis
Comment 9 2022-11-01 07:51:11 PDT
Rob Buis
Comment 10 2022-11-02 07:24:49 PDT
Rob Buis
Comment 11 2022-11-22 07:36:51 PST
Rob Buis
Comment 12 2022-11-23 07:31:05 PST
cathiechen
Comment 13 2022-11-23 08:44:20 PST
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;
Rob Buis
Comment 14 2022-11-23 11:06:51 PST
Rob Buis
Comment 15 2022-11-24 13:57:44 PST
Rob Buis
Comment 16 2022-11-25 01:58:40 PST
Rob Buis
Comment 17 2022-11-25 03:36:08 PST
Rob Buis
Comment 18 2022-11-25 10:20:09 PST
Rob Buis
Comment 19 2022-12-01 03:10:37 PST
Rob Buis
Comment 20 2022-12-16 01:47:52 PST
Rob Buis
Comment 21 2023-01-16 03:33:25 PST
Rob Buis
Comment 22 2023-01-16 06:47:01 PST
Rob Buis
Comment 23 2023-01-17 02:18:05 PST
Rob Buis
Comment 24 2023-01-17 12:24:04 PST
EWS Watchlist
Comment 25 2023-01-17 12:38:52 PST
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
Rob Buis
Comment 26 2023-01-18 04:19:59 PST
Rob Buis
Comment 27 2023-01-18 06:37:10 PST
Rob Buis
Comment 28 2023-01-23 01:47:25 PST
Rob Buis
Comment 29 2023-01-29 11:54:24 PST
Rob Buis
Comment 30 2023-01-30 13:45:39 PST
Rob Buis
Comment 31 2023-01-31 09:19:25 PST
Rob Buis
Comment 32 2023-02-02 10:39:03 PST
Rob Buis
Comment 33 2023-02-20 09:34:48 PST
Rob Buis
Comment 34 2023-02-20 13:31:42 PST
Rob Buis
Comment 35 2023-02-21 02:17:58 PST
Tim Nguyen (:ntim)
Comment 36 2023-09-21 10:26:44 PDT
EWS
Comment 37 2023-09-22 06:47:25 PDT
Committed 268310@main (faa0935aebd5): <https://commits.webkit.org/268310@main> Reviewed commits have been landed. Closing PR #8763 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.