|
|
WIP version of new margin collapsing logic + support of empty blocks with floats
This patch is for *preview* only.
High level design overview:
- Changed the direction of block offset calculation for fragment(top to bottom approach)
- new NGFloatingObject struct that holds pointers to the floating fragment, CS and node needed to position a float.
- Floats are bubbled up from empty fragments to be positioned by the next non empty block that can determine its position in space.
- Floats' constraint space is modified on their way up so they can be positioned with correct offset when its time.
- On their way up floats attached to the 1st parent that has at least one non empty child.
Things that are not supported at this moment:
- Writing mode. Empty blocks may have different writing mode.
- Clearance.
- Bunch of other edge cases....
BUG=
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+413 lines, -422 lines) |
Patch |
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
|
View
|
1
2
|
3 chunks |
+10 lines, -29 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
|
View
|
1
2
|
15 chunks |
+235 lines, -176 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
|
View
|
1
2
|
22 chunks |
+48 lines, -38 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_block_node.h
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_box_fragment.h
|
View
|
1
2
|
1 chunk |
+3 lines, -1 line |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_box_fragment.cc
|
View
|
1
2
|
1 chunk |
+9 lines, -4 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
|
View
|
1
2
|
6 chunks |
+10 lines, -17 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
|
View
|
1
2
|
3 chunks |
+9 lines, -5 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
|
View
|
1
2
|
3 chunks |
+12 lines, -1 line |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
|
View
|
1
2
|
4 chunks |
+10 lines, -2 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
|
View
|
1
2
|
2 chunks |
+3 lines, -2 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
|
View
|
1
2
|
5 chunks |
+13 lines, -8 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
|
View
|
1
2
|
3 chunks |
+9 lines, -16 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
|
View
|
|
1 chunk |
+3 lines, -4 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
|
View
|
1
2
|
3 chunks |
+8 lines, -25 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
|
View
|
1
2
|
2 chunks |
+10 lines, -3 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
|
View
|
1
2
|
2 chunks |
+4 lines, -2 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_units.h
|
View
|
1
2
|
3 chunks |
+9 lines, -26 lines |
0 comments
|
Download
|
 |
M |
third_party/WebKit/Source/core/layout/ng/ng_units.cc
|
View
|
1
2
|
2 chunks |
+5 lines, -63 lines |
0 comments
|
Download
|
Total messages: 3 (3 generated)
|