Layout for CSS block-level elements.
Creates flows and fragments from a DOM tree via a bottom-up, incremental traversal of the DOM.
Data needed by layout.
Layout for elements with a CSS display
property of flex
.
Servoβs experimental layout system builds a tree of Flow
and Fragment
objects and solves
layout constraints to obtain positions and display attributes of tree nodes. Positions are
computed in several tree traversals driven by the fundamental data dependencies required by
inline and block layout.
Reference-counted pointers to flows.
The Fragment
type, which represents the leaves of the layout tree.
The generated content assignment phase.
Supports writing a trace file created during each layout scope
that can be viewed by an external tool to make layout debugging easier.
Utility functions for doubly-linked lists.
Layout for elements with a CSS display
property of list-item
. These elements consist of a
block and an extra inline fragment for the marker.
Borders, padding, and margins.
Implements parallel traversals over the DOM and flow trees.
A persistent, thread-safe singly-linked list.
Utilities for querying the layout, as needed by layout.
Implements sequential traversals over the DOM and flow trees.
CSS table formatting contexts.
CSS table formatting contexts.
CSS table formatting contexts.
CSS table formatting contexts.
CSS table formatting contexts.
CSS table formatting contexts.
CSS tables.
Text layout.
Traversals over the DOM and flow trees, running the layout computations.
A safe wrapper for DOM nodes that prevents layout from mutating the DOM, from letting DOM nodes
escape, and from generally doing anything that it isnβt supposed to. This is accomplished via
a simple whitelist of allowed operations, along with some lifetime magic to prevent nodes from
escaping.