ladybird/Userland/Libraries/LibWeb/Layout
Andreas Kling aa72ebf7aa LibWeb: Use copy-on-write to make cloning a FormattingState much cheaper
Instead of making a full copy of every NodeState when cloning a
FormattingState, we make NodeState ref-counted and implement a basic
copy-on-write mechanism.

FormattingState::get_mutable() now makes a deep copy of the NodeState
when first accessed *if* it is shared with other FormattingStates.
2022-02-28 14:17:44 +01:00
..
BlockContainer.cpp LibWeb: Start making our layout system "transactional" 2022-02-21 18:35:12 +01:00
BlockContainer.h LibWeb: Start making our layout system "transactional" 2022-02-21 18:35:12 +01:00
BlockFormattingContext.cpp LibWeb: Pass state to create_independent_formatting_context_if_needed() 2022-02-28 14:17:44 +01:00
BlockFormattingContext.h LibWeb: Create list-item markers during layout tree construction 2022-02-21 18:35:12 +01:00
Box.cpp LibWeb: Use coordinate instead of WeakPtr for box->fragment connection 2022-02-28 14:17:44 +01:00
Box.h LibWeb: Store Layout::Box overflow data in Optional instead of OwnPtr 2022-02-28 14:17:44 +01:00
BoxModelMetrics.cpp
BoxModelMetrics.h
BreakNode.cpp LibWeb: Remove old Layout::Node::split_into_lines() API 2022-01-23 01:22:41 +01:00
BreakNode.h LibWeb: Remove old Layout::Node::split_into_lines() API 2022-01-23 01:22:41 +01:00
ButtonBox.cpp LibWeb: Rename "frame" to "browsing_context" in various places 2022-02-06 16:22:58 +01:00
ButtonBox.h
CanvasBox.cpp
CanvasBox.h
CheckBox.cpp LibWeb: Make <input type=checkbox> fire click events when clicked :^) 2022-02-17 16:33:55 +01:00
CheckBox.h
FlexFormattingContext.cpp LibWeb: Rename FormattingState::ensure() -> get_mutable() 2022-02-21 18:35:12 +01:00
FlexFormattingContext.h LibWeb: Start making our layout system "transactional" 2022-02-21 18:35:12 +01:00
FormattingContext.cpp LibWeb: Store bottom edge location with each LineBox 2022-02-28 14:17:44 +01:00
FormattingContext.h LibWeb: Pass state to create_independent_formatting_context_if_needed() 2022-02-28 14:17:44 +01:00
FormattingState.cpp LibWeb: Use copy-on-write to make cloning a FormattingState much cheaper 2022-02-28 14:17:44 +01:00
FormattingState.h LibWeb: Use copy-on-write to make cloning a FormattingState much cheaper 2022-02-28 14:17:44 +01:00
FrameBox.cpp LibWeb: Omit origin check for content document in FrameBox::paint() 2022-02-16 22:51:25 +00:00
FrameBox.h
ImageBox.cpp LibWeb: Add support for CSS image-rendering property 2022-02-19 11:38:46 +01:00
ImageBox.h
InitialContainingBlock.cpp LibWeb: Always rebuild stacking context tree during layout 2022-02-12 22:30:50 +01:00
InitialContainingBlock.h
InlineFormattingContext.cpp LibWeb: Add border box top/bottom metrics to line box fragments 2022-02-26 09:24:40 +01:00
InlineFormattingContext.h LibWeb: Start making our layout system "transactional" 2022-02-21 18:35:12 +01:00
InlineLevelIterator.cpp LibWeb: Make InlineLevelIterator not enter into inline-block boxes 2022-02-26 09:27:20 +01:00
InlineLevelIterator.h LibWeb: Start making our layout system "transactional" 2022-02-21 18:35:12 +01:00
InlineNode.cpp LibWeb: Paint InlineNode overlay in correct phase, skip pseudo-elements 2022-02-25 19:35:34 +01:00
InlineNode.h LibWeb: Make display: foo box constructors take the Element by pointer 2022-02-25 19:35:34 +01:00
Label.cpp LibWeb: Implement reverse lookup to labels from their labelable nodes 2022-02-16 19:18:57 +01:00
Label.h LibWeb: Support implicit <label> targets 2022-02-15 23:24:41 +01:00
LabelableNode.h Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
LayoutPosition.cpp
LayoutPosition.h
LineBox.cpp LibWeb: Use Vector<LineBoxFragment> instead of NonnullOwnPtrVector 2022-02-28 14:17:44 +01:00
LineBox.h LibWeb: Store bottom edge location with each LineBox 2022-02-28 14:17:44 +01:00
LineBoxFragment.cpp
LineBoxFragment.h LibWeb: Use coordinate instead of WeakPtr for box->fragment connection 2022-02-28 14:17:44 +01:00
LineBuilder.cpp LibWeb: Store bottom edge location with each LineBox 2022-02-28 14:17:44 +01:00
LineBuilder.h LibWeb: Start making our layout system "transactional" 2022-02-21 18:35:12 +01:00
ListItemBox.cpp LibWeb: Make display: foo box constructors take the Element by pointer 2022-02-25 19:35:34 +01:00
ListItemBox.h LibWeb: Make display: foo box constructors take the Element by pointer 2022-02-25 19:35:34 +01:00
ListItemMarkerBox.cpp LibWeb: Implement the ::marker pseudo-element 2022-02-25 19:35:34 +01:00
ListItemMarkerBox.h LibWeb: Create list-item markers during layout tree construction 2022-02-21 18:35:12 +01:00
Node.cpp LibWeb: Improve Layout::Box has-definite-size? computation 2022-02-28 14:17:44 +01:00
Node.h LibWeb: Start making our layout system "transactional" 2022-02-21 18:35:12 +01:00
Progress.cpp LibWeb: Add basic implementation of progress bar element 2022-02-16 15:34:08 -05:00
Progress.h LibWeb: Add basic implementation of progress bar element 2022-02-16 15:34:08 -05:00
RadioButton.cpp LibWeb: Make <input type=checkbox> honor the "checked" attribute 2022-02-15 23:24:41 +01:00
RadioButton.h Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
ReplacedBox.cpp LibWeb: Remove old Layout::Node::split_into_lines() API 2022-01-23 01:22:41 +01:00
ReplacedBox.h LibWeb: Remove old Layout::Node::split_into_lines() API 2022-01-23 01:22:41 +01:00
SVGBox.cpp LibWeb: Stop treating all SVG elements as inline 2022-02-16 21:47:53 +01:00
SVGBox.h LibWeb: Add const versions of SVGBox::dom_node() and friends 2022-02-11 21:38:27 +01:00
SVGFormattingContext.cpp LibWeb: Rename FormattingState::ensure() -> get_mutable() 2022-02-21 18:35:12 +01:00
SVGFormattingContext.h LibWeb: Start making our layout system "transactional" 2022-02-21 18:35:12 +01:00
SVGGeometryBox.cpp LibWeb: Give SVG geometry elements a position 2022-02-16 21:47:53 +01:00
SVGGeometryBox.h LibWeb: Rename SVGPathBox -> SVGGeometryBox 2022-02-11 21:38:27 +01:00
SVGGraphicsBox.cpp
SVGGraphicsBox.h LibWeb: Add const versions of SVGBox::dom_node() and friends 2022-02-11 21:38:27 +01:00
SVGSVGBox.cpp LibWeb: Give SVG geometry elements a position 2022-02-16 21:47:53 +01:00
SVGSVGBox.h
TableBox.cpp
TableBox.h
TableCellBox.cpp
TableCellBox.h
TableFormattingContext.cpp LibWeb: Compute table cell height after doing its inside layout 2022-02-21 18:35:12 +01:00
TableFormattingContext.h LibWeb: Start making our layout system "transactional" 2022-02-21 18:35:12 +01:00
TableRowBox.cpp
TableRowBox.h
TableRowGroupBox.cpp LibWeb: Make display: foo box constructors take the Element by pointer 2022-02-25 19:35:34 +01:00
TableRowGroupBox.h LibWeb: Make display: foo box constructors take the Element by pointer 2022-02-25 19:35:34 +01:00
TextNode.cpp LibWeb: Paint full bitmap font glyphs, even if there's overlap 2022-02-26 09:32:52 +01:00
TextNode.h LibWeb: Remove old Layout::Node::split_into_lines() API 2022-01-23 01:22:41 +01:00
TreeBuilder.cpp LibWeb: Implement the ::marker pseudo-element 2022-02-25 19:35:34 +01:00
TreeBuilder.h