| Index: third_party/WebKit/Source/core/layout/ng/README.md
|
| diff --git a/third_party/WebKit/Source/core/layout/ng/README.md b/third_party/WebKit/Source/core/layout/ng/README.md
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..069ae6621344aeccd67b8de473f068d739ebd9e5
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Source/core/layout/ng/README.md
|
| @@ -0,0 +1,63 @@
|
| +# LayoutNG #
|
| +
|
| +This directory contains the implementation of Blink's new layout engine
|
| +"LayoutNG".
|
| +
|
| +This README can be viewed in formatted form [here](https://chromium.googlesource.com/chromium/src/+/master/third_party/WebKit/Source/core/layout/ng/README.md).
|
| +
|
| +The original design document can be seen [here](https://docs.google.com/document/d/1uxbDh4uONFQOiGuiumlJBLGgO4KDWB8ZEkp7Rd47fw4/edit).
|
| +
|
| +## High level overview ##
|
| +
|
| +CSS has many different types of layout modes, controlled by the `display`
|
| +property. (In addition to this specific HTML elements have custom layout modes
|
| +as well). For each different type of layout, we have a
|
| +[NGLayoutAlgorithm](ng_layout_algorithm.h).
|
| +
|
| +The input to an [NGLayoutAlgorithm](ng_layout_algorithm.h) is the same tuple
|
| +for every kind of layout:
|
| +
|
| + - The [NGBox](ng_box.h) which we are currently performing layout for. The
|
| + following information is accessed:
|
| +
|
| + - The [ComputedStyle](../../style/ComputedStyle.h) for the node which we are
|
| + currently performing laying for.
|
| +
|
| + - The list of children [NGBox](ng_box.h)es to perform layout upon, and their
|
| + respective style objects.
|
| +
|
| + - The [NGConstraintSpace](ng_constraint_space.h) which represents the "space"
|
| + in which the current layout should produce a
|
| + [NGPhysicalFragment](ng_physical_fragment.h).
|
| +
|
| + - TODO(layout-dev): BreakTokens should go here once implemented.
|
| +
|
| +The current layout should not access any information outside this set, this
|
| +will break invariants in the system. (As a concrete example we intend to cache
|
| +[NGPhysicalFragment](ng_physical_fragment.h)s based on this set, accessing
|
| +additional information outside this set will break caching behaviour).
|
| +
|
| +### Box Tree ###
|
| +
|
| +TODO(layout-dev): Document with lots of pretty pictures.
|
| +
|
| +### Fragment Tree ###
|
| +
|
| +TODO(layout-dev): Document with lots of pretty pictures.
|
| +
|
| +### Constraint Spaces ###
|
| +
|
| +TODO(layout-dev): Document with lots of pretty pictures.
|
| +
|
| +## Block Flow Algorithm ##
|
| +
|
| +This section contains details specific to the
|
| +[NGBlockLayoutAlgorithm](ng_block_layout_algorithm.h).
|
| +
|
| +### Collapsing Margins ###
|
| +
|
| +TODO(layout-dev): Document with lots of pretty pictures.
|
| +
|
| +### Float Positioning ###
|
| +
|
| +TODO(layout-dev): Document with lots of pretty pictures.
|
|
|