DescriptionRemove multicol special-cases from invalidation and the pre-paint tree walk
Multicolumn spanners paint out-of-flow through placeholder LayoutObjects
but their paint properties still follow the layout tree in DOM order[1].
This patch switches the pre-paint tree walk to be entirely DOM order
instead of having a special-case for the paint-order multicolumn
spanner. This patch also changes paint invalidation of multicolumn
to follow DOM ancestors.
With this approach, the pre-paint tree walk and paint invalidation
can be simplified, and only paint offset needs special adjustment
for multicolumn during the pre-paint tree walk.
[1] For example, the following layout tree:
LayoutBlockFlow DIV style="columns: 2"
LayoutMultiColumnFlowThread (anonymous)
LayoutBlockFlow (column spanner) DIV id="spanner"
LayoutMultiColumnSpannerPlaceholder (anonymous)
paint order:
LayoutBlockFlow DIV
LayoutMultiColumnFlowThread (anonymous)
LayoutMultiColumnSpannerPlaceholder (anonymous)
LayoutBlockFlow (column spanner) DIV id="spanner"
DOM order:
LayoutBlockFlow DIV
LayoutMultiColumnFlowThread (anonymous)
LayoutBlockFlow (column spanner) DIV id="spanner"
LayoutMultiColumnSpannerPlaceholder (anonymous)
BUG=648274
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Review-Url: https://codereview.chromium.org/2615203002
Cr-Commit-Position: refs/heads/master@{#442149}
Committed: https://chromium.googlesource.com/chromium/src/+/78357e64419e215213610a27cd89a94da49e6bbe
Patch Set 1 #Patch Set 2 : Remove paint invalidation multi-column special-case #Patch Set 3 : Rebase #Patch Set 4 : Minor cleanup #Patch Set 5 : Cleanup comment #
Total comments: 1
Patch Set 6 : Cleanup comment #Messages
Total messages: 25 (19 generated)
|