ladybird/Libraries/LibWeb
Andreas Kling e1a24edfa9 LibWeb: Reorganize layout system in terms of formatting contexts
This is a first (huge) step towards modernizing the layout architecture
and bringing it closer to spec language.

Layout is now performed by a stack of formatting contexts, operating on
the box tree (or layout tree, if you will.)

There are currently three types of formatting context:

- BlockFormattingContext (BFC)
- InlineFormattingContext (IFC)
- TableFormattingContext (TFC)

Document::layout() creates the initial BlockFormattingContext (BFC)
which lays out the initial containing block (ICB), and then we recurse
through the tree, creating BFC, IFC or TFC as appropriate and handing
over control at the context boundaries.

The majority of this patch is just refactoring the old logic spread out
in LayoutBlock and LayoutTableRowGroup, and turning into these context
classes instead. A lot more cleanup will be needed.

There are many architectural wins here, the main one being that layout
is no longer performed by boxes themselves, which gives us much greater
flexibility in the outer/inner layout of a given box.
2020-11-22 14:36:56 +01:00
..
Bindings LibWeb: Use standardized encoding names, add encoding attribute to document 2020-11-14 10:14:03 +01:00
CodeGenerators Everywhere: Add missing <AK/ByteBuffer.h> includes 2020-11-15 13:11:21 +01:00
CSS LibWeb: Remove ancient HTML_DEBUG debug logging 2020-11-19 23:10:21 +01:00
DOM LibWeb: Reorganize layout system in terms of formatting contexts 2020-11-22 14:36:56 +01:00
HighResolutionTime AK: Really disallow making OwnPtrs from refcounted types 2020-11-03 19:14:34 +01:00
HTML LibWeb: Use standardized encoding names, add encoding attribute to document 2020-11-14 10:14:03 +01:00
Layout LibWeb: Reorganize layout system in terms of formatting contexts 2020-11-22 14:36:56 +01:00
Loader LibWeb: Use standardized encoding names, add encoding attribute to document 2020-11-14 10:14:03 +01:00
Page LibWeb: Remove ancient HTML_DEBUG debug logging 2020-11-19 23:10:21 +01:00
Painting LibWeb: Add a basic SVGContext object, add to PaintContext 2020-10-10 23:28:41 +02:00
Scripts LibWeb: Move CSS classes into the Web::CSS namespace 2020-07-26 20:05:15 +02:00
SVG LibWeb: Add initial implementation of foreign content parsing 2020-10-22 15:24:42 +02:00
Tests LibWeb: Add initial implementation of foreign content parsing 2020-10-22 15:24:42 +02:00
UIEvents LibWeb: Oops, provide the correct WrapperType for UIEvent 2020-07-28 19:40:11 +02:00
CMakeLists.txt LibWeb: Reorganize layout system in terms of formatting contexts 2020-11-22 14:36:56 +01:00
DOMTreeModel.cpp LibWeb: Implement <template> parsing 2020-08-21 11:57:11 +02:00
DOMTreeModel.h LibGUI: Move GUI::Model::Role to GUI::ModelRole 2020-08-16 16:44:09 +02:00
Dump.cpp LibWeb: Implement <template> parsing 2020-08-21 11:57:11 +02:00
Dump.h LibWeb: Remove ancient HTML_DEBUG debug logging 2020-11-19 23:10:21 +01:00
FontCache.cpp LibWeb: Rename directory LibHTML => LibWeb 2020-03-07 10:32:51 +01:00
FontCache.h LibWeb: Use FlyString in FontCache keys 2020-05-26 23:45:48 +02:00
Forward.h LibWeb: Reorganize layout system in terms of formatting contexts 2020-11-22 14:36:56 +01:00
InProcessWebView.cpp LibWeb: Remove ancient HTML_DEBUG debug logging 2020-11-19 23:10:21 +01:00
InProcessWebView.h LibGUI: Add Widget focus policies 2020-10-30 17:03:28 +01:00
LayoutTreeModel.cpp LibGUI: Move GUI::Model::Role to GUI::ModelRole 2020-08-16 16:44:09 +02:00
LayoutTreeModel.h LibGUI: Move GUI::Model::Role to GUI::ModelRole 2020-08-16 16:44:09 +02:00
Namespace.cpp LibWeb: Add namespace to Element 2020-10-22 15:24:42 +02:00
Namespace.h LibWeb: Add namespace to Element 2020-10-22 15:24:42 +02:00
Origin.h LibWeb: Add Origin::is_same(const Origin&) 2020-09-22 20:10:20 +02:00
OutOfProcessWebView.cpp LibWeb: Don't attempt to create new bitmap for zero-size OOPWV 2020-11-08 17:21:11 +01:00
OutOfProcessWebView.h LibGUI: Add Widget focus policies 2020-10-30 17:03:28 +01:00
QualifiedName.h LibWeb: Add namespace to Element 2020-10-22 15:24:42 +02:00
StylePropertiesModel.cpp LibGUI: Move GUI::Model::Role to GUI::ModelRole 2020-08-16 16:44:09 +02:00
StylePropertiesModel.h LibGUI: Move GUI::Model::Role to GUI::ModelRole 2020-08-16 16:44:09 +02:00
TreeNode.h LibWeb: Break reference cycles so DOM::Document actually gets deleted 2020-10-22 23:41:32 +02:00
URLEncoder.cpp LibWeb: Use the URL encoder from AK instead of rolling a custom one 2020-06-15 17:56:00 +02:00
URLEncoder.h Meta+LibHTTP through LibWeb: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
WebContentClient.cpp LibWeb: Support window.alert() in multi-process context 2020-09-12 14:49:29 +02:00
WebContentClient.h LibWeb: Support window.alert() in multi-process context 2020-09-12 14:49:29 +02:00
WebViewHooks.h LibWeb: Add a PageClient callback for image context menu requests 2020-10-02 19:02:47 +02:00