1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 11:48:10 +00:00
serenity/Userland/Libraries/LibWeb
Andreas Kling f25203f245 LibWeb: Don't re-resolve "auto" flex item sizes after definitizing them
This is rather subtle and points to our architecture around definite
sizes not being exactly right, but...

At some points during flexbox layout, the spec tells us that the sizes
of certain flex items are considered definite from this point on.
We implement this by marking each item's associated UsedValues as
"has-definite-width/height".

However, this breaks code that tries to resolve computed "auto" sizes
by taking the corresponding size from the containing block. The end
result was that the 1st sizing pass in flexbox would find the right size
for an "auto" sized item, but the 2nd pass would override the correct
size with the containing block's content size in that axis instead.

To work around the issue, FFC now remembers when it "definitizes" an
item, and future attempts to resolve an "auto" computed size for that
value will bypass the computed-auto-is-resolved-against-containing-block
step of the algorithm. It's not perfect, and we'll need to think more
about how to really represent these intermediate states relating to
box sizes being definite..
2022-09-14 14:43:17 +02:00
..
Bindings LibWeb: Resolve two document-tree child browsing context count FIXMEs 2022-09-09 17:42:30 +01:00
Cookie Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Crypto LibWeb: Visit internal fields of Crypto in visit_edges 2022-09-12 20:14:58 -04:00
CSS LibWeb: Treat unimplemented grid-track-size syntax as "auto" for now 2022-09-14 14:43:17 +02:00
DOM LibWeb: Add a visit_edges for DOM/Event 2022-09-13 20:55:21 +02:00
DOMParsing Everywhere: Fix a variety of typos 2022-09-14 04:46:49 +00:00
Encoding LibWeb: Set prototype for both TextDecoder and AbortSignal 2022-09-09 20:47:43 +02:00
Fetch LibWeb: Make DOMException GC-allocated 2022-09-06 00:27:09 +02:00
FileAPI LibWeb: Make DOMException GC-allocated 2022-09-06 00:27:09 +02:00
Geometry LibWeb: Make DOMRect, DOMRectReadOnly and DOMRectList GC-allocated 2022-09-06 00:27:09 +02:00
HighResolutionTime LibWeb: Remove now-unused Bindings::Wrappable class 2022-09-06 00:27:09 +02:00
HTML LibWeb: Visit all edge-members in WorkerGlobalScope 2022-09-13 20:55:21 +02:00
Infra LibWeb: Add 'byte-{lower,upper}case' operations from the Infra spec 2022-07-14 00:42:26 +01:00
IntersectionObserver LibWeb: Make IntersectionObserver GC-allocated 2022-09-06 00:27:09 +02:00
Layout LibWeb: Don't re-resolve "auto" flex item sizes after definitizing them 2022-09-14 14:43:17 +02:00
Loader LibWeb+WebContent: Add abstraction layer for event loop and timers 2022-09-07 20:30:31 +02:00
MimeSniff LibWeb: Move Fetch infra into the Web::Fetch::Infrastructure namespace 2022-07-19 00:27:35 +01:00
NavigationTiming LibWeb: Remove now-unused Bindings::Wrappable class 2022-09-06 00:27:09 +02:00
Page LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
Painting Everywhere: Fix a variety of typos 2022-09-14 04:46:49 +00:00
Platform LibWeb+WebContent: Add abstraction layer for generic font families 2022-09-08 11:57:03 +02:00
RequestIdleCallback LibWeb: Make IdleDeadline GC-allocated 2022-09-06 00:27:09 +02:00
ResizeObserver LibWeb: Make ResizeObserver GC-allocated 2022-09-06 00:27:09 +02:00
Scripts Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Selection LibWeb: Make Selection GC-allocated 2022-09-06 00:27:09 +02:00
SVG LibWeb: Make DOMPoint and DOMPointReadOnly GC-allocated 2022-09-06 00:27:09 +02:00
Tests LibWeb: Capture <script> element's node document on execution 2021-12-21 13:50:00 -08:00
UIEvents LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
URL LibWeb: Remove now-unused Bindings::Wrappable class 2022-09-06 00:27:09 +02:00
WebAssembly LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
WebGL LibWeb: Add some missing includes 2022-09-13 20:55:21 +02:00
WebSockets LibWeb: Make DOMException GC-allocated 2022-09-06 00:27:09 +02:00
XHR LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
XML LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
CMakeLists.txt LibWeb+WebContent: Add abstraction layer for generic font families 2022-09-08 11:57:03 +02:00
Dump.cpp LibWeb: Show iframe URLs in layout tree dumps 2022-08-05 12:46:40 +02:00
Dump.h LibWeb: Implement initial CSSFontFaceRule and FontFace classes 2022-03-28 22:25:25 +02:00
FontCache.cpp LibGfx: Move other font-related files to LibGfx/Font/ 2022-04-09 23:48:18 +02:00
FontCache.h LibGfx: Move other font-related files to LibGfx/Font/ 2022-04-09 23:48:18 +02:00
Forward.h LibWeb+WebContent: Add abstraction layer for event loop and timers 2022-09-07 20:30:31 +02:00
idl_files.cmake LibWeb: Remove the NO_INSTANCE option now that all wrappers are gone 2022-09-06 00:27:09 +02:00
ImageDecoding.cpp LibWeb: Abstract the image decoding via Web::ImageDecoding::Decoder 2022-05-15 12:17:36 +02:00
ImageDecoding.h LibWeb: Abstract the image decoding via Web::ImageDecoding::Decoder 2022-05-15 12:17:36 +02:00
Namespace.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Namespace.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
TreeNode.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00