Layout: Implement CSS Grid using taffy (#32619)

* Add layout.grid.enabled pref

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Add taffy dependency

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Import taffy <-> stylo conversion code from taffy_stylo crate

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Add `Grid` variant to DisplayInside

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Implement CSS Grid using Taffy

Signed-off-by: Nico Burns <nico@nicoburns.com>

Import full stylo_taffy crate

Signed-off-by: Nico Burns <nico@nicoburns.com>

Squashed PR feedback changes

Deduplicate is_document_only_whitespace

Signed-off-by: Nico Burns <nico@nicoburns.com>

Import taffy::AvailableSpace

Signed-off-by: Nico Burns <nico@nicoburns.com>

Rename FlexContext to TaffyContainerContext

Signed-off-by: Nico Burns <nico@nicoburns.com>

Eliminate references to flexbox in taffy/layout module

Signed-off-by: Nico Burns <nico@nicoburns.com>

Use constructors for geom types

Signed-off-by: Nico Burns <nico@nicoburns.com>

Remove comment about abspos elements splitting contiguous text runs

Signed-off-by: Nico Burns <nico@nicoburns.com>

Remove reference to flexbox in taffy/construct

Signed-off-by: Nico Burns <nico@nicoburns.com>

Deduplicate construction of flexbox/grid containers

Signed-off-by: Nico Burns <nico@nicoburns.com>

Make anonymous text runs InFlow

Signed-off-by: Nico Burns <nico@nicoburns.com>

Remove commented code

Signed-off-by: Nico Burns <nico@nicoburns.com>

Update comments

Signed-off-by: Nico Burns <nico@nicoburns.com>

Inline/vendor the stylo/taffy interop code

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Update test expectations

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Fix nits from PR review

Signed-off-by: Nico Burns <nico@nicoburns.com>

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
This commit is contained in:
Nico Burns 2024-11-22 09:21:01 +13:00 committed by GitHub
parent 339062c890
commit 6cbd89dbb0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
508 changed files with 2057 additions and 10408 deletions

View file

@ -26,18 +26,12 @@
[.child 11]
expected: FAIL
[.child 13]
expected: FAIL
[.child 14]
expected: FAIL
[.child 16]
expected: FAIL
[.child 17]
expected: FAIL
[.child 18]
expected: FAIL
@ -50,9 +44,6 @@
[.child 23]
expected: FAIL
[.child 24]
expected: FAIL
[.child 26]
expected: FAIL
@ -80,18 +71,12 @@
[.child 35]
expected: FAIL
[.child 37]
expected: FAIL
[.child 38]
expected: FAIL
[.child 40]
expected: FAIL
[.child 41]
expected: FAIL
[.child 42]
expected: FAIL
@ -104,9 +89,6 @@
[.child 47]
expected: FAIL
[.child 48]
expected: FAIL
[.child 50]
expected: FAIL
@ -134,18 +116,12 @@
[.child 59]
expected: FAIL
[.child 61]
expected: FAIL
[.child 62]
expected: FAIL
[.child 64]
expected: FAIL
[.child 65]
expected: FAIL
[.child 66]
expected: FAIL
@ -158,5 +134,29 @@
[.child 71]
expected: FAIL
[.child 72]
[.child 15]
expected: FAIL
[.child 20]
expected: FAIL
[.child 21]
expected: FAIL
[.child 39]
expected: FAIL
[.child 44]
expected: FAIL
[.child 45]
expected: FAIL
[.child 63]
expected: FAIL
[.child 68]
expected: FAIL
[.child 69]
expected: FAIL