1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-25 07:35:07 +00:00
serenity/Userland/Libraries/LibWeb/DOM
Andreas Kling 9c44634ca5 LibWeb: Reorganize layout algorithms around available space
This is a big and messy change, and here's the gist:

- AvaliableSpace is now 2x AvailableSize (width and height)

- Layout algorithms are redesigned around the idea of available space

- When doing layout across nested formatting contexts, the parent
  context tells the child context how much space is available for the
  child's root box in both axes.

- "Available space" replaces "containing block width" in most places.

- The width and height in a box's UsedValues are considered to be
  definite after they're assigned to. Marking something as having
  definite size is no longer a separate step,

This probably introduces various regressions, but the big win here is
that our layout system now works with available space, just like the
specs are written. Fixing issues will be much easier going forward,
since you don't need to do nearly as much conversion from "spec logic"
to "LibWeb logic" as you previously did.
2022-10-02 21:14:02 +02:00
..
AbortController.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
AbortController.h LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
AbortController.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
AbortSignal.cpp LibWeb: Cleanup unecessary uses and includes of HTML::Window 2022-10-01 21:05:32 +01:00
AbortSignal.h LibWeb: Cleanup unecessary uses and includes of HTML::Window 2022-10-01 21:05:32 +01:00
AbortSignal.idl LibWeb: Replace ad-hoc EventHandler type with callback function typedef 2022-03-31 01:10:47 +02:00
AbstractRange.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
AbstractRange.h LibWeb: Remove WRAPPER_HACK() macro 2022-09-21 21:12:24 +01:00
AbstractRange.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
Attr.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
Attr.h LibWeb: Remove WRAPPER_HACK() macro 2022-09-21 21:12:24 +01:00
Attr.idl LibWeb: Rename Attribute to Attr 2022-09-18 02:08:01 +02:00
CDATASection.cpp LibWeb: Cleanup unecessary uses and includes of HTML::Window 2022-10-01 21:05:32 +01:00
CDATASection.h LibWeb: Remove WRAPPER_HACK() macro 2022-09-21 21:12:24 +01:00
CDATASection.idl LibWeb: Add CDATASection 2022-06-27 22:53:04 +01:00
CharacterData.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
CharacterData.h LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
CharacterData.idl LibWeb: Resolve circular IDL imports 2022-07-30 13:20:47 +02:00
ChildNode.h LibWeb: Move ExceptionOr from DOM/ to WebIDL/ 2022-09-25 19:13:31 +01:00
ChildNode.idl LibWeb: Resolve circular IDL imports 2022-07-30 13:20:47 +02:00
Comment.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
Comment.h LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
Comment.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
CustomEvent.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
CustomEvent.h LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
CustomEvent.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
Document.cpp LibWeb: Reorganize layout algorithms around available space 2022-10-02 21:14:02 +02:00
Document.h LibWeb: Cleanup unecessary uses and includes of HTML::Window 2022-10-01 21:05:32 +01:00
Document.idl LibWeb: Implement basic support for Document.all 2022-09-18 02:17:29 +02:00
DocumentFragment.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
DocumentFragment.h LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
DocumentFragment.idl LibWeb: Resolve circular IDL imports 2022-07-30 13:20:47 +02:00
DocumentLoadEventDelayer.cpp LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
DocumentLoadEventDelayer.h LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
DocumentType.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
DocumentType.h LibWeb: Remove WRAPPER_HACK() macro 2022-09-21 21:12:24 +01:00
DocumentType.idl LibWeb: Extract the ChildNode IDL mixin 2022-07-29 17:15:49 +01:00
DOMEventListener.cpp LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
DOMEventListener.h LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
DOMImplementation.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
DOMImplementation.h LibWeb: Move ExceptionOr from DOM/ to WebIDL/ 2022-09-25 19:13:31 +01:00
DOMImplementation.idl LibWeb: Support DOMImplementation.createDocument() doctype parameter 2022-03-02 09:18:19 +01:00
DOMTokenList.cpp LibWeb: Cleanup unecessary uses and includes of HTML::Window 2022-10-01 21:05:32 +01:00
DOMTokenList.h LibWeb: Move ExceptionOr from DOM/ to WebIDL/ 2022-09-25 19:13:31 +01:00
DOMTokenList.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
Element.cpp LibWeb: Remove unecessary dependence on Window from Geometry classes 2022-10-01 21:05:32 +01:00
Element.h LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
Element.idl LibWeb: Implement Element.insertAdjacentText 2022-10-01 14:06:40 +02:00
ElementFactory.cpp LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
ElementFactory.h LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
Event.cpp LibWeb: Cleanup unecessary uses and includes of HTML::Window 2022-10-01 21:05:32 +01:00
Event.h LibWeb: Cleanup unecessary uses and includes of HTML::Window 2022-10-01 21:05:32 +01:00
Event.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
EventDispatcher.cpp LibWeb: Move IDLAbstractOperations from Bindings/ to WebIDL/ 2022-09-24 19:31:39 +01:00
EventDispatcher.h LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
EventHandler.idl LibWeb: Implement WindowEventHandlers 2022-06-29 21:21:50 +01:00
EventTarget.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
EventTarget.h LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
EventTarget.idl LibWeb: Add support for the options variant of {add,remove}EventListener 2022-02-20 02:03:24 +01:00
HTMLCollection.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
HTMLCollection.h LibWeb: Remove WRAPPER_HACK() macro 2022-09-21 21:12:24 +01:00
HTMLCollection.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
IDLEventListener.cpp LibWeb: Cleanup unecessary uses and includes of HTML::Window 2022-10-01 21:05:32 +01:00
IDLEventListener.h LibWeb: Move CallbackType from Bindings/ to WebIDL/ 2022-09-24 19:31:39 +01:00
InnerHTML.idl LibWeb: Resolve circular IDL imports 2022-07-30 13:20:47 +02:00
LiveNodeList.cpp LibWeb: Cleanup unecessary uses and includes of HTML::Window 2022-10-01 21:05:32 +01:00
LiveNodeList.h LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
MutationObserver.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
MutationObserver.h LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
MutationObserver.idl LibWeb: Introduce Mutation{Record,Observer} and observer microtasks 2022-07-11 22:35:08 +02:00
MutationRecord.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
MutationRecord.h LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
MutationRecord.idl LibWeb: Introduce Mutation{Record,Observer} and observer microtasks 2022-07-11 22:35:08 +02:00
MutationType.cpp LibWeb: Introduce Mutation{Record,Observer} and observer microtasks 2022-07-11 22:35:08 +02:00
MutationType.h LibWeb: Introduce Mutation{Record,Observer} and observer microtasks 2022-07-11 22:35:08 +02:00
NamedNodeMap.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
NamedNodeMap.h LibWeb: Move ExceptionOr from DOM/ to WebIDL/ 2022-09-25 19:13:31 +01:00
NamedNodeMap.idl LibWeb: Rename Attribute to Attr 2022-09-18 02:08:01 +02:00
Node.cpp LibWeb: Remove unused DOM::Node::window helper method 2022-10-01 21:05:32 +01:00
Node.h LibWeb: Remove unused DOM::Node::window helper method 2022-10-01 21:05:32 +01:00
Node.idl LibWeb: Bring Node closer to spec 2022-04-12 19:42:16 +02:00
NodeFilter.cpp LibWeb: Cleanup unecessary uses and includes of HTML::Window 2022-10-01 21:05:32 +01:00
NodeFilter.h LibWeb: Move CallbackType from Bindings/ to WebIDL/ 2022-09-24 19:31:39 +01:00
NodeFilter.idl LibWeb: Add basic support for DOM's NodeIterator and NodeFilter 2022-03-09 16:43:00 +01:00
NodeIterator.cpp LibWeb: Cleanup unecessary uses and includes of HTML::Window 2022-10-01 21:05:32 +01:00
NodeIterator.h LibWeb: Remove WRAPPER_HACK() macro 2022-09-21 21:12:24 +01:00
NodeIterator.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
NodeList.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
NodeList.h LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
NodeList.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
NodeOperations.cpp LibWeb: Move ExceptionOr from DOM/ to WebIDL/ 2022-09-25 19:13:31 +01:00
NodeOperations.h LibWeb: Move ExceptionOr from DOM/ to WebIDL/ 2022-09-25 19:13:31 +01:00
NonDocumentTypeChildNode.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
NonElementParentNode.h LibWeb: Add some missing includes 2022-09-13 20:55:21 +02:00
ParentNode.cpp LibWeb: Cleanup unecessary uses and includes of HTML::Window 2022-10-01 21:05:32 +01:00
ParentNode.h LibWeb: Move ExceptionOr from DOM/ to WebIDL/ 2022-09-25 19:13:31 +01:00
ParentNode.idl LibWeb: Resolve circular IDL imports 2022-07-30 13:20:47 +02:00
Position.cpp LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
Position.h LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
ProcessingInstruction.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ProcessingInstruction.h LibWeb: Remove WRAPPER_HACK() macro 2022-09-21 21:12:24 +01:00
ProcessingInstruction.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
QualifiedName.cpp LibWeb: Share QualifiedName data between identical instances 2022-02-19 14:45:59 +01:00
QualifiedName.h LibWeb: Share QualifiedName data between identical instances 2022-02-19 14:45:59 +01:00
Range.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
Range.h LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
Range.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
ShadowRoot.cpp LibWeb: Move ExceptionOr from DOM/ to WebIDL/ 2022-09-25 19:13:31 +01:00
ShadowRoot.h LibWeb: Move ExceptionOr from DOM/ to WebIDL/ 2022-09-25 19:13:31 +01:00
ShadowRoot.idl LibWeb: Resolve circular IDL imports 2022-07-30 13:20:47 +02:00
StaticNodeList.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
StaticNodeList.h LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
StaticRange.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
StaticRange.h LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
StaticRange.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
Text.cpp LibWeb: Remove unecessary dependence on Window from DOM and WebIDL 2022-10-01 21:05:32 +01:00
Text.h LibWeb: Cleanup unecessary uses and includes of HTML::Window 2022-10-01 21:05:32 +01:00
Text.idl LibWeb: Implement Text.splitText(offset) 2022-03-21 19:14:50 +01:00
TreeWalker.cpp LibWeb: Cleanup unecessary uses and includes of HTML::Window 2022-10-01 21:05:32 +01:00
TreeWalker.h LibWeb: Remove WRAPPER_HACK() macro 2022-09-21 21:12:24 +01:00
TreeWalker.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00